Powershell批量建立AD賬戶

2021-06-02 01:16:05 字數 1212 閱讀 9192

它是乙個單獨的命令列,即匯入乙個 csv 檔案並使用其中的資訊建立數十甚至數百個新的 active directory 使用者:

import-csv 'c:\provision1.csv' |

foreach-object

它確實是個很長的命令,但功能卻強大得令人驚訝。首先是 import-csv(本機外殼 cmdlet),它只需讀取乙個 csv 檔案並返回物件。csv 檔案中的每一行都是乙個單獨的物件,並且 csv 檔案的列將成為物件的屬性。在 provision1.csv 檔案中,列名類似於 "logon name" 和 "first name"—這一點非常有趣,因為列名不會直接對映到 active directory 使用者屬性。我發現,檔案(比如此檔案)通常都是使用聽起來熟悉的列名,而非特定於 active directory 的名稱。畢竟,您可能是從公司人事部的某個人那裡收到的此檔案,他們不太可能知道 last name 在 active directory 實際是 sn 屬性。

一旦將 csv 檔案中的所有資料匯入並轉換成物件,這些物件即會被通過管道傳送到 foreach-object cmdlet,它將針對每個物件執行**塊(剛才的單行式命令的花括號中的內容)。即,對 csv 檔案中的每一行均執行一次該指令碼。在該指令碼中,特殊的 $_ variable 為當前物件(或 csv 檔案的當前行)的引用。

您可以看到,對於每個物件,我都執行了 new-qaduser cmdlet。它是 quest 載入項中大約十幾個 cmdlet 中的乙個。名稱 qaduser 值得關注一下。您可能已猜到,q 代表 quest。該命名約定旨在避免與 microsoft active directory 團隊將來可能推出的終極版 new-aduser cmdlet 發生衝突。這樣,如果同時將這兩個 cmdlet 載入到外殼中,您和外殼將能夠更加輕鬆地區分它們。

單行式命令的剩餘部分包含 new-qaduser cmdlet 的引數。它首先指定 organizationalunit,即您希望在其中建立所有新使用者的位置。接下來是 name 屬性,我已將它設定為 first name 列的內容、句點以及 last name 列的內容。

最後乙個有趣的事實是:city 引數實際會實際更改 active directory 中的 l 屬性(或 locality-name)。cmdlet 還接受名為 l 的引數,所實現的功能完全相同。大多數情況下,引用 active directory 屬性的引數可使用 active directory 使用者和計算機工具的屬性名稱或文字標籤。

Powershell建立陣列

在powershell中建立陣列可以使用逗號。ps c powershell nums 2,0,1,2 ps c powershell nums20 12對於連續的數字陣列可以使用乙個更快捷的方法 ps c powershell nums 1.5 ps c powershell nums12 345...

在Powershell批量重新命名檔案

get childitem png rename item newname分析 get childitem png 是第乙個命令,這個命令的輸出,將通過管道 管道符 輸出給第二個命令。管道是程序間通訊的一種手段 第二個命令 rename item 進行重新命名,它會逐個接受前乙個命令裡的每乙個檔案資...

PowerShell操作DNS建立SRV記錄

powershell可以快速的建立a記錄和dns記錄。我們看一下標準的srv記錄是什麼樣子的 ps c get wmiobject namespace root microsoftdns class microsoftdns srvtype genus 2 class microsoftdns sr...