2010-05-06 38 views
2

我有一个计算机列表(存储在数据库中),我想以编程方式在这些计算机上找到localadmins,以便我可以将该信息存储在数据库中。获取一组服务器的LocalAdmins服务器

我知道这可以使用PowerShell来完成。但是寻找一种方式来使用C#做同样的事情

我怎么做,

回答

3

我只是尽我的本地计算机上的代码,它工作正常:

 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... 
       } 
      }   
     } 

我可以在远程计算机上检查它,直到我重新开始工作,但假定您正在远程计算机上拥有权限的帐户下运行,我应该想象它会起作用。

+0

感谢大卫的回应。所以,这将给出在本地机器上的任何组成员的名单..好吗?我试图让远程机器列表上的LocalAdmins。我想从我的桌面运行该程序,并在同一个域和信任域中的远程计算机列表上获取localadmins列表。 – 2010-05-09 05:35:53

+0

按上述修改。 – 2010-05-09 12:23:37

+0

是的..这很好。我只需要在顶部添加 - 使用system.collections.generic。 非常感谢。 – 2010-05-22 01:38:38