2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Windows Update で特定の更新プログラムがインストールされないようにする方法(Powershell)

Last updated at Posted at 2021-03-13

2021年3月9日に配信されたWindowsの更新プログラムによりプリンターを使用するとPCがクラッシュするバグが全世界的に発生している模様です。

既にインストールされてしまったPCでは、該当する更新プログラム(「KB5000802」・「KB50000808」・「KB50000822」)をアンインストールすることでバグを回避できますが、このままでは次回の更新プログラム確認時に再び同じ更新プログラムがインストールされてしまいます。

Windows 7までは、Windows UpdateのUIから更新プログラムを「非表示」にし、自動でインストールされないようにすることが可能でしたが、現行のWindows 10ではそのようなオプションは削除され、代わりに同等の機能を提供するトラブルシューティング ツール(wushowhide.diagcab)が配布されていました。

しかし、このツールのダウンロード先が先月ごろからリンク切れしているため、入手できない状況になっています。

ダウンロード直リンクはこちら。アクセスすると現在404が返ってきます。

幸いなことに、私は1月ごろに入手済みでしたので、当該ツールで使われていたPowershellコードから得られた1、特定の更新プログラムのインストールを防止するPowershellスクリプトを再構成して掲載します。

スクリプト

  • なお、実行には管理者権限が必要です。
  • 非表示対象としてKB5000802を指定しているので、KB50000808・KB50000822を対象にしたい場合は、 $target = の部分を該当する更新プログラムのフルネームに置き換えてください。
#Requires -RunAsAdministrator
# Must run this as an administrator!
# Based on the official wushowhide.diagcab

$target = "2021-03 x64 ベース システム用 Windows 10 Version 20H2 の累積更新プログラム (KB5000802)"

$session = New-Object -ComObject Microsoft.Update.Session
$searcher = $session.CreateUpdateSearcher()
$updates = $searcher.Search("IsInstalled=0").Updates

foreach($update in $updates){
  if ($update.Title -eq $target){
    $update.IsHidden = $true
  }
}

更新プログラムの名前で検索しているので($target)、代入式を書き換えれば他の更新プログラムにも適用できるほか、ユーザーに更新プログラム名を入力してもらうように改造することも可能でしょう。

REPLで実行する場合(Powershellを起動して手入力でコマンドを実行していく場合)は、$target =の行からコピペすれば実行できます。

スクリプトとして保存して実行する場合は、 #Requires -RunAsAdministrator を冒頭につけておくと、管理者権限がないときにあらかじめPowershell側でエラーを表示してくれます。2

なお、Powershell スクリプトの実行には簡単な事前準備が必要です。

リファレンスなど

COM オブジェクトには全くの門外漢ですが、上記スクリプト中で使っていそうな interface などのリファレンスを掲載しておきます。

スクリプトファイル(.ps1)

gistに投稿しました(03/13 22:08 追記)

  1. トラブルシューティングツールを7-Zipなどで解凍すると、中に入っているPowershellコードを取り出すことができます。

  2. https://serverfault.com/a/676573

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?