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

如何修正PowerShell脚本以通过AWS System Manager静默安装.exe文件?

修正AWS SSM环境下的EXE静默安装脚本

原脚本的核心问题是参数传递错误和未适配SSM无交互环境,导致安装弹窗无法在后台处理。以下是修正方案:

问题分析

  1. /S 静默参数没有通过PowerShell的-ArgumentList传递,直接写在命令中会被识别为PowerShell的无效参数,导致安装程序无法接收到静默指令,从而弹出交互窗口。
  2. SSM运行脚本时处于无交互的后台会话,必须禁用新窗口并确保安装程序在后台执行。

修正后的脚本

Start-Process -FilePath "C:\Users\Administrator\Documents\example.exe" `
    -WorkingDirectory "C:\Users\Administrator\Documents" `
    -ArgumentList "/S" `
    -NoNewWindow `
    -Wait `
    -PassThru

参数说明

  • -FilePath:指定exe的完整绝对路径,避免SSM会话中路径解析异常
  • -ArgumentList "/S":正确将静默安装参数传递给目标exe
  • -NoNewWindow:强制安装程序在当前会话中运行,不弹出新窗口(适配SSM无交互环境的关键)
  • -Wait:等待安装进程完成后再执行后续命令,便于检查安装结果
  • -PassThru:返回安装进程对象,可用于后续判断安装是否成功

额外注意事项

  • 确认你的example.exe支持/S作为静默安装参数,部分厂商的exe可能使用/quiet、/qn等参数,可通过运行example.exe /?查看官方帮助。
  • 若安装需要管理员权限,可添加-Verb RunAs参数提升权限(需确保SSM Agent有对应权限)。
  • 可添加退出码检查来验证安装结果:
$installProcess = Start-Process -FilePath "C:\Users\Administrator\Documents\example.exe" `
    -WorkingDirectory "C:\Users\Administrator\Documents" `
    -ArgumentList "/S" `
    -NoNewWindow `
    -Wait `
    -PassThru

if ($installProcess.ExitCode -eq 0) {
    Write-Host "安装成功"
} else {
    Write-Error "安装失败,退出码:$($installProcess.ExitCode)"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:34:56