但隨著Windows 7和Windows Server 2008 R2的發布,PowerShell對AD完全支持的期待告一段落。微軟在新的版本中已經發布了一個AD模塊和PowerShell驅動提供程序,使得可以通過PowerShell管理單元管理AD。
如何安裝
如果你安裝一個Windows Server 2008 R2與控制器通過使用服務器管理添加活動目錄服務角色,AD PowerShell模塊將被默認安裝。但是,如果你想在你的Windows 7工作站上安裝這個模塊(模塊是PowerShell cmdlet、提供程序、腳本等的集合),你需要安裝服務器遠程管理工具(RSAT)。
一旦你安裝完畢RSAT,請打開控制面板的程序和功能類別,選擇打開或關閉Windows功能的RSAT節點。展開,轉到Windows PowerShell活動目錄模塊節點,如圖所示。選擇復選框,點擊是添加該模塊。
?
模塊被安裝之后,你既可以從開始菜單、程序、管理工具組選擇Windows PowerShell活動目錄模塊,又可以通過鍵入如下命令很容易的把它添加到你現有的PowerShell會話中:
Import-module ActiveDirectory
在短暫的閃爍之后,提示符將返回,然后你將可以訪問PowerShell和AD所提供的所有強大功能。不過,在我們開始使用PowerShell的AD模塊之前,讓我再來補充一條重要信息。不同于之前任何基于PowerShell的AD自動化實現,這個新的模塊要求在你的域中至少有一臺域控制器運行新的活動目錄Web服務(ADWS)。ADWS默認在R2的域控制器上安裝,但你在Windows Server 2003或Windows Server 2008域控制器上需要特殊的附件才能使用這個模塊。
如果你在你的域中沒有ADWS服務器,當你在PowerShell中試圖導入AD模塊時會出現錯誤。一般而言,對ADWS和這些PowerShell cmdlet最有趣的事,是它們都不使用LDAP和AD溝通。具體而言,它們使用基于XML Web服務的協議與AD交互。對以前的AD管理工具集而言,這是一個意義重大的改變,并且觀察微軟在未來的AD管理工具中是否延續這個趨勢是很有趣的。注意如果你在非R2的域控制器中安裝了ADWS,你將依然可以使用常規的基于LDAP的工具如‘活動目錄用戶和計算機’來管理這些服務器。
使用cmdlet
在你安裝完成這些cmdlet并有一臺運行ADWS的DC之后,你就可以開始探索PowerShell對AD的強大威力。微軟為使用PowerShell對AD進行自動化管理提供了兩個主要工具。第一個工具是一系列cmdlet,可以讓你通過查找AD對象做你想做的一切,如創建計算機賬號、更改賬號等。第二個工具是一個針對AD的PowerShell驅動提供程序,可以讓你像一個文件系統一樣導航AD。這個工具交互式使用具有強大的能力,我將為你展示一些你可以對AD進行的很棒的操作。
讓我們開始看看一些AD cmdlet。如果你想得到一個活動目錄 PowerShell模塊中所有AD相關的cmdlet列表,打開PowerShell并鍵入如下命令:
get-command -module ActiveDirectory
這將返回一個有76個cmdlet名字的清單,它們是AD模塊的一部分。正如你從清單中看到的,有一些顯眼的cmdlet,如檢索組成員的Get-ADGroupMember和為域添加計算機賬號的New-ADComputer。讓我們看看你如何使用這幾個命令。比方說,你想快速檢索你域中“Marketing Users”組的成員列表。你可以使用如下cmdlet輕松完成:
get-ADGroupMember -identity "Marketing Users"
參數identity作為引用一個特定對象的方式在整個AD cmdlet中很常見。Identity參數可以采取一個可分辨名稱(如,DC=cpand1,DC=com),一個對象GUID或者samAccountName的形式。
PowerShell和這些AD cmdlet的另一個強大特性,是能夠通過管道把輸出從一個cmdlet傳遞到另一個。例如,假設你想在AD中查找一個用戶對象,然后禁用該用戶對象。你知道用戶的samAccountName是kmyer,所以你可以使用下面的兩個cmdlet完成這個任務:
get-ADUser -identity kmyer | Set-ADUser -enabled $false
在這個例子中,我們使用get-ADUser cmdlet搜索samAccounName為kmyer的用戶賬號。只要我們找到那個用戶,我們使用管道把它傳遞給Set-ADUser cmdlet,并給他賦予帶有$false標記的-enabled參數來禁用賬號。
這是一個簡單的例子,說明了PowerShell和AD cmdlet的威力和簡潔。由于這個模塊中有76個cmdlet,你可以想想你能使用這個功能做得更多。讓我們來看看另一個功能更多更值得討論的模塊:活動目錄PowerShell驅動提供程序。
活動目錄PowerShell驅動提供程序
什么是活動目錄PowerShell驅動提供程序?PowerShell支持資源管理的概念,這就像驅動器卷一樣。正如你可以使用cd進入一個文件夾一樣,PowerShell驅動提供程序可以讓你以同樣的方式瀏覽其他類型的資源。例如,在PowerShell 1中,微軟提供了一個注冊表PowerShell驅動,因此你可以像對待文件夾和文件一樣對待注冊表鍵。你可以在PowerShell中改變路徑到HKEY_LOCAL_MACHINE,然后導航到鍵,使用類似于你在文件系統中使用的命令添加或刪除鍵和值。微軟已經提供了一個AD的PowerShell驅動程序和cmdlet共同使用。這個PowerShell驅動提供程序讓你像對待文件系統一樣對待你的AD層次結構。要使用這個功能,打開PowerShell并加載AD模塊,然后鍵入:
Cd AD:
你會發現驅動提示發生了改變以反映你新的工作路徑。如果從此處鍵入dir,你會得到你當前AD林所有分區的列表。我們假設你想導航到你的域,并創建一個新的OU。在AD的最高層次:驅動提示上下文中鍵入(以你AD域的目錄名稱取代DC=cpandl,DC=com):
cd “DC=cpandl,DC=com”
現在假設我們想在Marketing OU下創建一個新的HR OU。更改到Marketing OU文件夾,鍵入:
cd “OU=Marketing”
最后,在Marketing OU下創建HR OU,鍵入:
Md “OU=HR”
本文轉自legendfu51CTO博客,原文鏈接:?http://blog.51cto.com/legendfu/1072327,如需轉載請自行聯系原作者