Risposte:
$^
è 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-History
invece (che per impostazione predefinita è l'ultimo comando completo nella sua interezza).
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 -
.
$^
è il primo token del comando precedente. Se dot-source uno script con. ./foo.ps1
allora lo$^
è.
. Questo significa anche che gli argomenti non sono contenuti. Fare qualsiasi cosa che superi un singolo token non funzionerà in questo modo.