我正在使用以下两个WMI查询:
SELECT * FROM Win32_Group WHERE LocalAccount=true
SELECT Domain,Name FROM Win32_UserAccount WHERE LocalAccount=true
第二个查询运行大约需要6秒(仅限4个用户),而第一个查询大约需要0.3秒才能运行22个组。有人能告诉我为什么会出现这样的性能差距?还有其他写第二个查询的方法吗?
编辑:我正在本地计算机上运行查询,因此连接不应该出现在图片中。
答案 0 :(得分:0)
我认为第二个查询很慢,因为它首先必须检索所有域用户。如果您只对本地用户感兴趣,可以尝试使用here或limit the query to the local machine所述的方法:
public static void GetUsers()
{
SelectQuery sQry = new SelectQuery(“Win32_UserAccount”,“Domain=’PCNAME’”);
try
{
ManagementObjectSearcher mSearcher = new ManagementObjectSearcher(sQry);
Console.WriteLine(“User Accounts\n”);
foreach (ManagementObject mObject in mSearcher.Get())
{
Console.WriteLine(mObject[“Name”]);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}