I have Windows Service C# with credentials for user UserInstallerMoss.
Windows Service execute an EXE Console Aplicaction C# with credentials UserInstallerMoss.
EXE Console Aplicaction executes powershell.exe with credentials UserInstallerMoss.
Server is Windows Server 2012 Enterprise. UAC is disabled.
UserinstallerMOss is local administrator
Powershell functions returns $true value:
$ok = IsCurrentUserAdmin
$ok = IsCurrentUserAdmin2
but the script fails about "access denied"
nativehr: 0x80070005 OWSSVR.DLL - Access denied
How can I get if a current script Powershell is executed as Run as Administrator?
How can I get if a current user in script Powershell is Administrator?
My functions returns true, but maybe it was wrong?
Powershell functions:
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)
}