【发布时间】:2020-02-09 05:00:40
【问题描述】:
我正在尝试获取本地计算机上未禁用用户帐户的列表,其中包含每个用户的 SID 值。我无法使用 DirectoryEntry 类进行这项工作,因为返回的用户在 ObjectSecurity 字段中都有 NULL。所以我尝试使用 ManagementObjectSearcher
SelectQuery sQuery = new SelectQuery("Win32_UserAccount"); );
var searcher = new ManagementObjectSearcher(sQuery);
返回的用户有我需要的信息,但是这个查询给了我禁用的帐户。我想添加一个 WHERE 子句来说明这一点,但我做错了。
我试过了
new SelectQuery("Win32_UserAccount WHERE NOT Disabled");
new SelectQuery("Win32_UserAccount WHERE Disabled='False'");
new SelectQuery("Win32_UserAccount WHERE Disabled=False");
所有这些都会导致异常。谁能告诉我这个词怎么写?
【问题讨论】:
-
您要查询 SID 值吗?
-
您应该查看
SelectQuery的文档;你没有正确使用它。但更好的是,IMO,您可以通过使用带有查询字符串的ManagementObjectSearcher的构造函数来简化它:new ManagementObjectSearcher("SELECT * FROM Win32_UserAccount WHERE Disabled=False") -
就是这样。猜猜我是否在为 WHERE 子句而烦恼,我应该为“SELECT”部分烦恼!
-
下面的答案对@Joe 有帮助吗?
-
确实如此。我首先看到了herohtar的答案(这也是正确的)并标记了答案。如果我的答案顺序错误,请道歉