Como administrador do Unix e do Windows que executa muitos scripts do Unix e quase nenhum script do Windows, eu diria que isso se deve em parte ao incrível constrangimento dos utilitários e APIs de script do Windows e à dificuldade (talvez não-óbvio seria uma palavra melhor) de executar as coisas remotamente em uma máquina Windows.
Quero dizer, WTF é isso?
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Parte do problema, penso eu, é que não é uma API. No Unix, os administradores estão criando scripts para a automação dos utilitários de linha de comando que eles já usam. No Windows, você precisa usar essa API que não é familiar em todos os níveis. Por exemplo, o que significa "personificar"? Este é um conceito trivial para um administrador do Unix, que provavelmente usa sudo e su e já conhece os scripts setuid. Mas é improvável que um administrador do Windows esteja familiarizado com isso; eles podem saber sobre "runas" (ou a opção equivalente da GUI), mas são muito mais propensos a efetuar login como administrador quando precisarem fazer algo administrativo.
E a documentação sobre scripts no Windows é péssima. Por um lado, é muito mais "linguagem interpretada" do que script, novamente porque eles estão usando uma API (desconhecida) e não comandos com os quais eles já estão familiarizados. Mas acho que nunca encontrei algo útil na documentação da Microsoft que não foi levado ao encontrar alguém que já estava fazendo algo próximo ao que eu queria que me apontava na direção certa. Em nenhum lugar parece haver uma lista de coisas que você pode fazer. É como se você já estivesse familiarizado com os componentes internos do Windows para fazer as coisas mais básicas.
Não que os scripts Unix nem sempre pareçam ruído de linha. Mas um administrador do Unix pode começar com um script que não faz nada além de executar comandos simples que ele já conhece. ("Eu sempre tenho que executar esses três comandos em sucessão. Se eu os juntar em um arquivo, posso fazê-lo em um comando!") E, em seguida, ele poderá progredir mais tarde à medida que se sentir confortável com a situação. Por outro lado, não há como um administrador criar um script "faça login no servidor como administrador; clique em Iniciar → Configurações → Painel de Controle; clique duas vezes em Sistema; clique na guia Nome do Computador, etc." Sim, o que quer que ele estivesse tentando acessar provavelmente é apresentado por meio de uma API em algum lugar, mas não há como ele encontrá-lo gradualmente.
Portanto, para responder à pergunta "como podemos fazer com que os administradores do Windows executem mais scripts?", A resposta é tornar os scripts menos estranhos. Como fazer isso, eu não sei.
Honestamente, a resposta está nas mãos da Microsoft. Não há razão para que eles não possam ter um utilitário de linha de comando para fazer tudo o que é feito via GUI. (Na verdade, existem muitos deles por aí agora, mas não são anunciados, estão mal documentados e são inconsistentes.) Também não há razão para que não haja alguma dica na GUI sobre o que esse botão realmente faz. Tenha uma dica de ferramenta que mostra o objeto da API que está sendo modificado. Ou documente-o na janela Ajuda.
Não há problema em proteger os usuários dos internos, mas o Windows parece se esforçar para ocultar ativamente esses internos, mesmo daqueles que querem encontrá-los.
ls -1 *old* | awk '{print "mv "$1" "$1}' | sed s/old/new/2 | sh