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

如何用PowerShell批量修改AD用户描述?身份报错求解决

批量更新AD用户描述的PowerShell脚本解决方案

你的原代码存在语法问题——Import-Csv命令和foreach循环之间缺少换行或分号,导致PowerShell无法正确解析;另外身份错误基本是权限不足、AD模块未正确加载或域连接问题导致的。

修正后的可用脚本

# 导入CSV文件
$Users = Import-Csv "C:\MyScripts\Service-Accounts 1.csv"

# 遍历每个用户更新描述
foreach ($User in $Users) {
    # 先验证用户是否存在,避免无效操作报错
    if (Get-ADUser -Filter { SamAccountName -eq $User.SamAccountName }) {
        Set-ADUser -Identity $User.SamAccountName -Description $User.NewDescription
        Write-Host "已更新用户 $($User.SamAccountName) 的描述: $($User.NewDescription)"
    }
    else {
        Write-Warning "未找到用户 $($User.SamAccountName),跳过该条目"
    }
}

身份错误的解决方法

  • 必须以域管理员或拥有AD用户修改权限的账号运行PowerShell,普通域账号大概率没有修改用户属性的权限。
  • 如果在非域加入的机器上运行脚本,需要手动指定域控制器和凭据:
    # 输入有权限的域账号凭据
    $Credential = Get-Credential
    $Users = Import-Csv "C:\MyScripts\Service-Accounts 1.csv"
    
    foreach ($User in $Users) {
        if (Get-ADUser -Filter { SamAccountName -eq $User.SamAccountName } -Server "你的域控制器FQDN" -Credential $Credential) {
            Set-ADUser -Identity $User.SamAccountName -Description $User.NewDescription -Server "你的域控制器FQDN" -Credential $Credential
            Write-Host "已更新用户 $($User.SamAccountName) 的描述: $($User.NewDescription)"
        }
        else {
            Write-Warning "未找到用户 $($User.SamAccountName),跳过该条目"
        }
    }
    
  • 确保已安装并加载Active Directory模块:如果模块未加载,先运行Import-Module ActiveDirectory;若模块不存在,需安装RSAT(远程服务器管理工具)中的AD模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:35:23