熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows服務器 >> 正文

用於管理活動目錄的11個基本工具

2013-11-11 22:56:49  來源: Windows服務器 

  如果您負責處理列有從下周開始工作的 名新員工資料的 Excel 電子表格或者由於技術支持人員點擊了某些不應點擊的內容而導致用戶帳戶配置錯誤

  或者您只是需要除了打開用戶和計算機之外的一種更加輕松的方法來管理 Active Directory??則有大量免費管理工具可以提供幫助有些工具內置於 Windows?? 操作系統中有些位於資源工具包或 Windows 支持工具中而有些甚至是免費的第三方工具這些便捷工具都包括什麼可以從何處獲取?讓我們來了解一下

  首先介紹 Windows Server?? 中的內置命令行工具這些工具允許您在 Active Directory 中創建刪除修改和查找對象

  CSVDE

  逗號分隔值數據交換工具(即 CSVDE)允許您使用 CSV 源文件將新對象導入到 Active Directory 中此外該工具還提供了將現有對象導出到 CSV 文件的功能CSVDE 不能用於修改現有對象在導入模式下使用此工具時您只能創建全新的對象

  使用 CSVDE 導出現有對象的列表相當簡單將 Active Directory 對象導出到名為 adcsv 的文件方法如下

  csvde –f adcsv

  –f 開關表示後面為輸出文件的名稱但是您必須注意根據環境的不同此基本語法可能會生成不實用的大型輸出文件要將此工具限制為僅導出特定組織單位 (OU) 中的對象可以將語句修改為如下形式

  csvde –f UsersOUcsv –d ou=Usersdc=contosodc=com

  進一步假定您只對將用戶對象導出到 CSV 文件感興趣如果是那樣的話您可以添加 –r 開關和 –l 開關前者允許指定輕型目錄訪問協議 (LDAP) 篩選器進行搜索後者可以限制導出的屬性的數量(請注意以下所有內容位於一行)

  csvde –f UsersOnlycsv –d ou=Usersdc=contosodc=com –r    (&(objectcategory=person)(objectclass=user)) –l    DNobjectClassdescription

  通過 –i 開關您可以將對象從源 CSV 文件導入到 Active Directory但是使用 CSVDE 創建用戶對象存在一個關鍵限制不能使用 CSVDE 設置用戶密碼因此應該避免使用 CSVDE 創建用戶對象

  LDIFDE

  Active Directory 還提供了另外一個用於執行批量用戶操作的內置工具稱為 LDIFDE與 CSVDE 相比此工具更強大更靈活除了可以創建新對象外LDIFDE 還可以修改和刪除現有對象甚至擴展 Active Directory 架構LDIFDE 雖然具有靈活性但為了實現這種靈活性卻必須要使用擴展名為 ldf 的 LDIF 文件作為輸出文件這種文件與簡單的 CSV 文件相比格式更復雜(只需少量操作就可以配置好用戶密碼我稍後將對此進行介紹

  我們從一個簡單的示例開始將某個 OU 中的用戶導出到 LDF 文件中(請注意以下所有內容位於一行)

  ldifde f usersldf s d ou=UsersOUdc=contosodc=com      –r (&(objectcategory=person)(objectclass=user))

  與大多數命令行工具一樣您可以通過運行 LDIFDE /? 命令找到 LDIFDE 開關的完整說明 介紹了我在此使用過的開關(注意 CSVDE 和 LDIFDE 命令的開關實際上是相同的

  LDIFDE 的真正功能在於創建和操作對象然而進行此操作之前您首先需要創建一個輸入文件以下語句創建兩個名為 afuller 和 rking 的用戶帳戶要創建該輸入文件請在記事本(或者您喜歡的純文本編輯器)中輸入以下文本然後將其保存為 NewUsersldf

  dn CN=afuller OU=UsersOU DC=contoso DC=com changetype add cn afullerobjectClass user samAccountName afuller dn CN=rking OU=UsersOU DC=contoso DC=com changetype add cn rkingobjectClass user samAccountName rking

  創建完該文件後請運行以下命令

  ldifde –i –f NewUsersldf –s

  您可能會猜到此處使用的唯一新開關 i 表明這是一項導入操作而非導出操作

  如果要修改或刪除現有對象不必更改 LDIFDE 命令的語法相反您應該修改 LDF 文件中的內容要更改用戶帳戶的說明字段請創建名為 ModifyUsersldf 的文本文件如圖  所示

  

  圖 ModifyUsers LDF 文件

  您可以通過運行與之前相同的 LDIFDE 命令語法f 開關後面指定新的 LDF 文件名來導入更改用於刪除對象的 LDF 格式更簡單要刪除一直使用的用戶請創建一個名為 DeleteUsersldf 的文件然後輸入以下內容

  dn CN=afuller OU=UsersOU DC=contoso DC=com changetype deletedn CN=rking OU=UsersOU DC=contoso DC=com changetype delete

  注意與 CSVDE 不同LDIFDE 能夠配置用戶密碼不過在為用戶帳戶配置 unicodePWD 屬性之前必須在域控制器上配置安全套接字層/傳輸層安全性 (SSL/TLS) 加密

  而且LDIFDE 能夠創建和修改任何類型的 Active Directory 對象並不僅限於用戶帳戶例如下面的 LDF 文件可在 林的架構中創建名為 EmployeeIDexample 的自定義架構擴展

  dn cn=EmployeeIDexamplecn=Schemacn=Configurationdc=contosodc=comchangetype addadminDisplayName EmployeeIDExampleattributeID attributeSyntax cn EmployeeIDinstanceType isSingleValued TruelDAPDisplayName employeeIDexample

  由於 LDIFDE 文件使用工業標准 LDAP 文件格式因此需要修改 Active Directory 架構的第三方應用程序會經常提供 LDF 文件您可以在將這些更改應用於生產環境之前使用這些文件檢查和批准更改

  除了用於執行批量導入和導出操作的工具外Windows Server 還包括一個內置工具集您可以使用它來創建刪除和修改各種 Active Directory 對象還可以對符合特定條件的對象執行查詢(請注意 Windows Active Directory 並不支持這些工具如 dsadddsrmdsget 和 dsquery 等

  dsadd

  Dsadd 用於在特定的目錄分區上創建 Active Directory 對象類的實例這些類包括用戶計算機聯系人組織單位和配額Dsadd 具備一個由下列內容組成的通用語法

  dsadd <ObjectType> <ObjectDistinguishedName> attributes

  請注意您創建的每個對象類型都有一組特定的開關它們與該類型的屬性相對應以下命令創建一個填充了各種屬性的用戶對象(請注意以下所有內容位於一行)

  dsadd user cn=afullerou=ITdc=contosodc=com –samID afuller –fn Andrew –ln Fuller –pwd * memberOf cn=ITou=Groupsdc=contosodc=com cn=Help Deskou=Groupsdc=contosodc=com –desc Marketing Director

  –memberOf 開關要求指定應添加該用戶的每個組的完整可分辨名稱 (DN)如果要將用戶添加到多個組您可以添加多個 DN 並用空格分隔開

  任何元素如果包含空格(如 Help Desk 組的 DN)則該元素應該括在雙引號中如果某個元素含有反斜槓(如稱為 IT\EMEA 的 OU)則必須輸入兩次反斜槓IT\\EMEA(這些要求適用於所有的 ds* 工具

  如果使用 pwd * 開關則系統將提示您在命令行輸入用戶密碼您可以在該命令中指定密碼 (pwd P@ssword但是這樣會在屏幕上或該命令嵌入到的任何文本或腳本文件中以純文本形式顯示該密碼

  同樣您可以使用下列兩個命令創建組對象和 OU

  dsadd computer cn=WKSou=Workstationsdc=contosodc=comdsadd ou ou=Training OUdc=contosodc=com

  Dsmod

  Dsmod 用於修改現有對象它的使用方法與 dsadd 非常相似您需要根據要修改的對象的類型使用不同的子菜單和語法以下 dsmod 語句會更改用戶的密碼並修改該用戶的帳戶因此在下次登錄時系統會提示該用戶更改為新的密碼

  dsmod user cn=afullerou=ITdc=contosodc=com –pwd P@sswrd    –mustchpwd yes

  要了解這些開關多麼相似您可以查看要用於創建此用戶並配置了相同屬性的 dsadd 語法

  dsadd user cn=afullerou=ITdc=contosodc=com –pwd P@sswrd    –mustchpwd yes

  您可以清晰地看到如果知道 dsadd 中用於創建對象的開關則可以使用那些相同的開關修改 dsmod 用戶

  dsrm

  dsrm 與 dsadd 是相逆的正如您可能想到的使用此工具可從命令行中刪除對象基本的 dsrm 語法相當簡明只需輸入 dsrm 後輸入要刪除對象的可分辨名稱即可如下所示

  dsrm cn=WKSou=Workstationsdc=contosodc=com

  默認情況下dsrm 會提示確實要刪除此對象嗎?此時鍵入 Y然後按 Enter您可以使用 –noprompt 開關禁止顯示此提示但很明顯這樣做無法在刪除對象之前確認所選對象是否正確如果要刪除容器對象(即在其內部可能包含其他對象的組織單位)另外兩個開關可能會很有用以下命令將刪除 TrainingOU 組織單位及其內部包含的所有對象

  dsrm ou=TrainingOUdc=contosodc=com –subtree

  以下命令將刪除包含在 TrainingOU 中的所有子對象但保留組織單位對象本身

  dsrm ou=TrainingOUdc=contosodc=com –subtree    –exclude

  dsmove

  要移動或重命名 Active Directory 中的對象請使用 dsmove 工具但請注意您只應使用該工具在單一域中移動對象要在域和林之間遷移對象請使用 Active Directory 遷移工具 (ADMT)可從 Microsoft 網站免費下載Dsmove 依賴於兩個開關它們可以單獨使用也可以結合在一起使用以下命令將為 Steve Conn 的帳戶指定新姓氏

  dsmove cn=Conn Steveou=ITdc=contosodc=com    –newname Steve Conn

  以下命令將 Steve 的帳戶從 IT OU 移動到 Training OU

  dsmove cn=Conn Steveou=ITdc=contosodc=com –newparent    ou=Trainingdc=contosodc=com

  您可以通過同時指定這兩個開關將重命名和移動合並為一個操作如下所示

  dsmove cn=Conn Steveou=ITdc=contosodc=com –newname    Steve Conn –newparent ou=Trainingdc=contosodc=com

  Dsget 和 Dsquery

  ds* 命令行工具集還包括兩個用於查詢 Active Directory 獲取信息而非用於創建或修改對象的工具

  Dsget 將對象的 DN 作為輸入並為您提供您指定的一個或多個屬性的值Dsget 使用與 dsadd 和 dsmod 相同的子菜單 — usercomputercontactgroupou 和 quota

  要獲得用戶帳戶的 SAM 帳戶名和安全標識符 (SID)請鍵入以下命令(請注意以下所有內容位於一行)

  dsget user cn=afullerou=ITdc=contosodc=com    –samAccountName –sid

  您將會得到如圖 所示的輸出

  

  圖  運行 dsget

  Dsquery 將返回一個符合您指定條件的 Active Directory 對象的列表無論您使用的是哪個子菜單都可以指定以下參數

  dsquery <ObjectType> <StartNode> s <Search Scope> o <OutputFormat>

  對於 ObjectTypedsquery 可以使用以下子菜單每個子菜單都具有自己的語法computercontactsubnetgroupousiteserver(請注意服務器子菜單檢索有關域控制器的信息而不是環境中的任一成員服務器)userquota 和 partition如果其中一個查詢類型不符合需要您可以使用 * 子菜單這樣您可以輸入任意格式的 LDAP 查詢

  StartNode 指定搜索在 Active Directory 樹中的開始位置您可以使用特定的 DN如 ou=ITdc=contosodc=com 或下列其中一個快捷說明符domainroot從特定域的根目錄開始forestroot從使用全局編錄服務器執行搜索的林根域的根目錄開始

  最後搜索范圍選項指定 dsquery 搜索 Active Directory 樹的方式Subtree(默認方式)查詢指定的 StartNode 及其所有子對象onelevel 僅查詢 StartNode 的直接子項base 僅查詢 StartNode 對象

  為了更好地理解搜索范圍假定有一個 OU其中包含用戶對象和一個子 OU該子 OU 自身又包含其他對象使用 subtree 范圍將查詢該 OU包含在該 OU 內的所有用戶對象和子 OU 及其內容onelevel 范圍僅查詢包含在 OU 中的用戶而不查詢子 OU 及其內容base 查詢僅搜索 OU 本身而不查詢其中包含的任何對象

  最後您可以使用 Output Format 控制如何設置 dsquery 的結果的格式默認情況下dsquery 將返回與查詢相匹配的所有對象的可分辨名稱如下所示

  cn=afullerou=Trainingdc=contosodc=comcn=rkingou=ITTrainingou=Trainingdc=contosodc=com

  要查詢 IT OU 和任意子 OU 中包含的所有用戶對象請使用以下命令

  dsquery user ou=ITdc=contosodc=com

  您可以通過添加其他開關進一步細化此查詢disabled(僅返回已禁用的用戶帳戶)inactive x(僅返回在過去 x 周或更久未登錄的用戶)或 stalepwd x(僅返回在 x 天內或更久未更改其密碼的用戶)

  依據目錄中對象的數目在運行查詢時您可能需要指定 limit x 開關默認情況下dsquery 將會返回多達 個與查詢細節相匹配的對象您可以指定更大的數目(如 limit 或使用 limit 指示 dsquery 返回所有匹配對象

  也可以使用其他子菜單執行對其他對象類型的有用查詢考慮以下查詢此查詢將返回在 Active Directory 站點和服務中定義的位於 xx 地址空間中的每個子網

  dsquery subnet –name *

  或使用以下命令返回位於 Corp 站點中的每個子網

  dsquery subnet –site Corp

  使用另一個子菜單您可以很快確定林中配置為全局編錄服務器的域控制器的數量

  dsquery server –forest –isgc

  您還可以使用此語法幫助確定域中哪個域控制器承載主域控制器 (PDC) 模擬器靈活單主機操作 (FSMO) 角色

  dsquery server –hasfsmo pdc

  與其他包含子菜單的 ds* 命令一樣您可以轉到命令提示符並鍵入 dsquery user /?dsquery computer /?dsquery subnet /? 等查看特定 dsquery 子菜單中可用的所有開關

  另一個靈活的技巧是使用管道字符(在美式鍵盤上按下 shift 的同時按反斜槓即可)將 dsquery 的輸出通過管道傳送到其他工具(如 dsmod)中例如假設您的公司已將 Training 部門重命名為 Internal Development現在您必須將每位相關用戶的說明字段從舊部門名稱更改為新名稱在單一命令行上您可以查詢具有 Training 的說明字段的用戶對象然後批量修改該說明字段如下所示

  dsquery user –description Training | dsmod    description Internal Development

  一些第三方產品

  由於 Active Directory 基於 LDAP 標准您可以使用任何支持 LDAP 的工具對其進行查詢和修改許多第三方供應商已發布了收費的工具幫助您管理 Active Directory但有時您會發現為社區免費提供的極具價值的工具目錄服務 MVP Joe Richards 創建的集合就是這種情況可以從 /freetools 下載在那裡您將會發現大量具有不同功能的工具我反復使用的有 adfindadmod 和 oldcmp 這三種工具

  Adfind 和 Admod

  Adfind 和 admod 類似於 dsquery 和 dsmodadfind 是 Active Directory 的命令行查詢工具admod 能夠創建刪除或修改一個或多個 Active Directory 對象

  與具有多個子菜單並且開關依據對象類型而異的 ds* 工具不同adfind 和 admod 具有一致的語法與要嘗試執行的查詢或修改類型無關adfind 的基本語法為

  adfind –b <Search Base> s <Search Scope> f <Search Filter>    attributesDesired

  所以對域中所有計算機對象的 DN 和說明的查詢應為

  adfind –b dc=contosodc=com –s subtree –f (objectclass=computer) dn    description

  對所有用戶對象的查詢如下所示

  adfind –b dc=contosodc=com –s subtree –f (&(objectcategory=person)    (objectclass=user)) dn description

  注意除了 LDAP 查詢的內容外語法沒有任何更改

  使用 adfind 時您將發現許多快捷操作符可以減少許多鍵入內容例如default 開關可以取代上一示例中的 b dc=contosodc=com 並搜索整個域gc 搜索垃圾收集 (GC) 並返回 Active Directory 林中所有的用戶還可以使用 rb 開關設置相對搜索庫如果要在 域中搜索 Training OU您可以通過僅僅指定 –default –rb ou=Training而非 –b ou=Training dc=phldc=eastdc=usdc=contosodc=com從而減少許多工作量

  另外adfind 還可以執行在命令行中不能輕松管理的許多高級搜索功能如圖 所示

  使用 –asq 開關顯示 HelpDesk 成員的組成員身份的示例如下所示

  adfind –default –rb cn=HelpDeskou=IT –asq member memberOf

  顧名思義admod 用於修改 Active Directory 中的對象與 adfind 一樣不需要記住有特殊語法的特定子菜單admod 在任何時候都使用相同的語法與要處理的對象類型無關還可以使用 admod 添加移動重命名刪除甚至恢復對象只需通過添加相應的開關(如 addrmmoveundel)即可實現就像 dsquery 和 dsmod 一樣您也可以使用 | 字符將 adfind 查詢的結果通過管道傳送到 admod

  請注意使用 admod 執行恢復操作只能執行邏輯刪除恢復操作在此操作中大部分對象屬性已被刪除要完全還原某個對象及其所有屬性您仍需要執行該對象的授權還原

  Oldcmp

  還有一個 joeware 工具我認為它是自動工具包中必不可少的一部分oldcmp該工具會掃描 Active Directory 數據庫查找在指定周數內未使用的計算機帳戶而且可以執行以下操作

  * 創建帳戶報表而不對其進行任何操作

  * 禁用未使用的計算機帳戶

  * 將計算機帳戶移動到另一個指定的 OU 中

  * 完全刪除計算機帳戶

  請注意由於 oldcmp 可能會嚴重損壞您的目錄因此它有許多內置的安全功能它不會刪除尚未禁用的任何帳戶(無需手動指定No really I mean it!命令行開關)無需指定類似的No really I mean it!開關每次修改對象不會超過 而且絕對不會對域控制器的計算機帳戶執行任何操作

  現在盡管工具的名稱易於誤導但是 Joe 已更新了 oldcmp以便對在特定時間內未使用的用戶帳戶也能執行相似的功能

  對於一個小型 Active Directory 環境或每次只執行一兩個添加或更改操作的環境GUI 工具(如 Active Directory 用戶和計算機)可能足以滿足日常管理需要但是如果您每天都要添加和修改大量對象或者只是需要更加簡化地管理任務解決方案則改用命令行可以大大加快在 Active Directory 中創建修改和刪除對象的過程您已經了解到有許多靈活且功能強大的工具可以免費獲得它們或者內置於 Windows 中或者可從 Active Directory 社區成員中下載這些工具中的任何一個都能夠大大提高 Active Directory 管理員的工作效率與此同時它們在您的日常工作中變得更加必要


From:http://tw.wingwit.com/Article/os/fwq/201311/10313.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.