ここのスレッドで、ユーザーが管理者権限を持っているかどうかを確認する方法を見つけました。ただし、これにブール論理を使用しようとすると、機能しません。
$user = [Security.Principal.WindowsIdentity]::GetCurrent();
(New-Object Security.Principal.WindowsPrincipal $user).IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
if($user = $false){cls;Write-warning "Starting and stopping services can only be done with administrative privileges.`nPlease restart this script from an elevated prompt!";Read-host;exit
}
問題は、Powershell を管理者権限で起動せずにコンピューターからスクリプトを実行しているときに、「False」というテキストが表示されることです。ただし、if ステートメントは機能しません。定義が間違っていますか?
編集: ifステートメントの$true
代わりに使用する$false
と、昇格したプロンプトからスクリプトを実行する場合と実行しない場合の両方で開始されます。