Я пытаюсь установить SQL Server 2008 R2 на сервер Windows 2003. Я пытаюсь создать сценарий PowerShell, который проверяет, имеет ли пользователь права Windows (право отладки программы и т. Д.), Или если у него нет этого конкретного права, если он находится в группе, которая имеет это право. Если это удастся, тогда он запускает средство проверки конфигурации системы, которое включено в установщик 2008 года. Мне трудно найти подходящие примеры этого. Возможно ли это в PowerShell?Проверьте, есть ли у пользователя определенные права Windows Powershell
0
A
ответ
0
whoami.exe /priv
может показывать эту информацию, так что бы вы хотели разобрать ее выход? Может быть, это функция, как это (я уверен, что я более усложняя):
function Get-PrivilegeState {
[CmdletBinding()]
param(
[string[]] $PrivilegeName = "*"
)
$WhoAmI = whoami.exe /priv
foreach ($PrivilegeSearch in $PrivilegeName) {
$RegEx = "^(?<privilege>{0})\s+.*?\s+(?<state>Enabled|Disabled)" -f ($PrivilegeSearch -replace '\*', '[A-z]*')
$WhoAmI -match $RegEx | ForEach-Object {
if ($_ -match $RegEx) {
$FinalPrivilegeName = $Matches.privilege
$State = $Matches.state
New-Object psobject -Property @{
PrivilegeName = $FinalPrivilegeName
State = $State
}
}
}
}
}
Если пользователь не имеет привилегий, то функция ничего не вернется. Вот как можно проверить для конкретной привилегии (это не дает права, я предполагаю, что приложение вам нужно будет делать это автоматически, если привилегия была предоставлена):
if (Get-PrivilegeState SeRestorePrivilege) {
# Privilege exists
"Do something here"
}
else {
Write-Error "Missing privilege"
}
А вот еще несколько примеры использования команды:
# Get all granted privileges
Get-PrivilegeState
# Use wildcards:
Get-PrivilegeState *system*
whoami только вернул несколько строк для меня, состояния и 4 привилегий. Я надеялся получить выход, например, «Выполнять пакетные задания». Я чувствую, что это близко. –
Если вы не видите эту привилегию, это должно означать, что она не была предоставлена тому, кто выполняет команду. Если вы получаете только четыре, это звучит так, как будто вы работаете из обычного приглашения. Попробуйте запустить его с повышенной подсказки ... –
Это сработало, спасибо большое –