由于 Active Directory 基于 LDAP 標準,您可以使用任何支持 LDAP 的工具對其進行查詢和修改。許多第三方供應商已發布了收費的工具,幫助您管理 Active Directory,但有時您會發現為社區免費提供的極具價值的工具。目錄服務 MVP Joe Richards 創建的集合就是這種情況,可以從 joeware.net/freetools 下載。在那里您將會發現大量具有不同功能的工具。我反復使用的有 adfind、admod 和 oldcmp 這三種工具。
Adfind 和 Admod
Adfind 和 admod 類似于 dsquery 和 dsmod;adfind 是 Active Directory 的命令行查詢工具,admod 能夠創建、刪除或修改一個或多個 Active Directory 對象。
與具有多個子菜單并且開關依據對象類型而異的 ds* 工具不同,adfind 和 admod 具有一致的語法,與要嘗試執行的查詢或修改類型無關。adfind 的基本語法為:
adfind –b <Search Base> -s <Search Scope> -f <Search Filter> attributesDesired
所以對域中所有計算機對象的 DN 和說明的查詢應為:
adfind –b dc=contoso,dc=com –s subtree –f (objectclass=computer) dn description
對所有用戶對象的查詢如下所示:
adfind –b dc=contoso,dc=com –s subtree –f "(&(objectcategory=person) (objectclass=user))" dn description
注意,除了 LDAP 查詢的內容外,語法沒有任何更改。
使用 adfind 時,您將發現許多快捷操作符,可以減少許多鍵入內容。例如,-default 開關可以取代上一示例中的 -b dc=contoso,dc=com 并搜索整個域;-gc 搜索垃圾收集 (GC) 并返回 Active Directory 林中所有的用戶。還可以使用 -rb 開關設置相對搜索庫;如果要在 phl.east.us.contoso.com 域中搜索 Training OU,您可以通過僅僅指定 –default –rb ou=Training,而非 –b ou=Training, dc=phl,dc=east,dc=us,dc=contoso,dc=com,從而減少許多工作量。
另外,adfind 還可以執行在命令行中不能輕松管理的許多高級搜索功能,如圖 4 所示。
使用 –asq 開關“顯示 HelpDesk 成員的組成員身份”的示例如下所示:
adfind –default –rb cn=HelpDesk,ou=IT –asq member memberOf
顧名思義,admod 用于修改 Active Directory 中的對象。與 adfind 一樣,不需要記住有特殊語法的特定子菜單;admod 在任何時候都使用相同的語法,與要處理的對象類型無關。還可以使用 admod 添加、移動、重命名、刪除甚至恢復對象,只需通過添加相應的開關(如 -add、-rm、-move、-undel)即可實現。就像 dsquery 和 dsmod 一樣,您也可以使用 | 字符將 adfind 查詢的結果通過管道傳送到 admod.
請注意,使用 admod 執行恢復操作只能執行邏輯刪除恢復操作,在此操作中大部分對象屬性已被刪除。要完全還原某個對象及其所有屬性,您仍需要執行該對象的授權還原。
Oldcmp
還有一個 joeware 工具,我認為它是自動工具包中必不可少的一部分:oldcmp,該工具會掃描 Active Directory 數據庫,查找在指定周數內未使用的計算機帳戶,而且可以執行以下操作:
* 創建帳戶報表而不對其進行任何操作
* 禁用未使用的計算機帳戶
* 將計算機帳戶移動到另一個指定的 OU 中
* 完全刪除計算機帳戶
請注意,由于 oldcmp 可能會嚴重損壞您的目錄,因此它有許多內置的安全功能。它不會刪除尚未禁用的任何帳戶(無需手動指定“No really, I mean it!”命令行開關)。無需指定類似的“No really, I mean it!”開關,每次修改對象不會超過 10 個,而且絕對不會對域控制器的計算機帳戶執行任何操作。
現在,盡管工具的名稱易于誤導,但是 Joe 已更新了 oldcmp,以便對在特定時間內未使用的用戶帳戶也能執行相似的功能。
對于一個小型 Active Directory 環境或每次只執行一兩個添加或更改操作的環境,GUI 工具(如 Active Directory 用戶和計算機)可能足以滿足日常管理需要。但是,如果您每天都要添加和修改大量對象,或者只是需要更加簡化地管理任務解決方案,則改用命令行可以大大加快在 Active Directory 中創建、修改和刪除對象的過程。您已經了解到,有許多靈活且功能強大的工具可以免費獲得,它們或者內置于 Windows 中,或者可從 Active Directory 社區成員中下載。這些工具中的任何一個都能夠大大提高 Active Directory 管理員的工作效率,與此同時,它們在您的日常工作中變得更加必要。