使用PowerShell设置AD用户extensionAttribute8值遇问题求助
AD用户extensionAttribute8属性修改问题解决
为什么Get-ADUser输出没显示extensionAttribute8?
Get-ADUser默认只输出核心属性组,哪怕你用-Properties指定了额外属性,默认表格输出不会自动带上这些非核心属性。要查看这个属性的值,得显式调用:
# 直接查看属性值 $ThisUser.extensionAttribute8 # 或者输出所有属性 $ThisUser | Select-Object *
你的命令里的问题
- 符号错误:
–Identity里的短横线是中文全角的,必须改成英文半角-,否则PowerShell识别不了这个参数 - 属性名规范:虽然AD属性名不区分大小写,但建议用标准的驼峰写法
extensionAttribute8(你写的全小写extensionattribute8可能生效,但规范写法更稳妥) - 参数误用:
-add是给从未设置过的属性添加值,如果该属性已经有值,用-add会报错。要覆盖现有值,得用-Replace参数
正确操作流程
1. 确认当前属性值
$User = "目标用户名" # 替换成实际的SamAccountName或用户ID $ThisUser = Get-ADUser -Identity $User -Properties extensionAttribute8 # 查看当前值 Write-Host "当前extensionAttribute8值:" $ThisUser.extensionAttribute8
2. 修改属性值
- 如果属性从未设置过,用
-Add:
Set-ADUser -Identity $ThisUser -Add @{"extensionAttribute8"="1"}
- 如果属性已有值,需要覆盖,用
-Replace:
Set-ADUser -Identity $ThisUser -Replace @{"extensionAttribute8"="1"}
3. 验证修改结果
Get-ADUser -Identity $User -Properties extensionAttribute8 | Select-Object SamAccountName, extensionAttribute8
内容的提问来源于stack exchange,提问作者Empty Coder
相关产品推荐
相关产品推荐

