【发布时间】:2020-07-21 20:29:20
【问题描述】:
我正在尝试为 Windows 更新创建报告,因为上次修补服务器时我也在尝试将 aws ssm 与脚本结合起来
即我使用 aws ssm describe 命令获取实例详细信息并将其存储在一个变量中,然后我将它传递给一个 for 循环并尝试获取服务器的最后一个补丁日期,但它返回空值,请帮助我实现这一点
输出是
pscomutername HotFixID InstalledBy InstalledOn
我的代码是
$list= (aws ssm describe-instance-patch-states-for-patch-group --patch-group "DEV" --query "Reservations[*].Instances[*].Tags[?Key=='Name'].Value" --profile "xxxxxx" --region "us-west-2" --output text)
foreach ($server in $list)
{
{Get-CimInstance -Class win32_quickfixengineering |
Where-Object InstalledOn -gt (Get-Date).AddDays(-30)} |
Select-Object PSComputerName,HotFixID,InstalledBy,InstalledOn | Sort-Object PSComputerName
}
【问题讨论】:
-
您似乎没有将 $server 变量传递给 Get-CimInstance 所以它只是在本地运行?此外,请确保正确填充 $server 变量,因为它将包含 aws 命令完整返回的任何内容。在您的示例中,您在 foreach 之后有一个重复的左括号。这只是一个错字吗?
-
@JonC 是的,它填充了服务器名称的输出并将值存储在 $list 中,并且括号不是拼写错误,如果您看到 Get-CimInstance 我有一个左括号和右括号
标签: powershell ssm