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

PowerShell修改AD用户Department属性报错:无法找到该属性

报错原因分析
  • 核心问题出在第4行的Select-Object $oldDepartment:你把输入的旧部门名称当成了要选择的属性名,这完全错误。这导致$users变量里的对象根本不是完整的AD用户对象,也没有Department属性,所以第9行试图修改$_.Department时会提示找不到属性。
  • 额外冗余操作:第9行的$_.Department = $newDepartment完全没必要,修改本地对象属性不会同步到AD,直接用Set-ADUser修改即可。
修正后的脚本
$oldDepartment = Read-Host "Old Department Here"

# 去掉错误的Select-Object,保留完整AD用户对象用于后续修改
$users = Get-ADUser -Filter {Department -eq $oldDepartment} -SearchBase "DC=company,DC=com" -Properties Department

$newDepartment = Read-Host "New Department Here"

$users | ForEach-Object {
    # 直接调用Set-ADUser修改AD中的用户部门属性
    Set-ADUser -Identity $_ -Replace @{Department = $newDepartment}
}

# 重新查询新部门的用户,验证修改结果
$updatedUsers = Get-ADUser -Filter {Department -eq $newDepartment} -SearchBase "DC=company,DC=com" -Properties Department
$updatedUsers | Format-Table Name, Department
补充说明
  • 如果想精简返回的用户属性,可以选择DistinguishedName或SamAccountName这类能唯一标识用户的属性(比如Select-Object DistinguishedName, Department),但直接使用Get-ADUser返回的完整对象会更方便后续操作。
  • 最后验证时查询新部门的用户,才能直观看到修改后的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:39:55