Как администратор Unix и Windows, который выполняет множество сценариев Unix и почти не использует сценарии Windows, я бы сказал, что это отчасти связано с невероятной неловкостью утилит и API-интерфейсов сценариев Windows и трудностями (возможно, неочевидность лучше сказать) удаленного запуска на Windows-машине.
Я имею в виду, WTF это?
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Часть проблемы, я думаю, что это АНИ. Под Unix администраторы в основном пишут сценарии для автоматизации утилит командной строки, которые они уже используют. Под Windows вы должны использовать этот API, который незнаком на каждом уровне. Например, что значит «подражать»? Это тривиальная концепция для администратора Unix, который, скорее всего, использует sudo и su и уже знаком со скриптами setuid. Но администратор Windows вряд ли знаком с этим; они могут знать о «runas» (или эквивалентной опции графического интерфейса), но они с гораздо большей вероятностью будут входить в систему как администратор, когда им нужно что-то сделать admin-y.
И документация по скриптингу в Windows убогая. Во-первых, это гораздо более «интерпретируемый язык», чем сценарий, опять же, потому что они используют (незнакомый) API, а не команды, с которыми они уже знакомы. Но я не думаю, что я когда-либо нашел что-то полезное в документации Microsoft, к чему не привел поиск кого-то, кто уже делал что-то близкое к тому, что я хотел, и указывал мне правильное направление. Кажется, нигде нет списка вещей, которые вы можете сделать. Как будто вы уже должны быть знакомы с внутренними компонентами Windows, чтобы делать самые простые вещи.
Не то, чтобы Unix-скрипты не часто выглядели как шум строки. Но администратор Unix может начать со скрипта, который ничего не делает, кроме запуска простых команд, которые он уже знает. («Мне всегда нужно запускать эти три команды подряд. Если я просто соберу их в файл, я смогу сделать это одной командой!») И затем он сможет прогрессировать, когда ему станет комфортно в этой ситуации. В отличие от этого, администратор не может написать скрипт «войдите на сервер как администратор; нажмите« Пуск »→« Настройка »→« Панель управления »; дважды щелкните« Система »; щелкните вкладку« Имя компьютера »и т. Д.» Да, все, к чему он пытался добраться, вероятно, где-то представлено через API, но у него нет возможности постепенно найти это.
Итак, чтобы ответить на вопрос «как мы можем заставить администраторов Windows делать больше сценариев?», Ответ заключается в том, чтобы сделать сценарии менее чуждыми. Как это сделать, я не знаю.
Честно говоря, ответ в руках Microsoft. Нет никаких причин, по которым у них не может быть утилиты командной строки, которая делает все, что делается через графический интерфейс. (На самом деле их сейчас много, но они не рекламируются, плохо документированы и противоречивы.) Нет также причины, по которой в графическом интерфейсе не может быть никаких намеков на то, что эта кнопка на самом деле делает. Имейте подсказку, которая показывает объект API, который изменяется Или документируйте это в окне справки.
Нет проблем в защите пользователей от внутренних устройств, но Windows, кажется, старается изо всех сил активно скрывать эти внутренние устройства, даже от тех, кто хочет их найти.
ls -1 *old* | awk '{print "mv "$1" "$1}' | sed s/old/new/2 | sh