PowerShell スクリプト.ps1 をファイル内で管理者権限で実行するコマンドに関する情報です。
Windows関連の運用でPowerShellを使うことが多いかと思いますが、そこではまりやすいのが権限の問題です。
script.ps1のようなスクリプトファイルを作成して、右クリックしてPowerShellとして実行しても権限が足りないと表示されることがあります。
PowerShellスクリプト内で管理者権限が必要になる場合は、正常に実行されない可能性があります。
まず、検索してみると以下のコマンドがありました。
>powershell -NoProfile -ExecutionPolicy unrestricted -Command "Start-Process PowerShell.exe -Verb runas"
ただ、これを実行すると確かに管理者としては起動しますが、別窓であがってきてしまいます。
スクリプト内でそのまま引き渡せるかと思ったのですが、引き渡せず。
そして、スクリプト内で記述できるパターンであるのがこちらです。
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole("Administrators")) { Start-Process powershell.exe "-File `"$PSCommandPath`"" -Verb RunAs; exit }
サイトなどによって、そのままコピーしても動作しないものもありましたが、以下の記述でそのままスクリプト内に張り付けて動作しました。
そのスクリプトがこちらです。
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole("Administrators"))
{
Start-Process powershell.exe "-ExecutionPolicy RemoteSigned -File `"$PSCommandPath`"" -Verb RunAs
exit
}
この下に、管理者権限で実行させたいコマンドを記述します。ちょっとしたことですが、動作する記述を見つけるのに時間がかかりました。ということで備忘録です。
KOORUI モニター 24インチ VA 非光沢 フルHD pcモニター 5ms 75Hz ディスプレイ HDMI VGA 傾き調整 広い視野角 スピーカー非搭載 24N1A |