如何检查系统上的每个用户是否都具有C#的管理员权限

TechBrkTru

我在系统中创建了一个用户列表:

  • 管理员(默认情况下)
  • 来宾
  • 用户1(标准用户)
  • User2(管理员用户)

我想知道通过WMI在C#中为所有这些用户赋予的权限,这怎么可能?还有其他方法可以找到它们。即使一个用户拥有此权限,也必须退出循环

我使用以下代码:

WindowsIdentity identity = WindowsIdentity.GetCurrent();
WindowsPrincipal principal = new WindowsPrincipal(identity);
bool isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);
if (isAdmin == true)
{
    current_logged_user = "Yes";
}
else
{
    current_logged_user = "No";
}

这仅给我当前记录的信息,但我需要所有用户

关联

下面的链接只是给管理员成员链接

马克·威特曼

您应该能够通过WMI返回所有用户

        string groupNameToSearchFor = "Administrators"; // can be any group,maybe better to use something like builtin.administrators

        using (PrincipalContext pc = new PrincipalContext(ContextType.Machine, null))
        {
            ManagementObjectSearcher usersSearcher = new ManagementObjectSearcher(@"SELECT * FROM Win32_UserAccount");
            ManagementObjectCollection users = usersSearcher.Get();

            foreach (ManagementObject user in users)
            {
                if ((bool)user["LocalAccount"] == true && int.Parse(user["SIDType"].ToString()) == 1)
                {
                    var userPrincipal = UserPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, user["Name"].ToString());
                    GroupPrincipal gp = GroupPrincipal.FindByIdentity(pc, groupNameToSearchFor);
                    MessageBox.Show("Is User admin? -> " + (bool)userPrincipal.IsMemberOf(gp));

                }
            }
        }

您必须包括以下用途

using System.DirectoryServices.AccountManagement;
using System.Management;

还要检查用户是否真的是用户,而不是其他对象(不确定我的检查是否足够)。


编辑:您可以在获得列表后强制转换所需的用户

        var localUsers = users.Cast<ManagementObject>().Where(
            u => (bool)u["LocalAccount"] == true &&
                 (bool)u["Disabled"] == false &&
                 (bool)u["Lockout"] == false &&
                 int.Parse(u["SIDType"].ToString()) == 1 &&
                 u["Name"].ToString() != "HomeGroupUser$");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何检查提到的用户是否具有管理员权限?

来自分类Dev

如何通过用户名和密码检查帐户是否具有管理员权限/特权?

来自分类Dev

使用AngularJS服务检查用户是否具有管理员权限

来自分类Dev

C#即使具有管理员权限也无法访问系统文件

来自分类Dev

mongodb中没有具有管理员权限的用户-如何创建具有管理员权限的用户?

来自分类Dev

如何检查某人是否具有管理员权限on_message discord.py

来自分类Dev

C#如何检查管理员权限

来自分类Dev

登录系统VB.net和访问权限检查用户是否为管理员

来自分类Dev

如何检查特定应用是否具有管理员权限,并转到其管理屏幕?

来自分类Dev

Windows没有具有管理员权限的用户

来自分类Dev

GitLab CE API:检查使用的令牌是否具有管理员权限

来自分类Dev

“管理员”用户自动具有sudo权限

来自分类Dev

具有管理员权限的新PowerShell用户

来自分类Dev

验证Windows用户名/密码是否具有管理员权限

来自分类Dev

Windows 7上具有管理员权限的VNC

来自分类Dev

WindowsForm 按钮 C# 的 SQL 用户管理员权限

来自分类Dev

在C#中,如果登录身份帐户是非管理员用户,如何停止/启动/检查是否已注册?

来自分类Dev

如何检查我的程序是否通过C ++在管理员权限下运行?

来自分类Dev

我如何检查用户是否是管理员

来自分类Dev

即使有新的http请求,如何检查我的用户是否是Rails的管理员?

来自分类Dev

如何通过SDK在MS Dynamics CRM中检测用户是否具有管理员角色?

来自分类Dev

如何检查“每个人”是否对c#中的文件具有完全控制权限

来自分类Dev

为何管理员没有访问“系统”权限的权限?

来自分类Dev

当未提升权限时,检查登录用户是否是管理员

来自分类Dev

如何在Windows上显示具有管理员权限的当前正在运行的所有程序?

来自分类Dev

如何在没有UAC的情况下从非管理员检查管理员的写入权限?

来自分类Dev

检查电子应用程序是否在Windows上以管理员权限启动

来自分类Dev

尽管具有 C# 管理员权限,但无法为注册表子项创建/写入值

来自分类Dev

Django管理员,如何在Django模板中正确检查用户的权限?

Related 相关文章

  1. 1

    如何检查提到的用户是否具有管理员权限?

  2. 2

    如何通过用户名和密码检查帐户是否具有管理员权限/特权?

  3. 3

    使用AngularJS服务检查用户是否具有管理员权限

  4. 4

    C#即使具有管理员权限也无法访问系统文件

  5. 5

    mongodb中没有具有管理员权限的用户-如何创建具有管理员权限的用户?

  6. 6

    如何检查某人是否具有管理员权限on_message discord.py

  7. 7

    C#如何检查管理员权限

  8. 8

    登录系统VB.net和访问权限检查用户是否为管理员

  9. 9

    如何检查特定应用是否具有管理员权限,并转到其管理屏幕?

  10. 10

    Windows没有具有管理员权限的用户

  11. 11

    GitLab CE API:检查使用的令牌是否具有管理员权限

  12. 12

    “管理员”用户自动具有sudo权限

  13. 13

    具有管理员权限的新PowerShell用户

  14. 14

    验证Windows用户名/密码是否具有管理员权限

  15. 15

    Windows 7上具有管理员权限的VNC

  16. 16

    WindowsForm 按钮 C# 的 SQL 用户管理员权限

  17. 17

    在C#中,如果登录身份帐户是非管理员用户,如何停止/启动/检查是否已注册?

  18. 18

    如何检查我的程序是否通过C ++在管理员权限下运行?

  19. 19

    我如何检查用户是否是管理员

  20. 20

    即使有新的http请求,如何检查我的用户是否是Rails的管理员?

  21. 21

    如何通过SDK在MS Dynamics CRM中检测用户是否具有管理员角色?

  22. 22

    如何检查“每个人”是否对c#中的文件具有完全控制权限

  23. 23

    为何管理员没有访问“系统”权限的权限?

  24. 24

    当未提升权限时,检查登录用户是否是管理员

  25. 25

    如何在Windows上显示具有管理员权限的当前正在运行的所有程序?

  26. 26

    如何在没有UAC的情况下从非管理员检查管理员的写入权限?

  27. 27

    检查电子应用程序是否在Windows上以管理员权限启动

  28. 28

    尽管具有 C# 管理员权限,但无法为注册表子项创建/写入值

  29. 29

    Django管理员,如何在Django模板中正确检查用户的权限?

热门标签

归档