Réponses:
$^
est une variable qui se développe jusqu'à la dernière commande Powershell exécutée.
Vous pouvez exécuter une commande en tant qu’autre utilisateur à l’aide de runas
ce qui suit:
runas /user:domain\administrator $^
Pour raccourcir un peu cela, vous pouvez faire de la magie avec des alias. Jetez un œil à cet article Technet pour plus d'informations.
EDIT: une mise en garde - $^
n'exécute que la première commande d'un pipeline ou d'une ligne de commandes multiples. Si vous devez refaire une commande entière parsemée de tuyaux ou de points-virgules, utilisez Invoke-History
plutôt (qui correspond par défaut à la dernière commande complète dans son intégralité).
J'ai toujours pensé à JEA (Just Enough Administration) pour essayer d'approcher certaines des fonctionnalités de sudo. Vous pouvez lire à ce sujet ici:
https://docs.microsoft.com/en-us/powershell/jea/overview
Ce qui diffère, c'est qu'il utilise la télécommande PS plutôt que de l'appliquer à la machine locale. Cela peut être une différence assez critique, assez pour l'éloigner trop de sudo.
Élever pour tenir compte du contrôle de compte d'utilisateur, en utilisant des runas ou autre chose, ne me convient pas vraiment. Cela ressemble plus à un parallèle de su -
.
$^
c'est le premier jeton de la commande précédente. Si je dot-source un script avec. ./foo.ps1
alors$^
est.
. Cela signifie également que les arguments ne sont pas contenus. Faire tout ce qui dépasse un seul jeton ne fonctionnera pas de cette façon.