从 CSV 批量更新 Active Directory 扩展属性

问题描述 投票:0回答:2

我正在努力对 Active Directory 中的 3000 多个用户进行更改。每一项都需要在属性部分extensionAttribute3、extensionAttribute4 和extensionAttribute5 中添加3 个内容。有人可以帮我创建一个访问 CSV 并根据 CSV 中的信息填写信息的命令行条目吗?

这是我目前在 CSV 中的内容:

samAccountName  ExtensionAttribute3 ExtensionAttribute4 ExtensionAttribute5

这是我的代码:

Import-Csv c:\scripts\updatecsv.csv | ForEach-Object {
  Set-ADUser $_.samAccountName `
    -ObjectAttributes @{ExtensionAttribute3=($_.ExtensionAttribute3); ExtensionAttribute4=($_.ExtensionAttribute4)}
}
powershell active-directory windows-server-2008-r2
2个回答
2
投票

尝试使用

ObjectAttributes
,而不是不存在的
Replace
参数:

Import-Csv .\updatecsv.csv |ForEach-Object {
    Set-ADUser $_.samAccountName -Replace @{
        ExtensionAttribute3 = $_.ExtensionAttribute3
        ExtensionAttribute4 = $_.ExtensionAttribute4
        ExtensionAttribute5 = $_.ExtensionAttribute5
    }
}

0
投票

我来这里寻找类似的解决方案,但我确实想指出 -ObjectAttributes 对于活动角色有效,而不是他可能使用的 Active Directory:

如果是这样,那么在连接到 QAD 服务并导入模块后即可工作:

Import-Csv H:\ScriptLibrary\Users.csv |ForEach-Object {
Set-QADUser $_.samAccountName -ObjectAttributes @{
    ExtensionAttribute3 = $_.ExtensionAttribute3
    ExtensionAttribute4 = $_.ExtensionAttribute4
    ExtensionAttribute5 = $_.ExtensionAttribute5
}
© www.soinside.com 2019 - 2024. All rights reserved.