Powershell命令用于更新csv中的员工编号

时间:2014-09-20 01:05:09

标签: powershell csv

我正在尝试编写一个powershell脚本,它将为每个用户更新AD中的employeeID属性

脚本需要从我的CSV文件

更新employeeID

示例CSV:

user,employeeID
user1,1234567

2 个答案:

答案 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属性。

请告诉我它是否有帮助!