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

如何用PowerShell设置Active Directory用户的startingDate属性?报错求助

解决Set-ADUser设置startingDate属性报错“参数不正确”的问题

问题核心原因

报错主要源于两个关键错误:

  1. 属性名称误用:AD中用户“起始日期”对应的LDAP属性名并非startingDate,而是**msDS-StartDate**,startingDate只是该属性的显示名称,PowerShell的AD cmdlets仅识别LDAP属性名进行操作。
  2. 日期格式不匹配:msDS-StartDate属于DateTime类型属性,直接传入普通字符串格式的日期会导致参数解析失败,需使用.NET DateTime对象或AD认可的标准格式字符串。

正确实现方案

方案1:使用.NET DateTime对象(推荐)

将目标日期转换为DateTime对象后传入,格式解析更稳定可靠:

# 构建符合要求的DateTime对象
$startDateTime = [DateTime]"2023-04-17 05:00:00"
# 若为首次添加属性用-Add;若修改已有值用-Replace
Set-ADUser ABC -Replace @{msDS-StartDate = $startDateTime}

方案2:使用ISO 8601标准格式字符串

若需直接传入字符串,必须使用带UTC时区标识的ISO 8601格式(末尾加.0Z):

Set-ADUser ABC -Replace @{msDS-StartDate = "20230417050000.0Z"}

重要注意事项

  • 若目标用户从未设置过msDS-StartDate属性,需将命令中的-Replace替换为-Add;若属性已存在,使用-Add会触发报错,必须用-Replace覆盖原有值。
  • 执行脚本的账户需拥有修改AD用户属性的权限(如域管理员或已授权的专项账户)。

内容的提问来源于stack exchange,提问作者Xuan Khang Huynh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 05:22:16