PowerShell與活動目錄

從發佈以來,Windows PowerShell已經成爲Windows自動化平臺的選擇。它的強大和靈活已經在許多環境中被許多Windows技術所證實。不幸的是,在活動目錄支持方面,PowerShell 1並無什麼能夠炫耀。從基礎角度,微軟提供了ADSI「類型加速器」做爲它的支持。若是你須要去完成多高級任務,就不得不訪問提供AD支持的本地.NET類——而這須要更多的超出大部分管理員學習興趣的高級技能。

但隨着Windows 7和Windows Server 2008 R2的發佈,PowerShell對AD徹底支持的期待告一段落。微軟在新的版本中已經發布了一個AD模塊和PowerShell驅動提供程序,使得能夠經過PowerShell管理單元管理AD。服務器

如何安裝ide

若是你安裝一個Windows Server 2008 R2與控制器經過使用服務器管理添加活動目錄服務角色,AD PowerShell模塊將被默認安裝。可是,若是你想在你的Windows 7工做站上安裝這個模塊(模塊是PowerShell cmdlet、提供程序、腳本等的集合),你須要安裝服務器遠程管理工具(RSAT)。工具

一旦你安裝完畢RSAT,請打開控制面板的程序和功能類別,選擇打開或關閉Windows功能的RSAT節點。展開,轉到Windows PowerShell活動目錄模塊節點,如圖所示。選擇複選框,點擊是添加該模塊。學習

 

模塊被安裝以後,你既能夠從開始菜單、程序、管理工具組選擇Windows PowerShell活動目錄模塊,又能夠經過鍵入以下命令很容易的把它添加到你現有的PowerShell會話中:spa

Import-module ActiveDirectory對象

在短暫的閃爍以後,提示符將返回,而後你將能夠訪問PowerShell和AD所提供的全部強大功能。不過,在咱們開始使用PowerShell的AD模塊以前,讓我再來補充一條重要信息。不一樣於以前任何基於PowerShell的AD自動化實現,這個新的模塊要求在你的域中至少有一臺域控制器運行新的活動目錄Web服務(ADWS)。ADWS默認在R2的域控制器上安裝,但你在Windows Server 2003或Windows Server 2008域控制器上須要特殊的附件才能使用這個模塊。blog

若是你在你的域中沒有ADWS服務器,當你在PowerShell中試圖導入AD模塊時會出現錯誤。通常而言,對ADWS和這些PowerShell cmdlet最有趣的事,是它們都不使用LDAP和AD溝通。具體而言,它們使用基於XML Web服務的協議與AD交互。對之前的AD管理工具集而言,這是一個意義重大的改變,而且觀察微軟在將來的AD管理工具中是否延續這個趨勢是頗有趣的。注意若是你在非R2的域控制器中安裝了ADWS,你將依然可使用常規的基於LDAP的工具如‘活動目錄用戶和計算機’來管理這些服務器。資源

使用cmdletget

在你安裝完成這些cmdlet並有一臺運行ADWS的DC以後,你就能夠開始探索PowerShell對AD的強大威力。微軟爲使用PowerShell對AD進行自動化管理提供了兩個主要工具。第一個工具是一系列cmdlet,可讓你經過查找AD對象作你想作的一切,如建立計算機帳號、更改帳號等。第二個工具是一個針對AD的PowerShell驅動提供程序,可讓你像一個文件系統同樣導航AD。這個工具交互式使用具備強大的能力,我將爲你展現一些你能夠對AD進行的很棒的操做。cmd

讓咱們開始看看一些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」

相關文章
相關標籤/搜索