Saltar al contenido

¿Cómo puedo ejecutar PowerShell como administrador Y con argumentos de un archivo por lotes?

Hola, tenemos la solución a lo que andabas buscando, deslízate y la verás a continuación.

Solución:

Eso es posible resolver su problema sin herramientas de terceros, pero la solución es algo arcana.

Por lo tanto, considere descargar la útil guía de Bill Stewart elevate32 y elevate64 herramientas en su lugar, como se describe en su respuesta, lo que simplifica la solución.

Aquí hay un ejemplo simple que invoca el Get-Date cmdlet con argumentos en una sesión de PowerShell elevada iniciada desde cmd.exe (o un archivo por lotes):

powershell -command "Start-Process -verb runas powershell" "'-noexit -command get-date -UFormat %s'"

Tenga en cuenta cómo la línea de comando para pasar al elevado sesión de PowerShell que el intermediario -command argumento crea se pasa como un único argumento encerrado entre comillas simples incrustadas.

Citar puede resultar complicado, pero este enfoque también funciona invocando *.ps1 archivos en principio:

  • powershell -command "Start-Process -verb runas powershell" es el invariante parte de la línea de comandos.

  • El restante "..."-adjunto string debe contener un anidado único string con comillas que reconoce PowerShell (las comillas simples son las más fáciles) que contienen todos argumentos que pasaría directamente a un powershell ... invocación de línea de comandos.

Aplicado a tu ejemplo:

... "'-File C:pathtofilePath.ps1 arg1 arg2'"

Nota: Asegúrese de usar el ruta completa a su archivo de scriptporque la sesión de PowerShell elevada no no (necesariamente) se ejecuta en el mismo directorio que la sesión de llamada.

Si lo necesitas cita los argumentos dentro del anidado stringutilizar ":

... "'-File "c:path with spacestofilePath.ps1" arg1 arg2'"

Puede hacer esto tomando un ejecutable de línea de comando corto que escribí llamado Elevate32.exe (o Elevate64.exe para la versión de 64 bits). Puedes obtenerlo aqui:

http://www.westmesatech.com/misctools.html (ElevationToolkit1.zip)

Ejemplo:

elevate64 -- powershell.exe -file C:scriptsmyscriptfile.ps1

todo después -- es la línea de comando que desea elevar.

Si posees alguna duda y forma de medrar nuestro reseña eres capaz de añadir un exégesis y con gusto lo estudiaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *