如何格式化PowerShell查询AD用户结果中的多个日期字段为短日期
解决AD用户查询结果日期字段短日期格式化问题
直接给可行的修改代码:
'user1','user2' | ForEach-Object { Get-ADUser -Identity $_ -Properties AccountExpirationDate, WhenChanged | Select-Object Name, DisplayName, SamAccountName, Enabled, @{Name='AccountExpirationDate'; Expression={ if ($_.AccountExpirationDate) { $_.AccountExpirationDate.ToString('d') } }}, @{Name='WhenChanged'; Expression={ $_.WhenChanged.ToString('d') }} } | Format-Table -AutoSize
关键说明:
- 避免不必要的属性查询:不用
Properties *拉取所有属性,只指定需要的AccountExpirationDate和WhenChanged,提升查询效率。 - 用计算属性处理日期格式化:
Select-Object的普通字段参数不支持直接加格式字符串,必须通过哈希表定义计算属性:Name保持原字段名,保证表头一致性Expression中调用ToString('d'),'d'是PowerShell内置的短日期格式符,会输出符合系统区域设置的短日期(比如2023/11/04)- 给
AccountExpirationDate加空值判断,避免无过期日期的账号触发报错
- 优化表格显示:加
-AutoSize让表格列宽自适应内容,避免排版混乱
你也可以用Get-Date替代ToString('d'),写法是Get-Date $_.WhenChanged -Format 'd',效果完全一致,选自己习惯的方式即可。
内容的提问来源于stack exchange,提问作者b1t
相关产品推荐
相关产品推荐

