BgInfoをEC2のWindowsインスタンスの壁紙にする

2024.04.30

困っていること

BgInfoで壁紙を設定し、EC2のWindowsにログインしても、デフォルトのE2Launch で取得したシステム情報が表示されてしまいます。

Windowsの壁紙には EC2Launch で取得したシステム情報を表示させるのではなく、BgInfo で取得した情報を表示させたいのですが、方法はあるのでしょうか?

BgInfoとは?

どう対応すればいいの?

既定の壁紙設定を無効化

まずEC2 Launch v2が壁紙を設定する機能を無効にするには、EC2 Launch v2設定ファイルを変更する必要があります。

EC2 Launch v2の設定ファイルは、Windowsインスタンスの C:\ProgramData\Amazon\EC2Launch\config\agent-config YMLファイルにあります。

「setWallpaper」タスクを見つけ、「setWallpaper」のタスクを全て削除します。

これでファイルを保存します、壁紙の設定が無効になります。

起動時にBgInfoが起動されるようにする

BgInfoをインストールします。

BgInfoを C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp ディレクトリに配置します。

Ec2Wallpaper.jpg を置換する

C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpgにて、あらかじめ設定したい壁紙へ置き換えておきます。

その後、BgInfo側にて該当箇所へ壁紙を指定します。

EC2Launch の設定を確認

最後に、最初に設定した「既定の壁紙設定」が無効化状態になっているか確認します。

このように壁紙の設定箇所が、全て空白になっていることを確認します。

ここに設定が入った状態の場合、EC2Launch で取得したシステム情報とBgInfoで取得した情報の両方が表示されてしまいますので、ご注意ください。

設定変更後の作業

最後に、設定変更を反映させるため、再起動を行って頂く必要があります。

これですべてうまく行くと、このようになります。※環境によるかもしれませんが、スタートアップが起動し、壁紙が正常に表示されるまで1~2分程度かかりました。

追記

上記の設定を行っても、OSへのログインから数十秒経過するとデフォルトの壁紙が表示されるケースがあるようです。(Windows上の各ユーザのスタートアップに「setwallpaper」が作成されており、これが起動時に動作することにより壁紙がEC2デフォルトのものに書き換えられる)

その場合、追加でユーザのスタートアップから「setwallpaper」を削除が必要となります。

setWallpaper タスクは有効になっていないものの、再起動時にウォールペーパーがリセットされる

終わりに

BgInfoに関しての壁紙設定の情報が乏しかったため、検証してみました。

この記事がどなたかのお役に立てば幸いです。