2016-07-03 38 views
-1

我想枚举本地计算机上的所有现有组。WMI枚举Win32_GroupUser友好输出

这就是我试图使用WMI:

string _class = "Win32_GroupUser"; 
string namespace = "\\\\.\\ROOT\\cimv2"; 

ManagementClass _class = new ManagementClass(namespace + ":" + class);  

foreach (ManagementObject _object in _class.GetInstances()) 
{ 
    richTextBox1.AppendText((_object["GroupComponent"].ToString())); 
} 

输出例如:

\桌面2MSGC9J \ ROOT \ CIMV2:Win32_Group.Domain = “桌面2MSGC9J”,名称=“Utilisateurs du journal de performance“

在此输出中,只有组名Name="Utilisateurs du journal de performances"对我很重要。

是一种做wmi查询的方法,只返回这个元素在这个_object

另一个foreach_object也许。

回答

0

从wmi中获取我的对象后,我找到一个使用substring的肮脏方法。

foreach (ManagementObject _object in _class.GetInstances()) 
{ 
    string groups = _object["GroupComponent"].ToString(); 
    int i = groups.LastIndexOf('=') + 1; 
    string groupsName = groups.Substring(i); 
    richTextBox1.AppendText(groupsName + "\r\n\r\n"); 
}