在 PowerShell 中,我已经知道如何使用 DirectoryEntry 和 DirectorySearcher 来获取某个 OU 中的用户列表。这种方法的结果主要是我在 AD 中寻找的结果,但使用 WMI 查询 Win32_UserAccount 似乎更容易获得相同的信息。我更喜欢这个类的属性,并且 SID 已经是正确的字符串格式(在第一种方法中,它需要从十六进制字节数组转换为字符串)。
使用 Win32_UserAccount 的问题是我找不到按 OU 过滤它的方法。我可以按域名和名称成功过滤,并尝试使用 WQL 进行几次猜测,但似乎找不到 OU 过滤器的任何语法。我的大多数尝试都导致“无效查询”。以下是一个有效的查询示例:
$user = gwmi Win32_UserAccount -filter "name='somebody' AND domain='mydomain'"
如果没有办法按 OU 过滤,那么我将返回使用 DirectoryEntry/DirectorySearcher。