我如何知道给定用户是否在 window server 2012 计算机中拥有管理员帐户?

How can I know if a given user has an admin account in a window server 2012 machine?

我需要 运行 一个 Jenkins 作业,该作业将在主机上的从机上执行。该作业包括 运行 在已登录的从机上执行一些 powershell 脚本。 我正在使用一个帐户从 master 登录到 slave,我想这没有管理员权限,因为当 运行 作为机器管理员时脚本的行为与 运行 在本地就可以了。

如何才能真正确认提供给我的用户是否具有管理员权限?

在 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)."
}