2016-07-01 26 views
0

Enabling or Disabling Windows Updates with SSM Run Command
コマンドを実行すると、それは "C:\はProgramData \アマゾン\ Ec2Config \ダウンロード\ aws_psModule \" で私のEC2にPowerShellスクリプトをダウンロードAWS-ConfigureWindowsUpdate SSM実行コマンドが失敗するのはなぜですか?

AWS-ConfigureWindowsUpdateランダムな名前を持つ

ときPowerShellスクリプトは、それが "%TEMP%ディレクトリ" に "Amazon.ConfigureWindowsUpdate-1.2.zip" をダウンロードし、実行し、それを解凍 "の%WinDir%\ System32 \ WindowsPowerShell \ v1.0を\モジュール"

スクリプトがに見えます32行目で.CopyHere関数が解凍されているところで失敗している可能性があります。
Pastebin of Powershell Script: 1b3hh3oy.k51.ps1

(New-Object -Com Shell.Application).namespace($powerShellModuleLocation).CopyHere((New-Object -Com Shell.Application).namespace($tempLocation).Items(), 16) 

出力:インスタンスのメタデータからインスタンス域を取得


S3からConfigureWindowsUpdate PowerShellモジュールをダウンロードします。
ConfigureWindowsUpdate PowerShellモジュールzipファイルのSHA 256を確認してください。
Windows PowerShellモジュールフォルダにzipファイルの内容を更新します。
-------------- -------------- ERROR C:\はProgramData \アマゾン\ Ec2Config \ダウンロード\ aws_psModule \ 1b3hh3oy.k51.ps1:メッセージとConfigureWindowsUpdate PowerShellのモジュールのダウンロード中にスロー
例外:例外が呼び出しのターゲットによってスローされています。
行:1文字:1 +。 ' C:¥ProgramData¥Amazon¥Ec2Config¥Downloads¥aws_psModule¥1b3hh3oy.k51.ps1 ';元...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) [書き込みエラー]、WriteErrorException
+ FullyQualifiedErrorId:Microsoft.PowerShell.Commands.WriteErrorException、1b3hh3oy.k51.ps1

その他の詳細:
- 私は
を実行しているWindowsのServer Core 2012 R2のマイクロEC2を持っている - 私は、AWS-RunPowerShellScriptコマンドを正常に使用していますAWSコンソールから数回
- AWSコンソールからAWS-ConfigureWindowsUpdateを実行しました。
- サーバーにリモート接続し、管理者権限でpowershellスクリプトを実行して同じエラーが発生しました。

答えて

2

正しいですが、例外はシェルの名前空間への呼び出しで発生します。シェルアクセス用のCOM名前空間はコアリリースには含まれていないため、コマンドレットの抽出時にConfigureWindowsUpdateスクリプトが失敗します。

は現在、現在検討されているWindows ServerのコアのAMIと、より完全な修正のために利用可能な回避策があります。この問題を回避するには、custom ConfigureWindowsUpdate文書を作成して抽出プロセスを修正する必要があります。以下は

(New-Object -Com Shell.Application).namespace($powerShellModuleLocation).CopyHere((New-Object -Com Shell.Application).namespace($tempLocation).Items(), 16)

function ExtractZipCoreOs($zipFilePath, $destPath) { 
    try 
    { 
     [System.Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem") | Out-Null 

     $zip = [System.IO.Compression.ZipFile]::OpenRead($zipFilePath) 

     foreach ($item in $zip.Entries) { 
      $extractedPath = Join-Path $destPath $item.FullName 

      if ($item.Length -eq 0) { 
       if ((Test-Path $extractedPath) -eq 0) { 
        mkdir $extractedPath | Out-Null 
       } 
      } else { 
       $fileParent = Split-Path $extractedPath 

       if ((Test-Path $fileParent) -eq 0) { 
        mkdir $fileParent | Out-Null 
       } 

       [System.IO.Compression.ZipFileExtensions]::ExtractToFile($item,(Join-Path -Path $powerShellModuleLocation -ChildPath $item.FullName), $true) 
      } 
     } 
    } 
    catch 
    { 
     throw "Error encountered when extracting ConfigureWindowsUpdate zip file.`n$($_.Exception.Message)" 
    } 
    finally 
    { 
     $zip.Dispose() 
    } 
} 
に電話を代わる機能です
関連する問題