Sudo !! equivalente en PowerShell

Respuestas:

13

$^ es una variable que se expande hasta el último comando de Powershell ejecutado.

Puede ejecutar un comando como otro usuario utilizando runas, por lo que funciona lo siguiente:

runas /user:domain\administrator $^

Para acortar eso un poco, puedes hacer algo de magia con alias. Eche un vistazo a este artículo de Technet para obtener más información.

EDITAR: Una advertencia: $^solo ejecuta el primer comando en una tubería o línea de comandos múltiples. Si necesita rehacer un comando completo que está salpicado de tuberías o puntos y comas, use Invoke-Historyen su lugar (que por defecto es el último comando completo en su totalidad).

Hippy
fuente
3
En realidad, $^es el primer token del comando anterior. Si genero un script con punto, . ./foo.ps1entonces $^es .. Esto también significa que los argumentos no están contenidos. Hacer cualquier cosa que exceda un solo token no funcionará de esta manera.
Joey
ok, ¿pide contraseña después de eso? Estoy tratando de evitar incrustar la contraseña de texto sin formato en mi script.
Ingeniero de Sistemas Senior
Si lo hace. A menos que ejecute el script como administrador, deberá proporcionar credenciales para hacer cualquier cosa que requiera privilegios de administrador. Es posible que desee buscar algo como Kixtart para tokenizar una contraseña incrustada
Hyppy
0

Siempre he pensado en JEA (Just Enough Administration) como un intento de aproximar algunas de las funciones de sudo. Usted puede leer sobre ello aquí:

https://docs.microsoft.com/en-us/powershell/jea/overview

La diferencia es que usa la comunicación remota de PS en lugar de aplicarla a la máquina local. Esta puede ser una diferencia bastante crítica, suficiente para alejarla demasiado del sudo.

Elevar para tener en cuenta el Control de cuentas de usuario, usar runas u otra cosa, realmente no me queda bien. Es más como un paralelo de su -.

Chris Dent
fuente
1
We're sorry, the page you requested cannot be found.. Parece estar aquí ahora.
GnP