このページの本文へ

前へ 1 2 次へ

Windows Info 第297回

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

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

文● 塩田紳二 編集● ASCII

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

関数とフィルターにする

 コマンドが少し長いので、必要な機能を関数とフィルターで定義して、PowerShellが起動時に読み込むプロファイルに登録しておくと、実行が簡単になる。それが以下のリストだ。これをそのままプロファイルにコピーしておく。

リスト4


function Get-WUUpdates(){
    $WindowsUpdateSearch=(New-Object -ComObject Microsoft.Update.Session).CreateUpdateSearcher()
    return $WindowsUpdateSearch.Search("IsInstalled=0 OR IsInstalled=1").updates
}

filter Select-WUProcessing{
    if ( $_.isinstalled -eq $false -and $_.isdownloaded -eq $true -and $_.rebootrequired -eq $false -and $_.isPresent -eq $false) {return $_ } else { return $null }
}

filter Select-WUWaitReboot{
    if ( $_.rebootrequired -eq $true) {return $_ } else { return $null }
}

 プロファイルは、PowerShell内で「$PROFILE」に記録されているので、たとえば、「notepad.exe $profile」などとして開くことができる。編集したあと、プロファイルを強制的に読み込ませる。それには「. $profile」を実行する。

PowerShellが起動時に読み込むプロファイルのパスは、$PROFILE変数に保持されている。これを使えば、プロファイルをメモ帳で編集させることもPowerShell内から指示できる。プロファイルが変更されたらソースコマンド(ピリオド)で、これを再読み込み可能だ

 簡単に関数とフィルターを説明しておく。Get-WUUpdates関数はリスト1を関数化しただけだ。「$Update=Get-WUUpdates」などとすれば、変数$Updateに現在のアップデート記録される。

 Select-WUProcessingとSelect-WUWaitRebootは、リスト2とリスト3の部分をFilterとして定義したもの。Filterは、PowerShellの関数の一種で、パイプラインの途中に置くことを想定したもの。注意するのは、フィルターはパイプラインを流れるオブジェクトひとつひとつに対して個別に呼び出しがなされるため、Where-Objectコマンドが使えない点だ。

 これを定義しておとく、PowerShellから

Get-WUUpdates | Select-WUProcessing | select-Object title

とすれば、現在処理中のアップデートの名称(title)が表示される。中間部分を「Select-WUWaitReboot」に置き換えれば、再起動待ちのアップデートが表示される。

 もし、再起動が必要という要求があったとき、上記のコマンドを実行して、何か表示されれば、別のアップデートが進行している可能性がある。設定ページを開いて確認してみるべきだ。何か別のアップデートが進行中か保留になっているはずだ。

 Windows Updateは、アップデートのダウンロードやインストールでは、何も通知してくれない。しかし、アップデートが1つでも再起動を要求すると、他のアップデートのインストールやダウンロード中でも再起動をユーザーに通知してしまう。本来なら、すべてのアップデートが完了してから再起動を要求してほしいのだが、半日待ったら別のアップデートが来てしまうこともあり、コンピューターのアルゴリズムとしては「すべてのアップデートが完了」という判定は難しい。

 というわけで、筆者は自衛的にアップデートの処理が進行中かどうかを確認できるようにした。今回は動作原理にとどめたが、PowerShellでスクリプトを記述できるなら、前記のコマンドを以前紹介したトースト通知などと組み合わせ、タスクスケジューラーで30分から1、2時間程度の周期で実行させれば、設定ページを開くきっかけになる。

●Windows PowerShellからスクリプトの完了をトースト通知で知らせる
 https://ascii.jp/elem/000/004/059/4059715/

 Windows Update Agent APIは、以前からあるのだが、Windows Update自体が変化してきているため、改良が重なり、かなり大きな機能である。このため全体像を理解するのに少し手間取った。一応、Windows 11やWindows Insider Programプレビューのマシンでもチェックしてたところ、ちゃんと動くようだは、Windows Updateの振る舞いとプロパティの関係は、筆者の観察による推測でしかない(ドキュメントにはプロパティの値についての記述しかない)。

 ほとんどの場合で、RebootRequiredプロパティはインストール前でfalse、インストール後にtrueになり、再起動を行うとfalseに戻るのだが、筆者の環境では1つだけfalseに戻らないアップデートがあった。しかし、他のマシンでは同じアップデートはfalseに戻っているので、なんらかの不具合の結果だと判定している。とはいえ、あくまでも筆者の観察からの推測であるため、正しくない場合があるかもしれないことをあらかじめお断りしておく。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

ASCII倶楽部

注目ニュース

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

プレミアム実機レビュー

ピックアップ
1
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
2
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,800
3
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
4
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
5
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥1,100
6
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥2,111
7
【Amazon.co.jp限定】バッファロー microSD 128GB 100MB/s UHS-1 U1 microSDXC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-128U11HA/N
【Amazon.co.jp限定】バッファロー microSD 128GB 100MB/s UHS-1 U1 microSDXC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-128U11HA/N
¥3,080
8
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
¥4,918
9
CIO フラットスパイラルケーブル CtoC 1m (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps (ライトブラック, 1m)
CIO フラットスパイラルケーブル CtoC 1m (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps (ライトブラック, 1m)
¥1,980
10
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
¥652

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

デジタル用語辞典

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