我正在尝试编写一个powershell脚本,它将为每个用户更新AD中的employeeID
属性
脚本需要从我的CSV文件
更新employeeID
示例CSV:
user,employeeID
user1,1234567
答案 0 :(得分:1)
至少现在你正在尝试一些看似应该工作的代码。你的逻辑是合理的。你确定你的CSV不包含空格吗?一些简单的陈述可以排除这些。
Import-CSV "C:\Scripts\Users.csv" | ForEach-Object {
$User = $_.UserName
$ID = $_.EmployeeID
If($user -and $ID){
Set-ADUser $User -employeeID $ID
} Else {
Write-Warning "User or employee number is null. Check source."
}
如果If
或$user
为空,$id
语句将失败。如果不是这种情况,并且您的CSV确实包含数据,则可能是编码问题。
答案 1 :(得分:0)
我认为这取决于您在Active Directory中找到用户的方式......您可以尝试这样的事情:
# import the users
$myUsers = Import-Csv csvFile.csv
# loop through each user and update their employeeID property
foreach ($user in $myUsers)
{
# the Set-ADUser cmdlet requires a type of System.Hashtable<>,
# so let's create one
$updateRecord = @{"EmployeeID"=$user.EmployeeID}
# Set the user attribute
Set-ADUser -Identity $user -Replace @updateRecord
}
这可能会成功。你们修改了AD Schema吗?请记住,“EmployeeID”假设您的Active Directory用户具有EmployeeID属性。
请告诉我它是否有帮助!