c# - 以编程方式获取 Windows 用户帐户的数量

标签 c#

我需要一种方法来获取 (Windows) 计算机上所有用户帐户的列表,我需要通过 C# .NET 1.1+2003 获取此信息

最佳答案

您可以使用 WMI 枚举本地用户和组:

class Program
{
    static void Main(string[] args)
    {
        SelectQuery sQuery = new SelectQuery("Win32_UserAccount", "Domain='mypcname'");

        try
        {
            ManagementObjectSearcher mSearcher = new ManagementObjectSearcher(sQuery);

            Console.WriteLine("User Accounts");
            Console.WriteLine();

            foreach (ManagementObject mObject in mSearcher.Get())
            {
                Console.WriteLine("Account {0}", mObject["Name"]);
                foreach (PropertyData prop in mObject.Properties)
                {
                    Console.WriteLine("Name: {0}\tValue: {1}", prop.Name, prop.Value);
                }
                Console.WriteLine();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }

        Console.ReadKey();
    }
}

上面的代码需要引用 System.Management 并且您需要将“mypcname”替换为您的计算机名称。

关于c# - 以编程方式获取 Windows 用户帐户的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1237992/

相关文章:

c# - 如何在 Asp.Net MVC 中动态插入部分 View

c# - 使用公共(public)领域的最佳做法是什么?

c# - 这段代码有什么问题。为什么我不能使用 SqlConnection?

c# - 在 N 层 ASP .NET MVC 应用程序中查看模型位置

c# - 为什么对单个绑定(bind)项目进行更改不会刷新 ObservableCollection 中的该项目?

c# - 如何使用C#和Active Reports创建报告?

c# - 当你只知道通用基类的类型时,如何找到通用基类的派生类?

c# - subject.OnError 抛出

c# - 更改 '/' 分隔字符串中最后一个元素的最有效方法是什么

c# - 如何将非引用类型的对象转换为实际对象