Em um script do PowerShell, como posso verificar se estou executando com privilégios de administrador?

28

Em um script do PowerShell, como posso verificar se estou executando com privilégios de administrador?

    
por Michael Kelley 17.12.2009 / 20:30

3 respostas

20
$currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
$currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)

(de Truques de segurança da linha de comando )

    
por 17.12.2009 / 21:15
35

No Powershell 4.0, você pode usar requer no topo do seu script:

#Requires -RunAsAdministrator

Saídas:

The script 'MyScript.ps1' cannot be run because it contains a "#requires" statement for running as Administrator. The current Windows PowerShell session is not running as Administrator. Start Windows PowerShell by using the Run as Administrator option, and then try running the script again.

    
por 18.03.2015 / 23:55
31
function Test-Administrator  
{  
    $user = [Security.Principal.WindowsIdentity]::GetCurrent();
    (New-Object Security.Principal.WindowsPrincipal $user).IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)  
}

Execute a função acima. SE o resultado for True, o usuário tem privilégios de administrador.

    
por 27.12.2009 / 21:56