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