Como administrador de Unix y Windows que realiza muchas secuencias de comandos de Unix y casi ninguna secuencia de comandos de Windows, diría que se debe en parte a la increíble incomodidad de las utilidades y API de secuencias de comandos de Windows, y la dificultad (tal vez no sea obvio) una mejor palabra) de ejecutar cosas de forma remota en una máquina Windows
Quiero decir, ¿qué es esto?
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Parte del problema, creo, es que no es una API. Bajo Unix, los administradores están en gran medida programando la automatización de las utilidades de línea de comandos que ya usan. En Windows, debe usar esta API que no le resulta familiar en todos los niveles. Por ejemplo, ¿qué significa "suplantar"? Este es un concepto trivial para un administrador de Unix, que es probable que use sudo y su y esté familiarizado con los scripts setuid. Pero es poco probable que un administrador de Windows esté familiarizado con nada de eso; Es posible que sepan sobre "runas" (o la opción de GUI equivalente), pero es mucho más probable que inicien sesión como administrador cuando necesiten hacer algo de forma administrativa.
Y la documentación sobre las secuencias de comandos en Windows es miserable. Por un lado, es mucho más "lenguaje interpretado" que script, de nuevo porque están usando una API (desconocida) y no comandos con los que ya están familiarizados. Pero no creo que haya encontrado nada útil en la documentación de Microsoft que no se haya encontrado al encontrar a alguien que ya estaba haciendo algo parecido a lo que quería que me indicara la dirección correcta. En ninguna parte parece haber una lista de cosas que puedes hacer. Es como si ya tuvieras que estar familiarizado con las partes internas de Windows para hacer las cosas más básicas.
No es que los scripts de Unix no se vean a menudo como ruido de línea. Pero un administrador de Unix puede comenzar con un script que no hace más que ejecutar comandos simples que ya conoce. ("Siempre tengo que ejecutar estos tres comandos en sucesión. ¡Si solo los pongo en un archivo, puedo hacerlo en un solo comando!") Y luego puede progresar más tarde a medida que se sienta cómodo con la situación. Por el contrario, no hay forma de que un administrador escriba "inicie sesión en el servidor como administrador; haga clic en Inicio → Configuración → Panel de control; haga doble clic en Sistema; haga clic en la pestaña Nombre del equipo; etc." Sí, lo que sea que intentara llegar probablemente se presente a través de una API en alguna parte, pero no hay forma de que lo encuentre de forma incremental.
Entonces, para responder la pregunta "¿cómo podemos hacer que los administradores de Windows realicen más secuencias de comandos?", La respuesta es hacer que las secuencias de comandos sean menos extrañas. Cómo hacer eso, no lo sé.
Honestamente, la respuesta está en manos de Microsoft. No hay razón para que no puedan tener una utilidad de línea de comandos para hacer todo lo que se hace a través de la GUI. (En realidad, hay muchos de ellos por ahí ahora, pero no se anuncian, están pobremente documentados y son inconsistentes). Tampoco hay razón para que no haya alguna pista en la GUI sobre qué ese botón realmente lo hace. Tenga una información sobre herramientas que muestre el objeto API que se está modificando. O documentarlo en la ventana de Ayuda.
No hay ningún problema en proteger a los usuarios de los elementos internos, pero Windows parece hacer todo lo posible para ocultar activamente esos elementos internos, incluso de aquellos que quieren encontrarlos.
ls -1 *old* | awk '{print "mv "$1" "$1}' | sed s/old/new/2 | sh