【问题标题】:Set-ADuser: Is it possible to use DisplayName to update a user attribute in AD?Set-ADuser:是否可以使用 DisplayName 来更新 AD 中的用户属性?
【发布时间】:2020-07-03 21:20:08
【问题描述】:

我需要使用 powershell 为 AD 中的多个用户更新属性employeeID。不幸的是,我没有他们的用户名或 samaccountname,只有 DisplayName。我可以让用户使用 DisplayName 作为过滤器,但是在使用 set-aduser 时它不起作用。有什么方法可以使用 get-aduser 获取 samaccountname,然后使用它通过 set-aduser 更新用户?

另外,请注意,脚本不会覆盖任何现有值,这一点很重要。

我当前的(非功能性)脚本:

$csv = Import-Csv c:\test\users.csv

foreach ($line in $csv) {
    $ADUserObject = Get-ADUser -Filter "DisplayName -eq '$line.displayname'" -Properties employeeID 
    if ($null -eq $ADUserObject.EmployeeID) {
    Set-ADUser -Filter "DisplayName -eq '$line.displayname'" -employeeID $line.employeeid
    }
}

CSV 文件如下所示:

employeeid,GivenName,Surname,displayname
489900,Angela,Davis,Angela Davis

感谢任何意见或建议,谢谢!

【问题讨论】:

  • "DisplayName -eq '$line.displayname'" -> "DisplayName -eq '$($line.displayname)'"
  • 脚本仍然失败,因为 -Filter 不能用作 Set-ADuser 的参数。
  • 看看here
  • @JoachimHollekim 使用$ADUserObject |Set-ADUser ...

标签: powershell active-directory


【解决方案1】:

正如评论,这实际上是 this question 的副本,但由于在那里,OP 没有投票或接受任何给定的答案,我无法将其标记为重复。

正如Mathias R. Jessen 已经解释的那样,您使用的过滤器是错误的。此外,Set-ADUser 上没有 -Filter 参数,因为其对应的 Get-ADUser 上没有。

这应该做你想做的:

Import-Csv -Path 'c:\test\users.csv' | ForEach-Object {
    $ADUserObject = Get-ADUser -Filter "DisplayName -eq '$($_.displayname)'" -Properties DisplayName, employeeID -ErrorAction SilentlyContinue
    if ($ADUserObject) {
        # check if this user already has an EmployeeId filled in
        if ($ADUserObject.EmployeeID) {
            Write-Host "User $($ADUserObject.DisplayName) already has EmployeeId $($ADUserObject.EmployeeID)"
        }
        else {
            Write-Host "Setting EmployeeID $($ADUserObject.EmployeeID) for user $($ADUserObject.DisplayName)"
            $ADUserObject | Set-ADUser -EmployeeID $_.employeeid
        }
    }
    else {
        Write-Warning "User $($_.DisplayName) could not be found"
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-10
    • 2023-03-12
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 2019-12-10
    • 2021-11-12
    • 2021-08-26
    相关资源
    最近更新 更多