回答:
$^
最後に実行されたPowershellコマンドに展開される変数です。
を使用して別のユーザーとしてコマンドを実行できるrunas
ため、次のように機能します。
runas /user:domain\administrator $^
これを少し短くするために、エイリアスを使用して魔法をかけることができます。詳細については、このTechnetの記事をご覧ください。
編集:1つの警告- $^
パイプラインまたはマルチコマンドラインの最初のコマンドのみを実行します。パイプまたはセミコロンで覆われたコマンド全体を再実行する必要がある場合は、Invoke-History
代わりに使用します(デフォルトでは最後の完全なコマンド全体になります)。
私は常にsudoの機能のいくつかを近似する試みとしてJEA(Just Enough Administration)を使用しています。あなたはそれについてここで読むことができます:
https://docs.microsoft.com/en-us/powershell/jea/overview
異なる点は、ローカルマシンに適用するのではなく、PSリモート処理を使用することです。これは非常に重大な違いであり、sudoから離れすぎてしまうほどです。
runasなどを使用してユーザーアカウント制御のアカウントに昇格することは、私にはあまり適していません。の類似物のようなものですsu -
。
$^
は、前のコマンドの最初のトークンです。. ./foo.ps1
then$^
でスクリプトをドットソース化すると、になります.
。これは、引数が含まれていないことも意味します。単一のトークンを超えるものを実行しても、この方法では機能しません。