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