获取一组服务器的列表LocalAdmins

PK.*_*PK. 2 .net c#

我有一个计算机列表(存储在数据库中),我想以编程方式在这些计算机上找到localadmins,以便我也可以将这些信息存储在数据库中.

我知道这可以使用powershell完成.但是想找一种方法用C#做同样的事情

我怎么做

Dav*_*ale 5

我刚刚在我的本地计算机上试过这个代码,它工作正常:

        string hostName = "myComputer";
        //get machine
        using (DirectoryEntry machine = new DirectoryEntry("WinNT://" + hostName))
        {
            //get local admin group
            using (DirectoryEntry group = machine.Children.Find("Administrators", "Group"))
            {
                //get all members of local admin group
                object members = group.Invoke("Members", null);
                foreach (object member in (IEnumerable)members)
                {
                    //get account name
                    string accountName = new DirectoryEntry(member).Name;
                    //DO SOMETHING...
                }
            }        
        }
Run Code Online (Sandbox Code Playgroud)

在我恢复工作之前,我无法在远程计算机上检查它,但假设您在远程计算机上拥有权限的帐户下运行我应该想象它会起作用.