在PowerShell脚本中,如何检查我是否以pipe理员权限运行?

在PowerShell脚本中,如何检查我是否以pipe理员权限运行?

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

(来自命令行安全技巧 )


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

执行上述function。 如果结果为True,则用户具有pipe理权限。

在Powershell 4.0中,您可以在脚本的顶部使用require:

 #Requires -RunAsAdministrator 

输出:

脚本“MyScript.ps1”无法运行,因为它包含“#requires”语句以pipe理员身份运行。 当前的Windows PowerShell会话未以pipe理员身份运行。 使用“以pipe理员身份运行”选项启动Windows PowerShell,然后再次运行脚本。