2017-05-15 47 views
1

如何获取任务管理器中的用户列表状态?如何在任务管理器中获取用户列表

我只发现了如何让域用户的列表

var usersSearcher = new ManagementObjectSearcher(@"SELECT * FROM Win32_UserAccount"); 
var users = usersSearcher.Get(); 
+0

[这里的答案是否有帮助吗?](http://stackoverflow.com/questions/132620/how-do-you-retrieve-a-list-of-logged-in-connected-users-in -净) –

回答

0

你可以试试这个代码来获取用户列表:

var usersSearcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_UserAccount"); 
var managementObjects = usersSearcher.Get(); 

List<string> result = new List<string>(); 

foreach (ManagementObject item in managementObjects) 
{ 
    foreach (var pr in item.Properties) 
    { 
     if (pr.Name == "Caption") 
     { 
      result.Add(pr.Value?.ToString()); 
     } 
    } 
} 

var users = result.Distinct().ToList(); 

你也可以试试这个:

var usersSearcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Process"); 
var managementObjects = usersSearcher.Get(); 
List<string> allUsers = new List<string>(); 

foreach (ManagementObject obj in managementObjects) 
{ 
    string[] argList = new string[] { string.Empty, string.Empty }; 
    int returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList)); 
    if (returnVal == 0) 
    { 
     // return DOMAIN\user 
     allUsers.Add(argList[1] + "\\" + argList[0]); 
    } 
} 

var result = allUsers.Distinct().ToList(); 
相关问题