PowerShellを管理者権限に昇格して実行

PowerShell

ps1実行時に自動的に昇格

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.exePowerShellを新しく始まる
“-File "$PSCommandPath私自身のフルパスを指定
-Verb RunAs管理者権限
; exit現在のスクリプトを終了

コメント