Відповіді:
$^ - це змінна, яка розширюється до останньої виконаної команди Powershell.
Ви можете запустити команду як інший користувач, використовуючи runasнаступні дії:
runas /user:domain\administrator $^
Щоб трохи скоротити це, ви можете зробити магію псевдонімами. Погляньте на цю статтю Technet, щоб отримати додаткову інформацію.
EDIT: Один застереження - $^виконує лише першу команду в конвеєрі або багатокомандному рядку. Якщо вам потрібно повторити цілу команду, засипану трубами або крапками з комою, використовуйте Invoke-Historyнатомість (яка за замовчуванням виконує останню повну команду в повному обсязі).
Я завжди хотів JEA (Just Enough Administration) як спробу наблизити частину функціональності sudo. Про це можна прочитати тут:
https://docs.microsoft.com/en-us/powershell/jea/overview
Відмінність полягає в тому, що він використовує видалення PS, а не звернення до локальної машини. Це може бути досить критичною різницею, достатньою, щоб відсунути його занадто далеко від судо.
Підвищення на облік для контролю облікових записів користувачів, використання рун або чогось іншого, мені не дуже підходить. Це більше схоже на паралель su -.
$^це перший маркер попередньої команди. Якщо я дот-джерелом сценарій з. ./foo.ps1тоді$^є.. Це також означає, що аргументи не містяться. Робити що-небудь, що перевищує один маркер, це не вийде.