如何知道给定用户在Windows Server 2012计算机中是否有管理员帐户?

时间:2016-08-20 06:55:31

标签: powershell jenkins jenkins-plugins windows-server-2012

我需要运行一个Jenkins作业,该作业将在主机上的从机上执行。该作业包括在已记录的从属计算机上运行一些PowerShell脚本。 我正在使用一个帐户从主服务器登录到奴隶服务,我认为它没有管理员权限,因为当在本地运行时,作为管理员在机器上运行时,脚本的行为会有所不同。

如何确认提供给我的用户是否拥有管理员权限?

1 个答案:

答案 0 :(得分:1)

在PowerShell 4.0及更高版本中,您可以使用脚本顶部的#Requires -RunAsAdministrator注释来防止在当前用户未提升时脚本运行。对于早期的PowerShell版本,如果未使用代码提升当前用户,则可以终止脚本。例如:

$elevated = ([Security.Principal.WindowsPrincipal] `
  [Security.Principal.WindowsIdentity]::GetCurrent()
).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if ( -not $elevated ) {
  throw "This script must be run elevated (Run as administrator)."
}