我想根據 CSV 檔案頭值替換 AD 屬性“userPrincipalName”值這里是 csv 檔案(group.csv)包含的內容
sAMAccountName
--------------
test.user1
test.user2
在腳本下方
$data = Import-Csv -Path .\group.csv -Header 'sAMAccountName'
foreach($user in $data){
Get-ADUser -Filter {sAMAccountName -eq "$($user.sAMAccountName)"} | Set-ADUser -Replace @{userPrincipalName="$($user.sAMAccountName)@RES.GROUP"}
}
在這里,我想用 csv 檔案中的 sAMAccountName 的值替換 AD 屬性“userPrincipalName”,例如 [email protected]
這個腳本不起作用,有人可以糾正它嗎?
uj5u.com熱心網友回復:
好的,由于您的評論顯示 CSV 檔案確實沒有標題,我建議將代碼更改為:
$data = Import-Csv -Path .\group.csv -Header 'sAMAccountName'
foreach($user in $data) {
$adUser = Get-ADUser -Filter "SamAccountName -eq '$($user.sAMAccountName)'" -ErrorAction SilentlyContinue
if ($adUser) {
$newUPN = '{0}@res.group' -f $user.sAMAccountName
$adUser | Set-ADUser -UserPrincipalName $newUPN
}
else {
Write-Warning "No user with SamAccountName '$($user.sAMAccountName)' could be found.."
}
}
這樣,當找不到具有該 samaccountname 的用戶時,檔案中的任何錯誤都不會導致代碼退出。相反,在這種情況下,您將看到有關它的警告,并且代碼將繼續處理其余資料。
值得一提的是,您可以-Server在cmdletGet-ADUser和Set-ADUsercmdlet 上使用引數,以確保使用相同的域服務器 (DC) 來設定新的 UPN。否則,您可以在一個 DC 上設定它,但正在查看另一個不會立即顯示更改的 DC,因為服務器需要時間來同步。
uj5u.com熱心網友回復:
伙計們非常感謝您的努力我得到了一個僅適用于個人用戶的腳本,腳本如下
get-aduser -filter {samaccountname -eq "test.user1"} | set-aduser -replace @{userprincipalname="[email protected]"}
這個腳本作業正常,但我想以某種方式為所有用戶動態地制作它,我試圖創建這個腳本
Get-ADUser -SearchBase "OU=Teams,OU=Prod,DC=RES,DC=TEST,DC=GROUP" -Filter {userPrincipalName -like "*@TEST.GROUP"} -Properties sAMAccountName | FT sAMAccountName | 輸出檔案 .\group.csv
$data = Import-Csv -Path .\group.csv -Header 'sAMAccountName' foreach($user in $data){ Get-ADUser -Filter "sAMAccountName -eq '$($user.sAMAccountName)'" | 設定 ADUser -替換 @{userPrincipalName="$($user.sAMAccountName)@RES.TEST.GROUP"} }
在此腳本中,我試圖獲取 AD 中“userPrincipalName”屬性以 *@TEST.GROUP 結尾的所有用戶,并將屬性“userPrincipalName”替換為用戶對應的“sAMAccountName”值
這是csv檔案
不幸的是,我的腳本和您建議的腳本都沒有按預期作業
而且,我還在下面嘗試了這個腳本
$user = Import-Csv -Path .\group.csv -Header "sAMAccountName" Get-ADUser -Filter {userPrincipalName -like "*@TEST.GROUP"} | 設定 ADUser -替換 @{userPrincipalName="$($user.sAMAccountName)@RES.TEST.GROUP"}
它給出了一個錯誤:
Set-ADUser:操作失敗,因為為添加/修改提供的 UPN 值在森林范圍內不是唯一的 At line:2 char:121
- ... A.GROUP"} | Set-ADUser -Replace @{userPrincipalName="$($user.sAMAccou ...
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~- CategoryInfo : NotSpecified: (CN=test user2,O...C=TEST,DC=GROUP:ADUser) [Set-ADUser], ADException
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/415802.html
標籤:
