在PowerShell中,我已經知道如何使用DirectoryEntry和DirectorySearcher獲取某個OU中的用戶列表。這種方法的結果大部分是我在AD中查找的內容,但通過使用WMI查詢Win32_UserAccount來獲取相同的信息似乎更容易。我更喜歡這個類的屬性,並且SID已經是正確的字符串格式(在第一種方法中,它需要從一個十六進制字節數組轉換爲字符串)。如何通過OU過濾Win32_UserAccount結果
我在使用Win32_UserAccount時遇到的問題是我無法找到一種方法來通過OU進行過濾。我可以通過域名和名稱成功過濾,並且已經嘗試了幾次WQL猜測,但似乎無法找到OU過濾器的任何語法。我的大多數嘗試都會導致「無效查詢」。下面是一個可行的查詢的例子:
$user = gwmi Win32_UserAccount -filter "name='somebody' AND domain='mydomain'"
如果沒有辦法通過OU來過濾這個話,我會回去使用的DirectoryEntry /的DirectorySearcher。
這是我即將做,從的DirectorySearcher通過OU得到用戶的列表,並他們使用Win32_UserAccount(從Win32_Account繼承其他屬性)並從那裏獲取其餘的信息。對於WMI來說,這將是一個簡單的單一調用,並循環遍歷結果,但是如果OU屬性不可用,那麼我想它不能被它過濾。 – Bratch 2012-03-20 17:17:56