PowerShell 大量匯入/匯出Active Directory,powershellactive
PowerShell 大量匯入/匯出Active Directory 最近因為公司要求,需要匯入20個供應商、20個客戶到AD域中,剛開始手動加入了2個供應商,2個客戶。但是感覺費時費力。如果能夠找到一個命令,大量匯入AD該多好呀。 因為之前有師兄在AD方面留下的有文檔,發現AD域使用者匯出的命令是這樣的:
csvde -f E:\20131015.csv -r "(objectClass=user)" -d "OU=XXX,DC=XXX,DC=com" -u
這裡對OU做了處理,你在使用時應該換上自己的屬性值。這個命令將AD使用者匯出到E盤,我用當今日期作為檔案名稱,儲存為csv檔案(csv檔案可以用Excel開啟)。
接下來我們討論如何大量匯入AD使用者的問題。同上面一樣,我們使用csv格式的檔案匯入使用者資料到AD的組織單元。 先輸入csvde /?(注意中間的空格)查看一下都有什麼命令吧。
知道了csvde的命令之後,我們開始一步步匯入資料吧。 在Excel中輸入相關資訊,儲存為csv檔案。
將檔案放在F盤,命名ADInfor.csv。 管理員運行PowerShell,輸入命令:
Import-Csv f:\ADInfor.csv | foreach {New-ADUser -Name $_.name -SamAccountName $_.samaccountname -UserPrincipalName $_.userprincipalname -GivenName $_.givenname -Surname $_.surname -DisplayName $_.displayname -Path $_.path -AccountPassword(ConvertTo-SecureString"123@abc" -AsPlainText -Force) -ChangePasswordAtLogon $true -Enabled $true}
我遇到一個提示錯誤----無法將“New-ADUser”項識別為 cmdlet、函數、指令檔或可運行程式的名稱。
於是我在PowerShell輸入Get-Command命令,查看可用的命令有哪些。。。發現沒有任何AD相關的命令。也沒有找到New-ADUser。
關閉PowerShell,再次按右鍵PowerShell,選擇匯入系統模組。匯入完畢後輸入Get-Command命令,我們看到New-ADUser已經在命令組中了。
windows 2003 server sp2 批量使用者名稱匯出 匯入新伺服器的批量命令是什?
一:使用CSVDE匯出帳戶
使用CSVDE 匯出現有對象的列表相當簡單。
最簡單的用法是:
csvde –f ad.csv 將Active Directory 對象匯出到名為ad.csv 的檔案。–f 開關表示後面為輸出檔案的名稱。
但是必須注意,上述的用法是很簡單,但是匯出來的結果可能存在太多你不希望要的記錄和資訊。
如果要實現更精確的匯出記錄,可以使用-d 和-r 以及-l 參數。
其中:-d 用來指定特定的搜尋位置和範圍
-r 用來指定特定的搜尋物件類型
-l 用來指定匯出對象的具體屬性
如:
csvde –f users.csv –d "ou=Users,dc=contoso,dc=com" –r "(&(objectcategory=person)(objectclass=user))" –l DN,objectClass,description
注意:如果使用CSVDE匯出的帳戶資訊中存在中文,會存在亂碼的可能,可以加-U參數來解決。
二:大量匯入帳戶
首先需要明確的概念是,要實現大量匯入帳戶,必須要存在一個已包括多個帳戶資訊的檔案。沒有檔案,無法實現大量匯入。
假設之前已經通過CSVDE工具匯出過這樣的一個檔案Users.csv,且檔案內容如下
姓 名 全名 登入名稱 密碼
張,三, 張三, three.zhang,pass01
李,四, 李四, four.li, passo2
王,五, 王五, five.wang, pass03
劉,六, 劉六, six.liu, passo4
趙,七, 趙七, seven.zhao, pass05
有了上述格式的檔案後,我們就可以使用For命令來讀取檔案中的每條資訊並利用DSADD實現帳號添加。
具體語句如下:
C:\>for /f"tokens=1,2,3,4,5 delims=," %a in (uses.csv) do dsadd user"cn=%c,ou=
newusers,dc=contoso,dc=com" -samid %d -upn %d@contoso.com -fn
%b -ln %a -pwd %e -disabled no
作用:將上述檔案中五個帳戶添加到contoso.com域,名為newusers的OU中,且預設已啟用使用者。
其中:-samid為登入名稱
-upn為UPN登入名稱
-fn為 名
-ln為 姓
-pwd為 密碼
簡單解釋一下for語句
/f 表示從檔案中讀取資訊
tokens表示每行使用的記號,對應於後面的變數具體的值
delims表示每個欄位之間的分隔字元...餘下全文>>
2003大量匯出,正在使用的域使用者
具體步驟:
一:使用CSVDE匯出帳戶
使用CSVDE 匯出現有對象的列表相當簡單。
最簡單的用法是:
csvde –f ad.csv 將Active Directory 對象匯出到名為ad.csv 的檔案。–f 開關表示後面為輸出檔案的名稱。
但是必須注意,上述的用法是很簡單,但是匯出來的結果可能存在太多你不希望要的記錄和資訊。
如果要實現更精確的匯出記錄,可以使用-d 和-r 以及-l 參數。
其中:-d 用來指定特定的搜尋位置和範圍
-r 用來指定特定的搜尋物件類型
-l 用來指定匯出對象的具體屬性
如:
csvde –f users.csv –d "ou=Users,dc=contoso,dc=com" –r "(&(objectcategory=person)(objectclass=user))" –l DN,objectClass,description
注意:如果使用CSVDE匯出的帳戶資訊中存在中文,會存在亂碼的可能,可以加-U參數來解決。
二:大量匯入帳戶
首先需要明確的概念是,要實現大量匯入帳戶,必須要存在一個已包括多個帳戶資訊的檔案。沒有檔案,無法實現大量匯入。
假設之前已經通過CSVDE工具匯出過這樣的一個檔案Users.csv,且檔案內容如下
姓 名 全名 登入名稱 密碼
張,三, 張三, three.zhang,pass01
李,四, 李四, four.li, passo2
王,五, 王五, five.wang, pass03
劉,六, 劉六, six.liu, passo4
趙,七, 趙七, seven.zhao, pass05
有了上述格式的檔案後,我們就可以使用For命令來讀取檔案中的每條資訊並利用DSADD實現帳號添加。
具體語句如下:
C:\>for /f"tokens=1,2,3,4,5 delims=," %a in (uses.csv) do dsadd user"cn=%c,ou=
newusers,dc=contoso,dc=com" -samid %d -upn %d@contoso.com -fn
%b -ln %a -pwd %e -disabled no
作用:將上述檔案中五個帳戶添加到contoso.com域,名為newusers的OU中,且預設已啟用使用者。
其中:-samid為登入名稱
-upn為UPN登入名稱
-fn為 名
-ln為 姓
-pwd為 密碼
簡單解釋一下for語句
/f 表示從檔案中讀取資訊
tokens表示每行使用的記號,對應於後面的變數具體的值
delims表示每個欄位之間的分隔字元...餘下全文>>