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

Set-ADAccountExpiration设置AD账号过期时间不遵循本地格式问题

问题根因

$Calendar.SelectionStart返回的是原生DateTime类型对象,你在执行Set-ADAccountExpiration时给-DateTime参数传递的是被引号包裹的"$EndDate",此时PowerShell会根据当前操作系统的区域设置将DateTime对象隐式转换为字符串。而AD域服务的PowerShell cmdlet解析字符串格式的日期时,默认使用en-US(月/日/年)的区域规则,就会出现日月位置互换的异常。

解决方案

方案1(推荐):直接传递DateTime对象

-DateTime参数本身原生支持DateTime类型输入,不需要转成字符串,去掉参数值两侧的引号即可:

Set-ADAccountExpiration -Identity $User -DateTime $EndDate

方案2(适配必须使用字符串的场景):转成无歧义的标准格式

如果你的逻辑必须使用字符串传递日期,就将日期格式化为国际通用的ISO 8601格式,避免不同区域规则解析歧义:

# 格式化为yyyy-MM-dd格式字符串
$EndDateStandard = $EndDate.ToString('yyyy-MM-dd')
Set-ADAccountExpiration -Identity $User -DateTime $EndDateStandard

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:39:03