管理权限(检查我的Outlook是否以管理员身份打开)

时间:2015-06-29 10:22:41

标签: outlook administrator

我已经打开过Outlook我需要检查它是否以管理员身份打开。我尝试了以下代码,但它会检查VS是否以管理员身份打开。

    public bool IsRunningAsLocalAdmin()
    {
        WindowsIdentity cur = WindowsIdentity.GetCurrent();
        foreach (IdentityReference role in cur.Groups)
        {
            if (role.IsValidTargetType(typeof(SecurityIdentifier)))
            {
                SecurityIdentifier sid = (SecurityIdentifier)role.Translate(typeof(SecurityIdentifier));
                if (sid.IsWellKnown(WellKnownSidType.AccountAdministratorSid) || sid.IsWellKnown(WellKnownSidType.BuiltinAdministratorsSid))
                {
                    return true;
                }

            }
        }

        return false;
    }

我需要检查Outlook是否以管理员身份打开。

1 个答案:

答案 0 :(得分:0)

OpenProcess(PROCESS_QUERY_INFORMATION)+ OpenProcessToken(TOKEN_QUERY)获取令牌,然后将该令牌和SID从CreateWellKnownSid(WinBuiltinAdministratorsSid)传递到CheckTokenMembership()

为了能够(几乎)打开PROCESS_QUERY_INFORMATION访问的每个流程,您需要以管理员身份运行debug privileges

有关详细信息,请参阅Check if another process has admin privileges in .NET