如何通过PowerShell查看AD用户自定义属性值以完成批量修改?
解决AD自定义属性PowerShell查询不到的问题
要查看AD用户的自定义属性,核心是明确指定要返回的属性名——因为Get-ADUser默认仅返回基础属性集合,不会包含自定义属性。以下是具体解决方法:
1. 已知自定义属性的LDAP显示名
直接在Get-ADUser命令中通过-Properties参数指定该属性:
# 查询单个用户的自定义属性 Get-ADUser -Identity "张三" -Properties customAttributeName # 批量查询多个用户(假设用户列表存于CSV,列名为SamAccountName) $userList = Import-Csv -Path "C:\users.csv" foreach ($user in $userList) { Get-ADUser -Identity $user.SamAccountName -Properties customAttributeName | Select-Object SamAccountName, customAttributeName }
注意:必须使用属性的LDAP显示名,而非AD用户界面中的友好名称。
2. 未知自定义属性的LDAP显示名
如果不确定属性的LDAP名称,可以先返回用户的所有属性再筛选:
# 返回单个用户的所有属性,通过关键词筛选自定义属性 Get-ADUser -Identity "张三" -Properties * | Select-Object *custom*
也可以通过ADSI编辑器确认:
- 打开ADSI编辑器,定位到目标用户对象
- 右键选择「属性」,在「属性编辑器」标签中找到目标属性,查看其「LDAP显示名」
3. 批量导出自定义属性值
若需批量导出大量用户的自定义属性,可使用以下脚本:
$results = @() $userList = Import-Csv -Path "C:\users.csv" foreach ($user in $userList) { $adUser = Get-ADUser -Identity $user.SamAccountName -Properties customAttributeName $results += [PSCustomObject]@{ 用户名 = $adUser.Name SamAccountName = $adUser.SamAccountName 自定义属性值 = $adUser.customAttributeName } } $results | Export-Csv -Path "C:\custom_property_results.csv" -NoTypeInformation -Encoding UTF8
内容的提问来源于stack exchange,提问作者Houman Alavehzadeh
相关产品推荐
相关产品推荐

