このページの本文へ

前へ 1 2 次へ

Windows Info 第297回

Windows Updateの状態をコマンドラインから調べる方法を考える

2021年10月17日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 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 APIから入手できる。なお、このAPIは、COMなので、PowerShellなどからもアクセスが可能だ。ここでは、Windowsに標準で含まれるWindows PowerShellを使い、このAPIにアクセスしてみる。

●Windows Update Agent API(英語)
 https://docs.microsoft.com/en-us/windows/win32/api/_wua/

 プログラミングに関する細かい話には、おそらく多くの人が興味がないだろうから、現在Windows Updateが管理しているアップデートのリスト(インストール前のものと、インストール済みのもの)を入手する方法を示す。

リスト1

$WindowsUpdateSearch=(New-Object -ComObject Microsoft.Update.Session).CreateUpdateSearcher();
$update=$WindowsUpdateSearch.Search("IsInstalled=0 OR IsInstalled=1").updates;

 1行目でCOMオブジェクト“Microsoft.Update.Session”(これがWindows Update Agentオブジェクト)を作り、そこからアップデートを検索するための「UpdateSearcher」を作成する。2行目は、作成されたUpdateSearcherに検索条件("IsInstalled=0 OR IsInstalled=1")を渡して、Updatesオブジェクトを作成するものだ。何も条件を指定しないと"IsInstalled=0"か指定されたのと同じ結果が得られる。前記のURLを見る気も起きないような場合には、これをおまじないと思って使ってかまわない。

 2行目でUpdatesオブジェクトは、$updateという変数に保存したので、以後は、この$updateを使う。というのは、検索には1分ほど時間がかかることがあるので、毎回検索すると時間が掛かりすぎるからだ。ただし、Windows Updateの最新情報を得るためには、2行目を再度実行しなければならない。とはいえ、Windows Updateのデフォルトの更新は1日1回程度、つまり1日に数回繰り返して実行すればよい。

 Updatesオブジェクトには「設定」→「更新とセキュリティ」→「Windows Update」(Windows 11は「設定」→「Windows Update」)に表示されるWindows Updateを保持している。状態を確認するのに必要なプロパティには以下のようなものがある。

プロパティ名 意味 ドキュメント
IsInstalled アップデートはインストールされた https://docs.microsoft.com/en-us/windows/win32/api/wuapi/nf-wuapi-iupdate-get_isinstalled
IsDownloaded アップデートはダウンロードされた https://docs.microsoft.com/en-us/windows/win32/api/wuapi/nf-wuapi-iupdate-get_isdownloaded
RebootRequired 再起動が必要 https://docs.microsoft.com/en-us/windows/win32/api/wuapi/nf-wuapi-iupdate2-get_rebootrequired
IsPresent アップデートが存在している https://docs.microsoft.com/en-us/windows/win32/api/wuapi/nf-wuapi-iupdate2-get_ispresent

 前述のように、アップデートには3種類あり、検出するのは、再起動が必要なアップデートが進行中なのか、インストールが完了して再起動待ちなのかどうかという点。これには、Windows Update Agentでアップデートを検索し、そのプロパティを調べる。まずはアップデートが進行中の場合、プロパティは以下の状態となる。

IsInstalled = false
IsDownloaded =true
RebootRequired = false

 なお、実際にやってみたところ、すでにインストールが完了しているのにもかかわらず、アップデートが未インストールとして表示されるものがあったので、以下の条件を追加した。

IsPresent = false

 これを検出するには、PowerShellのWhere-Objectを使い、以下のリストのように実行する。

リスト2

$update | Where-Object {$_.isinstalled -eq $false -and $_.isdownloaded -eq $true -and $_.rebootrequired -eq $false -and $_.isPresent -eq $false} | Select-Object title

※ $updateは、リスト1で設定している

 もし、この条件を満たすアップデートがあれば、その時点で1回は設定のWindowsアップデートのページを確認したほうがいいだろう。場合によっては、ユーザーからのインストール指示待ちになっていることがある。また、すでに再起動の要求が出ていたとしても、この状態を満たすアップデートがあるなら、別のアップデートが進行中である。

 なお、アップデートはユーザーが指示するなどして、インストールが開始されると、2つの状態になる。1つは前述の「2」で、この場合、「IsInstalled」と「RebootRequired」がtrueとなる。もう1つは、前述の「3」で、こっちは「IsInstalled」はfalseのままだが、「RebootRequired」がtrueとなる。この2つを検出するには、以下のリストのコマンドを使う。

リスト3

$update | Where-Object {$_.rebootrequired -eq $true} | Select-Object title

※ $updateは、リスト1で設定している

 これらの条件をまとめたのが、以下の表だ。

 表の最初の3つが、インストールが完了していないアップデートだが、この中には、まだ何もしていないもの(表の一番上の行)と、すでにインストールしているにもかかわらず、再度通知が来たもの(2行目)があり、これらを区別するために3行目の条件を指定する必要がある。これに対して、再起動を要求しているアップデート(4、5行目)は、再起動が行なわれていないため、インストールが完了していない。

前へ 1 2 次へ

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事
1
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
¥35,130
2
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、日本語キーボード、Touch ID - シルバー
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、日本語キーボード、Touch ID - シルバー
¥177,333
3
【整備済み品】ノートパソコン 東芝 dynabook B65 シリーズ/Windows11搭載/第6世代 Core i3/ノートPC/メモリ8GB/SSD128GB/15.6型/Bluetooth/Wi-Fi/MS & Office2019/HDMI/DVDドライブ/10キー/初期設定不要 初心者向け(Core i3-6/8/128)
【整備済み品】ノートパソコン 東芝 dynabook B65 シリーズ/Windows11搭載/第6世代 Core i3/ノートPC/メモリ8GB/SSD128GB/15.6型/Bluetooth/Wi-Fi/MS & Office2019/HDMI/DVDドライブ/10キー/初期設定不要 初心者向け(Core i3-6/8/128)
¥12,445
4
ESBOOKノートパソコン 【MS Office 2024搭載&Windows 11 Pro】14インチIPS液晶/1920×1080FHDディスプレイ カメラ付き/薄型PCノート高性能CPU/初期設定不要/8Gメモリ/無線LAN/大容量SSD/初心者向け・パソコンノート/日本語キーボードフィルム付き/ワイヤレスマウス付き(256G SSD, ローズゴールド)
ESBOOKノートパソコン 【MS Office 2024搭載&Windows 11 Pro】14インチIPS液晶/1920×1080FHDディスプレイ カメラ付き/薄型PCノート高性能CPU/初期設定不要/8Gメモリ/無線LAN/大容量SSD/初心者向け・パソコンノート/日本語キーボードフィルム付き/ワイヤレスマウス付き(256G SSD, ローズゴールド)
¥38,999
5
【整備済み品】 NEC 15.6型 ノートPC VX ノートパソコン/Windows 11 /MS Office H&B 2019/第8世代 Core i5-8350U / HDMI/WIFI/8GB/SSD 256GB/テンキー
【整備済み品】 NEC 15.6型 ノートPC VX ノートパソコン/Windows 11 /MS Office H&B 2019/第8世代 Core i5-8350U / HDMI/WIFI/8GB/SSD 256GB/テンキー
¥27,030

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥2,404
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
¥1,359
4
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥1,080
5
対応 iPad 11世代 / 10世代 ガラスフィルム (2025/2022モデル) ガイド枠付き 【2枚セット-日本旭硝子素材】対応 iPad第10世代 2022 第11世代A16 10.9インチ 保護フィルム フィルム 強化ガラス スマートタブレット 第11世代2025 第10世代2022 液晶保護フィルム ガイド枠 全面保護 2.5D 硬度9 H 耐衝撃 飛散防止 貼り付け簡単 自動吸着 気泡ゼロ 指紋防止 ラウンドエッジ加工 超薄0.26mm 超高質感 スマートタブレット SENTM-2IP10D-1
対応 iPad 11世代 / 10世代 ガラスフィルム (2025/2022モデル) ガイド枠付き 【2枚セット-日本旭硝子素材】対応 iPad第10世代 2022 第11世代A16 10.9インチ 保護フィルム フィルム 強化ガラス スマートタブレット 第11世代2025 第10世代2022 液晶保護フィルム ガイド枠 全面保護 2.5D 硬度9 H 耐衝撃 飛散防止 貼り付け簡単 自動吸着 気泡ゼロ 指紋防止 ラウンドエッジ加工 超薄0.26mm 超高質感 スマートタブレット SENTM-2IP10D-1
¥998
6
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
7
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
8
JAMJAKE iPad用ペンシル アップルペンシル代用ペン 2018年~2026年 iPad対応 タッチペン 超高感度 極細 スタイラスペン Type-C急速充電 傾き感知/磁気吸着/誤作動防止機能対応 軽量 耐摩 学生 子供 筆記 絵を描く デザイン用 ドローイング用
JAMJAKE iPad用ペンシル アップルペンシル代用ペン 2018年~2026年 iPad対応 タッチペン 超高感度 極細 スタイラスペン Type-C急速充電 傾き感知/磁気吸着/誤作動防止機能対応 軽量 耐摩 学生 子供 筆記 絵を描く デザイン用 ドローイング用
¥1,880
9
KIOXIA(キオクシア)【日本製】SDカード 128GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA128G
KIOXIA(キオクシア)【日本製】SDカード 128GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA128G
¥2,152
10
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥743

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン