我擁有Windows User C#的用戶UserInstallerMoss憑據。獲取當前腳本Powershell是否以管理員身份執行(以管理員身份運行)
Windows服務使用憑據UserInstallerMoss執行EXE控制檯Aplicaction C#。
EXE控制檯Aplicaction使用憑據UserInstallerMoss執行powershell.exe。
服務器是Windows Server 2012 Enterprise。 UAC被禁用。
UserinstallerMOss是本地管理員
PowerShell函數返回$真值:
$ok = IsCurrentUserAdmin
$ok = IsCurrentUserAdmin2
但腳本失敗有關 「拒絕訪問」
nativehr:0X80070005 OWSSVR.DLL - 訪問被拒絕
如果當前腳本Powershell以「以管理員身份運行」執行,我該如何獲取?
如何獲取腳本Powershell中的當前用戶是管理員?
我的函數返回true,但可能是錯誤的?
PowerShell函數:
Function IsCurrentUserAdmin
{
$ident = [Security.Principal.WindowsIdentity]::GetCurrent()
foreach ($groupIdent in $ident.Groups)
{
if ($groupIdent.IsValidTargetType([Security.Principal.SecurityIdentifier]))
{
$groupSid = $groupIdent.Translate([Security.Principal.SecurityIdentifier])
if ($groupSid.IsWellKnown("AccountAdministratorSid") -or $groupSid.IsWellKnown("BuiltinAdministratorsSid"))
{
return $TRUE
}
}
}
return $FALSE
}
Function IsCurrentUserAdmin2
{
$user = [Security.Principal.WindowsIdentity]::GetCurrent();
(New-Object Security.Principal.WindowsPrincipal $user).IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
這與IsCurrentUserAdmin2功能相同 – Kiquenet 2014-09-03 08:52:08
即使您運行腳本提升,它也會返回false? – ojk 2014-09-03 08:53:19