AWS Systems Manager の Run Command を用いて、Windows Server 内部のドライバーのバージョンをまとめて確認する方法

AWS Systems Manger の Run Command を用いることで、複数の EC2 インスタンスを対象として、まとめてコマンドを実行することが可能です。
2023.02.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

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]を参照してください。

参考情報

[1] Systems Manager の前提条件 - AWS Systems Manager

[2] Windows EC2 にインストールされているドライバーについて | DevelopersIO