仮想環境のGuestOSのWindowsUpdateの完全自動化を見据えて色々調べてみた。
まずは仮想環境は含めずにCUI環境から直接Updateする方法を探す。
(Powershellを使った方法はwin7以降のみ対応となる。)

  • PowerShellでWindows Updateが有効かどうかと最終インストール日時を確認する - Qiita
    • Microsoft.Update.AutoUpdateのCOMオブジェクトをPowerShellで。
  • フルオートでWindows Updateする
    • PowerShellを使って、新規作成直後の再起動の繰り返しに対応。
  • WSUS の手動操作のメモ at SE の雑記
    • Windows Update Services (WSUS)をコマンドラインから利用
  • 山市良のえぬなんとかわーるど: Hyper-V & Windows Update 自動化スクリプトのまとめ (+α)
    • 仮想環境(GuestOS)のWindowsUpdateについてまとめ。ただし、Hyper-V。
  • 【メモ】PSWindowsUpdate -コマンドラインでWindows Update- (Windows Server 2012 R2 Essentials):shirokichi's hobby life:So-netブログ
    • PowerShellのPSWindowsUpdateモジュールを使用したやり方。
      (「正規のGUIで行うアップデートとのあいだで不整合が発生する」というのが気にかかるが……)

HostOS側からUI AutomationもしくはUWSCでGuestOSを起動
→GuestOSにログイン
→GuestOS起動時に上のいずれかのUpdate用スクリプトを起動
で自動化できそう。

ただ、ログイン部分が今のところ一番の難点。
リモートでログインすると、WindowsUpdateが実行出来ない場合もあるようなので、
この辺り要調査。


一応Vagrant、Jenkinsも調べたものの、
Vagrantは環境を作ったり(コピーしたり)壊したりが得意なことは解った。
osdn.jp
tech.nitoyon.com
GuestOSのログイン部分の制御に利用できる可能性があるので、要調査。(プラグイン等ありそう)
JenkinsはGuestOSをスレーブに設定すれば起動部分含めて制御できる可能性あり。
shunirr.hatenablog.jp
JenkinsのVirtualBoxのプラグインや、Vagrantのプラグインがある模様。

  • VirtualBox Plugin - Jenkins - Jenkins Wiki
  • JenkinsからVagrantを起動する - 今日学んだこと

現在のところ、ログイン部分の対処としては、
1.JenkinsやVagrantを利用(まだ未確定)
2.UWSCの画像認識で力技で処理
の2つが候補。