我想通過EmployeeID
更新用戶AD屬性,而不是他們的SAMAccountName
。我試過使用Set-ADUser
,但它不起作用,因爲我給出的列表不包含帳戶sAMAccountName
,因爲它來自無法訪問此信息的HR。如何使用Powershell根據員工ID修改Active Directory用戶屬性?
有沒有辦法通過其唯一的employeeID
更新AD用戶屬性?
我的源數據.csv文件包含此:
EmployeeID;company;department;title;country;postalCode;city;streetAddress;manager 2828;TEST1;TEST2;TestXENUser;DE;12345;MUE;Miller Street 6;chrtest
我的劇本是這樣的:
$Users = Import-CSV C:\05042017\data.csv
$Users | ForEach-Object {
$EmpID = $_.EmployeeID
Get-ADUser -Filter "*" -Property EmployeeID | Where {$_.EmployeeID -eq $EmpID} | Set-ADUser -company $EmployeeID.company -department $EmployeeID.department –title $EmployeeID.title –country $EmployeeID.country –postalCode $EmployeeID.postalCode –city $EmployeeID.city –streetAddress $EmployeeID.streetAddress –manager $EmployeeID.manager -WhatIf
}
我不認爲我已經作出後的連接屬性Set-ADUser
命令正確。我自己測試了一些東西,但我似乎無法得到它的工作。
如何告訴Set-ADUser
命令從.csv文件獲取屬性? 我在過去的工作,但它是這樣的:ForEach $user in $Users
而不是:ForEach-Object
。
我發佈了我的問題的更新。 – IcyPunch
您應該編輯您的問題並將其添加到那裏,而不是將其作爲答案發布。我會根據新信息修改我的答案,我認爲'ForEach'循環會更簡單/更清晰。 –
我已經修改了我的答案,使用基於您提供的CSV頭的'ForEach'。我還通過匹配'-filter'參數而不是使用'where'來簡化我們獲取用戶的方式。 –