Sudo !! equivalente in PowerShell


Risposte:


13

$^ è una variabile che si espande all'ultimo comando Powershell eseguito.

È possibile eseguire un comando come un altro utente utilizzando runas, quindi il seguente funziona:

runas /user:domain\administrator $^

Per accorciarlo un po ', puoi fare un po' di magia con gli alias. Dai un'occhiata a questo articolo Technet per maggiori informazioni.

EDIT: un avvertimento: $^esegue solo il primo comando in una pipeline o riga multi-comando. Se è necessario ripetere un intero comando che è condito con pipe o punti e virgola, utilizzare Invoke-Historyinvece (che per impostazione predefinita è l'ultimo comando completo nella sua interezza).


3
In realtà, $^è il primo token del comando precedente. Se dot-source uno script con . ./foo.ps1allora lo $^è .. Questo significa anche che gli argomenti non sono contenuti. Fare qualsiasi cosa che superi un singolo token non funzionerà in questo modo.
Joey,

ok, dopo chiede la password? Sto cercando di evitare di incorporare la password in chiaro nel mio script.
Senior Systems Engineer

Sì, lo fa. A meno che non si esegua lo script come amministratore, è necessario fornire le credenziali per eseguire qualsiasi operazione che richieda i privilegi di amministratore. Potresti voler esaminare qualcosa come Kixtart per tokenizzare una password incorporata
Hyppy,

0

Ho sempre pensato a JEA (Just Enough Administration) come un tentativo di approssimare alcune delle funzionalità di sudo. Puoi leggerlo qui:

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

La differenza è che utilizza il telecomando PS anziché l'applicazione al computer locale. Questa potrebbe essere una differenza abbastanza critica, abbastanza da spingerla troppo lontano da sudo.

Elevare l'account per il controllo dell'account utente, usando runas o qualcos'altro, non mi sta proprio bene. È più come un parallelo di su -.


1
We're sorry, the page you requested cannot be found.. Sembra di essere qui adesso.
GnP,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.