AWS Systems Manager の Run Command を用いて、Windows Server 内部のドライバーのバージョンをまとめて確認する方法
困っていた内容
AWS が提供している ENA ドライバーについて、すべての EC2 に対してバージョンを確認する必要があります。
インスタンス内部へログインして確認するのは大変なので、外部からまとめて確認をしたいです。
なにかいい方法はありますか?
どう対応すればいいの?
AWS Systems Manger の Run Command を用いることで、複数の EC2 インスタンスを対象として、まとめてコマンドを実行することが可能です。
やってみた
今回、2 つの EC2 インスタンス(Windows Server 2019)を起動します。デフォルトでは、SSM エージェントがインストールされております。
SSM エージェントの前提条件(参考資料[1]) を満たしているという前提で進めていきます。
Systems Manager コンソールの左ペインから Run Command を選択し、Run Command ボタンを押下します。
ドキュメントに AWS-RunPowerShellScript
を選択します。
今回は、ENA ドライバーのバージョンを確認するため、Commands に以下を入力します。
Get-CimInstance -ClassName Win32_SystemDriver | Where-Object { $_.Name -eq 'ena' } | Select-Object Name, Caption, @{Name = 'Version'; Expression = { (Get-Item $_.PathName).VersionInfo.FileVersionRaw.ToString() } }
ターゲットとして、コマンドを実行したい EC2 インスタンスを選択し、その他の設定は任意に変更し、実行ボタンを押下します。
コマンドの実行が成功したら、ターゲットと出力から、EC2 インスタンスを選択します。
Output を開くことで、コマンドの結果が得られます。
Name Caption Version ---- ------- ------- ena Amazon Elastic Network Adapter Driver 2.4.0.0
その他
他のドライバーのバージョンを取得するコマンドについては参考資料[2]を参照してください。