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

AWS SSM自动化执行PowerShell 7 Cmdlets失败问题求助

解决思路

1. 确认SSM执行的PowerShell版本

SSM Automation默认可能调用Windows自带的PowerShell 5.1,而非你本地测试的PowerShell 7。先在自动化脚本中添加版本验证命令:

$PSVersionTable.PSVersion

若输出为5.1,需指定用PowerShell 7执行脚本,示例:

pwsh.exe -File "你的脚本路径.ps1"

2. 修正SSM执行上下文的环境变量与权限

  • SSM Agent以Local System账号运行时,可能未配置PowerShell 7的模块路径,手动添加环境变量:
$env:PSModulePath = "C:\Program Files\PowerShell\7\Modules;$env:PSModulePath"
  • 重命名/加入域操作需要管理员权限,在自动化文档的runCommand步骤中启用elevated参数,或指定runAsUser为管理员账号。

3. 显式加载指定版本的模块

导入CimCmdlets时直接指定PowerShell 7的模块路径,避免自动搜索偏差:

Import-Module -Name "C:\Program Files\PowerShell\7\Modules\CimCmdlets" -Force

对于Rename-Computer和Add-Computer,确认模块加载状态:

$loadedModule = Import-Module Microsoft.PowerShell.Management -PassThru -ErrorAction Stop
Write-Host "已加载模块:$($loadedModule.Name) 版本:$($loadedModule.Version)"

4. 验证SSM Agent与PowerShell 7兼容性

  • 通过SSM文档AWS-UpdateSSMAgent更新到最新版Agent,旧版本对PowerShell 7的支持可能存在缺陷。
  • 确认PowerShell 7是完整安装版(非便携版),便携版可能缺少系统集成所需的组件。

5. 添加调试日志定位问题

在脚本中加入错误捕获与详细日志输出,便于从SSM执行日志中排查:

try {
    Import-Module CimCmdlets -ErrorAction Stop
    Write-Host "CimCmdlets模块导入成功"
} catch {
    Write-Host "导入失败:$_"
    Write-Host "异常详情:$($_.Exception.Message)"
    Write-Host "当前PSModulePath:$env:PSModulePath"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:42:13