以前からLinuxのようにアプリ(パッケージ)に加えて、月々の更新プログラムもコマンドラインから更新できないかと思っていた。以前のWindowsならWuauclt.exeが使用できたものの、Windows 10/11は使用不可能である。
Windows 8以降はタスクスケジューラから呼び出すUsoClient.exeを使用できるが、異なるWindowsバージョンの更新プログラムを取得するなど、安定性に疑問が残る。Microsoftが公式ドキュメントを残していないのも不安だ。
そこで今回は、Windows PowerShellモジュールとして定番のPSWindowsUpdateを使用する。
メインPCはPSWindowsUpdateをインストール済みのため、今回は別環境の手順も交えた。上図のNuGetプロバイダーに関するメッセージは、.NET用パッケージマネージャーのNuGetが存在しない際に現れる。基本的にはメッセージに従ってインストールすればよい。
関心をお持ちの読者は公式ドキュメントを合わせてご覧いただきたい。
後は更新プログラムの検出と適用だ。前者は「Get-WindowsUpdate」、後者は「Install-WindowsUpdate」で実行できる。当然ながら適用する更新プログラムが存在しない場合、Get-WindowsUpdateを実行しても何も現れない。
これならwinget(Windows Package Manager)と組み合わせて、アプリやライブラリー、更新プログラムを最新の状態に保てるだろう。