You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过PowerShell更新本地Active Directory用户extensionAttribute1属性求助

问题根因

  • 错误地将AD用户对象($ADUserG/$ADUserS)直接作为字符串拼接,实际需要调用对象的属性值,即$ADUserG.givenName、$ADUserS.Surname
  • 多余的[Array]强制类型转换导致值类型不符合AD扩展属性要求的字符串类型
  • 不必要的多次Get-ADUser查询,同一个用户可以一次查询取出所有需要的属性,不用查三次
  • 中间导出CSV再导入的操作完全多余,直接管道处理AD用户即可,效率更高也避免CSV读写出错

修正后可直接运行的脚本

Import-Module ActiveDirectory

# 直接查询所有需要的用户,一次性取出所有需要的属性
Get-ADUser -Filter * -SearchBase 'ou=Users,ou=Test,dc=Sample,dc=Com' -Properties givenName,Surname,extensionAttribute1 | ForEach-Object {
    # 拼接得到First.Last格式的字符串
    $newAttrValue = "$($_.givenName).$($_.Surname)"
    # 更新属性
    Set-ADUser -Instance $_ -Replace @{extensionAttribute1 = $newAttrValue}
}

# 导出结果验证
Get-ADUser -Filter * -SearchBase 'ou=Users,ou=Test,dc=George,dc=Com' -Properties extensionAttribute1 | 
    Select SamAccountName,extensionAttribute1 | 
    Export-Csv -Path 'c:\Scripts\new-AllUserinfo6.CSV' -NoTypeInformation -Encoding UTF8

额外注意点

  • 执行前建议先在Set-ADUser命令后加-WhatIf参数测试,确认更新逻辑正确后再去掉参数正式执行
  • 如果部分用户的givenName或Surname为空,建议先加判断过滤,避免生成只有.的无效值
  • 导出CSV时加-Encoding UTF8避免非英文用户名乱码

内容的提问来源于stack exchange,提问作者Kazic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:48:04