【问题标题】:Creating AWS SSM Document to run Powershell commands创建 AWS SSM 文档以运行 Powershell 命令
【发布时间】:2021-06-17 06:19:04
【问题描述】:

我正在尝试制作一个运行以下 Powershell 脚本的 SSM 文档:

New-Item -ItemType Directory -Force -Path C:\temp
$checkupdatesscript = "`$UpdateSession = New-Object -ComObject Microsoft.Update.Session"
$checkupdatesscript | Out-File C:\temp\checkwindowsupdates.ps1
Add-Content -Path C:\temp\checkwindowsupdates.ps1 -Value "`$UpdateSearcher = `$UpdateSession.CreateupdateSearcher()"
Add-Content -Path C:\temp\checkwindowsupdates.ps1 -Value "`$Updates = @(`$UpdateSearcher.Search(`"IsHidden=0 and IsInstalled=0`").Updates)"
Add-Content -Path C:\temp\checkwindowsupdates.ps1 -Value "`$Updates | Select-Object Title > C:\temp\windowsupdates.txt" 
$action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument "C:\temp\checkwindowsupdates.ps1"
$trigger =  New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 5)
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "Check Windows Updates" -Description "checks for any outstanding windows updates every 5 minutes" 

我在 YAML 中创建了以下 SSM 文档:

---
schemaVersion: "2.2"
description: "Creates script and scheduled task to check for any outstanding windows updates every 5 minutes"
mainSteps:
- action: "aws:runPowerShellScript"
  name: "RunCommands"
  inputs:
    runCommand:
      - "New-Item -ItemType Directory -Force -Path C:\temp"
      - "$checkupdatesscript = \"`$UpdateSession = New-Object -ComObject Microsoft.Update.Session\""
      - "$checkupdatesscript | Out-File C:\temp\checkwindowsupdates.ps1"
      - "Add-Content -Path C:\temp\checkwindowsupdates.ps1 -Value \"`$UpdateSearcher = `$UpdateSession.CreateupdateSearcher()\""
      - "Add-Content -Path C:\temp\checkwindowsupdates.ps1 -Value \"`$Updates = @(`$UpdateSearcher.Search(`\"IsHidden=0 and IsInstalled=0`\").Updates)\""
      - "Add-Content -Path C:\temp\checkwindowsupdates.ps1 -Value \"`$Updates | Select-Object Title > C:\temp\windowsupdates.txt\""
      - "$action = New-ScheduledTaskAction -Execute \"Powershell.exe\" -Argument \"C:\temp\checkwindowsupdates.ps1\""
      - "$trigger =  New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 5)"
      - "Register-ScheduledTask -Action $action -Trigger $trigger -TaskName \"Check Windows Updates\" -Description \"checks for any outstanding windows updates every 5 minutes\""

但在尝试创建文档时收到错误消息。错误是“InvalidDocumentContent:null”

我假设我搞砸了 YAML,但似乎无法弄清楚是什么。

【问题讨论】:

    标签: amazon-web-services powershell yaml aws-ssm


    【解决方案1】:

    问题确实存在于 YAML 中。我没有逃脱文件路径中的反斜杠。正确的 yaml 应该如下所示:

    ---
    schemaVersion: "2.2"
    description: "Creates script and scheduled task to check for any outstanding windows updates every 5 minutes"
    mainSteps:
    - action: "aws:runPowerShellScript"
      name: "RunCommands"
      inputs:
        runCommand:
          - "New-Item -ItemType Directory -Force -Path C:\\temp"
          - "$checkupdatesscript = \"`$UpdateSession = New-Object -ComObject Microsoft.Update.Session\""
          - "$checkupdatesscript | Out-File C:\\temp\\checkwindowsupdates.ps1"
          - "Add-Content -Path C:\\temp\\checkwindowsupdates.ps1 -Value \"`$UpdateSearcher = `$UpdateSession.CreateupdateSearcher()\""
          - "Add-Content -Path C:\\temp\\checkwindowsupdates.ps1 -Value \"`$Updates = @(`$UpdateSearcher.Search(`\"IsHidden=0 and IsInstalled=0`\").Updates)\""
          - "Add-Content -Path C:\\temp\\checkwindowsupdates.ps1 -Value \"`$Updates | Select-Object Title > C:\\temp\\windowsupdates.txt\""
          - "$action = New-ScheduledTaskAction -Execute \"Powershell.exe\" -Argument \"C:\\temp\\checkwindowsupdates.ps1\""
          - "$trigger =  New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 5)"
          - "Register-ScheduledTask -Action $action -Trigger $trigger -TaskName \"Check Windows Updates\" -Description \"checks for any outstanding windows updates every 5 minutes\""

    【讨论】:

      猜你喜欢
      • 2020-11-10
      • 1970-01-01
      • 2022-11-02
      • 2016-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-25
      相关资源
      最近更新 更多