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

导入无表头CSV批量设置AD用户Kerberos加密属性失效排查

故障根因
  • 无表头CSV直接用Import-Csv导入时,cmdlet会默认把文件第一行识别为列名表头,导入生成的对象不存在samaccountname属性,传给Set-ADUser -Identity的参数值为空,PowerShell对这类空参数传递默认不会抛出显性错误,导致命令静默执行失败。
  • 部分版本的ActiveDirectory模块对KerberosEncryptionType参数的多值传参解析存在兼容问题,直接逗号分隔传值可能出现参数绑定异常。
修复方案

两种方案任选其一即可,推荐方案2适配单值纯列表的场景,容错性更高:

方案1:手动指定CSV表头导入

给Import-Csv加-Header参数手动指定列名,同时显式声明枚举值组合避免参数解析问题:

Import-Csv -Path "C:\Users\admin\Desktop\user.csv" -Header "samaccountname" | ForEach-Object {
    Set-ADUser -Identity $_.samaccountname -KerberosEncryptionType ([Microsoft.ActiveDirectory.Management.KerberosEncryptionType]::AES128 -bor [Microsoft.ActiveDirectory.Management.KerberosEncryptionType]::AES256)
}

方案2:直接读取纯文本行(推荐)

你的文件每行仅存储一个账号名,本质是纯文本列表,不需要走CSV解析逻辑,直接读行容错性更高,还会自动跳过空行:

Get-Content -Path "C:\Users\admin\Desktop\user.csv" | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } | ForEach-Object {
    Set-ADUser -Identity $_.Trim() -KerberosEncryptionType AES128, AES256
}
配置校验

执行完成后,可抽取任意目标用户运行以下命令,确认Kerberos加密属性配置生效:

Get-ADUser -Identity <替换为待校验用户samaccountname> -Properties KerberosEncryptionType | Select-Object Name, samaccountname, KerberosEncryptionType
注意事项
  • 执行命令前请确认已加载ActiveDirectory模块,且运行账号拥有目标AD用户的属性修改权限
  • 域内存在Windows Server 2008以下版本域控、或Windows XP/Server 2003以下版本终端时,请勿随意禁用RC4加密类型,否则会出现Kerberos认证失败问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 22:54:10