Bastante sencillo para el que tengo problemas para encontrar una respuesta.
serverfault anteriormente me ayudó a encontrar una manera de automatizar las actualizaciones de Windows sin usar WSUS. Funciona fantásticamente, pero para ejecutarlo en la red, primero debe montar una unidad compartida. Eso es bastante simple XP ya que solo montas el disco y ejecutas el actualizador.
Sin embargo, en Vista y W7, todo esto debe hacerse con privilegios elevados para funcionar correctamente. La cuenta UAC no puede ver las unidades de red montadas por el usuario habitual, por lo que para que todo funcione, tengo que montar el recurso compartido net use
desde un shell escalado. Me gustaría automatizar el montaje de este recurso compartido y el lanzamiento del actualizador a través de un simple archivo .bat.
Probablemente podría indicar a todos que hagan clic con el botón derecho en "Ejecutar como administrador" en el archivo .bat, pero me gustaría mantener las cosas lo más simples posible y hacer que .bat solicite automáticamente al usuario que escale sus privilegios.
Dado que estas computadoras no nos pertenecen, no puedo contar con nada como la instalación de Powershell, por lo que descarta cualquier solución en ese sentido y prácticamente tiene que depender de las cosas que se incluirían en una instalación de RTM Vista. Espero estar perdiendo algo obvio aquí. :)
fuente
elevate.cmd
yelevate.vbs
Si está preparado para convertir a PowerShell, esto es mucho más fácil de hacer. Este es mi
Elevate-Process.ps1
script " " (con unsu
alias en mi perfil):La detección de la elevación también se puede hacer en PSH (por lo tanto, puede verificar la elevación y luego elevar si es necesario):
fuente
Aquí hay un script de ejemplo que se me ocurrió, espero que ayude a otros. Es un archivo bat que solicita permiso al usuario y luego se intensifica. Canaliza algún vbscript que desencadena el indicador UAC y luego vuelve a ejecutar el archivo bat elevado ... http://jagaroth.livejournal.com/63875.html
fuente
Esto es lo que necesita: http://sites.google.com/site/eneerge/home/BatchGotAdmin
fuente
FusionInventory.org es una solución de código abierto utilizada principalmente por pequeños talleres de reparación. Puede ser como su actualizador personal de Windows controlado remotamente.
fuente
Ninguna de esas soluciones funciona para un archivo .cmd que necesita conocer los parámetros de la línea de comandos. Ponga esto al principio del archivo .cmd y todos sus problemas se resolverán. (Esto es para futuras personas que naveguen por este hilo [he probado esto en Windows XP, 7 Vista y 8; x86 + x64]):
fuente
Como dijo @emilio, ese script está bien pero no acepta ningún argumento. Aquí el script modificado para ser compatible con los argumentos:
fuente
Si no puede confiar en la instalación de Powershell, puede tomar esta solución en StackOverflow:
Elevación automática con UAC mediante archivo por lotes
No requiere que se instale nada y se agota de la caja. Si necesita preservar los argumentos de la línea de comandos, considere esta actualización.
fuente
¿Has probado el
runas
comando?fuente