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

如何解决PowerShell命令无法将AD Description复制到Title字段问题

问题根因

  • 你的命令错误出在管道参数的作用域问题:直接将$_.Description作为Set-ADUser的-Title参数值时,$_不会自动绑定到管道传输的每一个AD用户对象,该位置的变量属于当前会话的父作用域,默认值为$null,因此实际执行的是将匹配用户的Title设置为空值,自然不会看到更新效果,也不会触发报错。
  • Description字段包含空格不是本次问题的诱因,PowerShell原生支持带空格的字符串变量传递,不需要额外做转义或包裹处理。

修复方案

使用ForEach-Object遍历每一个管道输出的用户对象,在循环内部调用Set-ADUser即可正确获取每一个用户的Description值:

# 先加-WhatIf参数运行,验证修改范围无误后再移除该参数执行实际更新
Get-ADUser -SearchBase "OU=Phoenix Users,DC=domain,DC=local" -Filter * -Properties Description, Title | 
    Where-Object { $null -ne $_.Description } | ForEach-Object {
        Set-ADUser -Identity $_ -Title $_.Description -WhatIf
    }

如果需要批量处理的用户量较大,也可以使用-Instance参数提升性能,修改逻辑如下:

Get-ADUser -SearchBase "OU=Phoenix Users,DC=domain,DC=local" -Filter * -Properties Description, Title | 
    Where-Object { $null -ne $_.Description } | ForEach-Object {
        $_.Title = $_.Description
        Set-ADUser -Instance $_
    }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:39:02