首页 > 解决方案 > 如何将 SSM 输出和 unix 时间格式转换为 powershell 中的系统时间以另存为 csv

问题描述

我正在使用 ssm 命令来描述实例补丁,而在获取输出时安装时间是未指定的格式,那么如何将其转换为 mm/dd/yy 的格式

aws ssm describe-instance-patches --instance-id "XXXXXX" --profile "XXXXXX" --region "us-west-2"  --max-results 10 --output table 

ssm 命令的默认输出是 json

输出:

|| 分类 | 安装时间 | 知识库ID | 严重性 | 状态 | 标题
|| 关键更新 | 1476770400.0 | KB3199209 | 未指定 | 已安装 | 适用于基于 x64 的系统的 Windows Server 2016 更新 (KB3199209)
|| 关键更新 | 1479193200.0 | KB3199986 | 未指定 | 已安装 | 适用于基于 x64 的 Windows Server 2016 更新

标签: powershellssm

解决方案


使用输出而不是图像更新您的问题。

dateformat 不是未指定的格式,它是 Unix 格式。

要将 Unix 格式转换为 DateTime 变量,请执行以下操作:

$oUNIXDate=(Get-Date 01.01.1970)+([System.TimeSpan]::fromseconds(1476770400))

我无法对此进行测试,但您可能可以执行以下操作来转换输出:

aws ssm describe-instance-patches --instance-id "XXXXXX" --profile "XXXXXX" --region "us-west-2"  --max-results 10 --output table | select-object Classification, @{ Name = 'TimeStamp'; Expression = {  ((Get-Date 01.01.1970)+([System.TimeSpan]::fromseconds($_.InstalledTime))) }}, KBId, Severity, State, Title

推荐阅读