某PCショップ店員の覚書

勤務中に作成したプログラムやスクリプトのまとめ

問題のあるWindows 更新プログラムを自動で削除するプログラムを作りました

はじめに

6月11日に配信されたWindows Update KB5063060が原因でPCが文鎮化したりしているようです。
Windows Updateはセキュリティの観点から常に新しい物を適用するのが理想ではあるのですが、Microsoftはたまにこういった重大な問題を引き起こしてしまう可能性のあるアップデートを配信するので厄介。
自ら進んでMicrosoftコミュニティやRedditから情報を取得できるユーザーなら対処できるのですが、そういったユーザーは稀有な存在で、一般ユーザーは文鎮化して初めて問題を認識したり、たまたま目にしたブログなどの記事から自分が対象であると認識します。
そんな一般ユーザーを対象とし、わざわざ調べなくても勝手に「この更新プログラムで問題起きてるよ!アンインストールするかい?」と問いかけてくれるプログラムがあれば便利だなぁと思いました。

なので、作りました。

目次

超ざっくりとした技術的な説明

サーバー側の処理

私のPCで動作するプログラムから Windows Latestというサイトをスクレイピング
記事タイトルを取得し、Issueやbugなどの語句と関連性の近い記事をフィルタリング。
フィルタリングした記事の詳細から本文を取得し、NLPを使って更にフィルタリング。
二重フィルタリングされた記事データをGeminiに渡し、ダブルチェックしつつさらにフィルタリング。
三重フィルタリングされた記事データをJSONにしてGithubにアップロード

クライアント側の処理

GithubリポジトリからJSONファイルを取得。
取得したJSONファイル内に記載されている更新プログラムと一致する更新プログラムがユーザーの環境にインストールされていないかチェック。
一致するものがあった場合はアンインストールを促す。
もしアンインストールに同意した場合はプログラム側でアンインストールを全自動で行う。
同意しなかった場合は何もせず、次回のチェック時に再びアンインストールを促す

リポジトリ

Windows Update Issues Monitor - Server

github.com

Windows Update Issues Monitor - Client

github.com

注意点

私の環境には対象となる更新プログラムがインストールされていないので、詳細なデバッグは行っていません。
あくまでスクリプト上は動作するはず...程度の物です。過信しないでください。
また、本プログラムを利用して発生したいかなる損害についても私は責任を負いません。
上記を同意いただける方のみご利用ください。

おわりに

前述の通り大したデバッグは行っていないので、デバッグ作業してくださる方を大募集します。(報酬はお支払いできませんが)
記事のコメント等に「ちゃんと動いたよ~」などご一報くだされば幸いです。
また、本プログラムで発生したバグなどの報告も大歓迎です。GithubのIssueに投げておいてください。暇なときに確認して対処できそうであれば対処します。