#requires -version 4.0 #requires –runasadministrator
Em versões anteriores, é preciso algumas linhas a mais de código.
Com a finalidade de melhor exemplificar, vamos separar cada parte em funções.
Para obter o usuário que está executando o script, criamos a função get-User:
Function get-User { [System.Security.Principal.WindowsIdentity]::GetCurrent() }
Para verificar se o usuário que está executando o script tem determinada Role, criamos a função check-UserRole:
Function check-UserRole($Role) { $principal = New-Object System.Security.Principal.WindowsPrincipal(get-User) $principal.IsInRole($Role) }
Para verificar se o usuário que está executando o script é administrador, criamos a função isAdmin:
Function isAdmin { check-UserRole("Administradores") }
Dessa forma, uma maneira de verificar se o usuário executando o script tem privilégios administrativos seria:
if (-NOT (isAdmin)) { Write-Warning "Você não tem privilégios administrativos para executar este script!" Break } else { Write-Host -ForegroundColor Green "Você passou no teste de privilégios administrativos para executar este script!" }
A função isAdmin chama check-UserRole, que chama get-User verificando se o usuário pertence ao grupo de administradores.
Nenhum comentário:
Postar um comentário