質問: [Windows Updateの状態をコマンドラインから調べる方法を考える](https://vnexplorer.net/windows-update%e3%81%ae%e7%8a%b6%e6%85%8b%e3%82%92%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3%e3%81%8b%e3%82%89%e8%aa%bf%e3%81%b9%e3%82%8b%e6%96%b9%e6%b3%95%e3%82%92%e8%80%83-ei20211571626.html "Windows Updateの状態をコマンドラインから調べる方法を考える")
回答: © アスキー 提供 Windows Updateは、毎月のように品質アップデートがあり、その中には再起動を要求するものもの少なくない。とはいえ、頻繁に設定のWindows Updateを見るのも億劫だ。そこで、コマンドラインからWindows Updateの状態をチェックできるかを考えてみた。それが可能なら、たとえばタスクスケジューラーなどで定期的に実行することも可能になる。また、スクリプトを作れば、さまざまな形で通知できる。 © アスキー 提供 Windows Update Agent APIを使うと、Windows Updateに関する情報を引き出すことができる。これは、再起動待ちのアップデートを検出した例。Windows 11の「設定」→「Windows Update」で再起動の保留中になっているプレビュー版を、上記のスクリプトが検出している Windows Updateは大きく3つに分類できる Windows Updateについては、この連載でも何度か取り上げたが、概要に関しては、以下の記事を参照されたい。 ●Windows Updateを飼い慣らして、都合のいい時間に再起動させる方法 https://ascii.jp/elem/000/004/045/4045886/ Windows Updateには、いろいろなものがあるが、状態をチェックするという視点からみると、大きく以下の3つに分類できる。 1. 勝手にインストールして終わるもの(再起動不要) 2. インストール完了後に再起動が必要になるもの 3. インストールを完了するために再起動が必要になるもの(インストールは未完了) 1はたとえば、ウイルス定義のアップデートなどだ。この場合、勝手にダウンロード、インストールが進んで終了してしまうので、特に検出する必要もないし、そもそもよほど短い間隔でチェックを繰り返さないと検出が難しい。 2と3は、インストールが自動の場合とユーザーが開始を指示しないとインストールされない場合があるのだが、現在のWindows 10では、ダウンロードに関しては自動で行なわれるようだ。ただし、品質アップデートのように大きなものは、ユーザーがダウンロードの開始を指示する必要がある。 また、Windows Updateの設定により、インストールが自動で開始されることもある。具体的には「設定」→「Windows Update」→「詳細オプション」にある「更新プログラムをインストールするために再起動が必要な場合は、できるだけすぐにこのデバイスを再起動してください。以下略」という長い名前のトグルスイッチをオンにした場合だ。 再起動が必要なWindows Updateは、複数の再起動が必要なアップデートがあったとしても、そのうちの1つでも作業を完了すると、ユーザーに再起動を促す。しかし、可能性としてまだ他のアップデートのインストールが完了していない場合がある。とはいえ、少なくとも再起動に関しては、タスクバーの通知領域やアクションセンターでの通知がある。 これに対して、再起動要求の有無にかかわらず、インストールが進行中の場合、設定のWindows Updateのページを見ないことには何もわからない。今回はこれを検出することにしたい。 Windows Update Agent APIを使う Windows Updateに関する情報は、Windows Update Agent ... See Details: Windows Updateの状態をコマンドラインから調べる方法を考える