如何通过AWS SSM补丁管理器或Run命令为Windows/Linux服务器打指定补丁?
AWS SSM 补丁安装相关问题解答
1. 通过AWS SSM补丁管理器或Run命令安装选定KB补丁(Windows/Linux)
Windows 服务器
补丁管理器方式
- 创建补丁基线,在批准规则中选择「批准特定补丁」,添加目标KB编号(格式如
KB1234567),同时配置拒绝规则排除所有非目标补丁。 - 将基线关联到目标实例,执行补丁扫描后触发安装任务。
Run命令方式
使用AWS-RunPowerShellScript文档,执行PowerShell命令指定KB安装:
# 安装单个KB wusa.exe /kb:1234567 /quiet /norestart # 批量安装多个KB wusa.exe /kb:1234567 /kb:7654321 /quiet /norestart
注意:需确保实例已安装SSM Agent,且具备足够权限。
Linux 服务器
补丁管理器方式
- 创建补丁基线,在批准规则中指定特定补丁包(例如RHEL的
kernel-3.10.0-1160.11.1.el7.x86_64、Ubuntu的nginx_1.18.0-0ubuntu1.4_amd64),或通过补丁编号筛选,同时设置拒绝规则排除其余补丁。 - 关联基线到目标实例,执行扫描和安装任务。
Run命令方式
根据发行版使用对应包管理器命令:
- RHEL/CentOS:
yum install -y kernel-3.10.0-1160.11.1.el7.x86_64
- Ubuntu/Debian:
apt-get install -y nginx_1.18.0-0ubuntu1.4_amd64
- Amazon Linux:
yum install -y patch-package-name
2. 通过Run命令仅安装4个指定KB、拒绝其余6个(Windows)
使用AWS-RunPowerShellScript文档,组合安装指定KB与拒绝其余补丁的操作:
# 安装目标4个KB $targetKBs = @("KB1234567", "KB2345678", "KB3456789", "KB4567890") foreach ($kb in $targetKBs) { wusa.exe /kb:$kb /quiet /norestart } # 标记剩余6个KB为拒绝,防止后续自动安装 $rejectKBs = @("KB5678901", "KB6789012", "KB7890123", "KB8901234", "KB9012345", "KB0123456") foreach ($kb in $rejectKBs) { dism.exe /online /set-patchstate /patchpackage:$kb /reject }
说明:补丁生效需重启实例,可按需在命令末尾添加Restart-Computer -Force。
3. 能否通过AwsWindowsUpdatePatch完成上述操作
可以。AWS-WindowsUpdatePatch是SSM官方专用文档,完全支持需求场景:
- 设置参数
Action=Install,通过KbArticleIds传入需要安装的4个KB编号(用逗号分隔)。 - 同时通过
RejectedKbArticleIds参数传入需拒绝的6个KB编号,执行后仅安装指定补丁,其余标记为拒绝。
示例参数配置:
Action=Install KbArticleIds=KB1234567,KB2345678,KB3456789,KB4567890 RejectedKbArticleIds=KB5678901,KB6789012,KB7890123,KB8901234,KB9012345,KB0123456 RebootOption=NoReboot
注意:该文档仅适用于Windows服务器,Linux需使用对应发行版的SSM文档或Run命令。
内容的提问来源于stack exchange,提问作者ashish garg
相关产品推荐
相关产品推荐

