У меня есть сценарий powershell, который должен убедиться, что кто-то запускает сценарий от имени администратора.
Переменная $ currentPrincipal возвращает значение true или false.
Вот код:
$currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
$currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
If ($currentPrincipal -eq $true) {
Write-host "yay"
}
Else {
Write-Host "boo"
}
Но при работе от имени администратора AND currentPrincipal имеет значение true, он все равно падает до другого ... Вот CLI, который показывает, что:
PS C:\WINDOWS\system32> C:\Users\dogzilla\Desktop\SetSQLServerToManual.ps1
True
boo
Мой вопрос заключается в том, чтоправильный способ оценки логического значения в powershell?