0

我有一个 WinForms 应用程序,如果有可用的更新(下载并安装 .msi)并且可能的话,我希望能够为用户提供更新。一些用户是我们域的一部分,实习生可以是学校、大学域的一部分或拥有个人笔记本电脑。我想检测用户是否具有管理员权限并且无论如何都能够执行更新。

我见过使用 WMI 的解决方案,“SELECT * FROM Win32_UserAccount”(尝试过,没有用,或者我可能遗漏了一些东西)。我已经看到查询活动目录的解决方案(如果用户将笔记本电脑带回家,断开连接,则不起作用)。下面的解决方案总是返回 false,我不想要求我的应用程序在提升模式下运行。

public static bool IsAdministrator()
{
    using (WindowsIdentity identity = WindowsIdentity.GetCurrent())
    {
        WindowsPrincipal principal = new WindowsPrincipal(identity);
        return principal.IsInRole(WindowsBuiltInRole.Administrator);
    }
}
4

0 回答 0