本日はWindows Updateの適用された一覧をデータ化する手順についてご報告します。
ちょっと役に立つTIPS、のつもりです。
この間、メーカサポートを受けるためにWindows Updateの適用一覧を提出する必要があったのですが、このWindows Updateの適用された一覧、というのは、顧客へシステムを納品する際にもエビデンスとして納品ドキュメントに情報として含めるケースも結構あるのではないでしょうか?
一番簡単な手順
コマンド「wmic qfe」これだけで一覧表示ができます。
実際に画面上で確認する際には「wmic qfe | more」と言った具合にページごとにポーズが掛かるようmoreを渡しておく方が見やすいですね。
試しに、今稼働中のWindows10で実行してみました。
----------------------------------------------
C:\Users\USER01>wmic qfe | more
Caption CSName Description FixComments HotFixID InstallDate InstalledBy InstalledOn Name ServicePackInEffect Status
http://support.microsoft.com/?kbid=3124263 T420S-08 Security Update KB3124263 NT AUTHORITY\SYSTEM 1/25/2016
http://support.microsoft.com/?kbid=3135173 T420S-08 Security Update KB3135173 NT AUTHORITY\SYSTEM 2/15/2016
http://support.microsoft.com/?kbid=3139907 T420S-08 Update KB3139907 NT AUTHORITY\SYSTEM 3/2/2016
http://support.microsoft.com/?kbid=3140741 T420S-08 Update KB3140741 NT AUTHORITY\SYSTEM 3/25/2016
http://support.microsoft.com/?kbid=3140743 T420S-08 Update KB3140743 NT AUTHORITY\SYSTEM 3/3/2016
http://support.microsoft.com/?kbid=3140768 T420S-08 Security Update KB3140768 NT AUTHORITY\SYSTEM 3/9/2016
http://support.microsoft.com/?kbid=3154132 T420S-08 Security Update KB3154132 NT AUTHORITY\SYSTEM 4/15/2016
http://support.microsoft.com/?kbid=3147458 T420S-08 Security Update KB3147458 NT AUTHORITY\SYSTEM 4/19/2016
----------------------------------------------
ちょっと少ない気もするのですが、Windows10ではいままでのようにKBを一覧できる画面が見当たらないので、このコマンドを使うといいのかもしれないですね。
ファイルに書き出すときには「wmic qfe>updList1604.txt」と言った具合に「リダイレクタ(">"か">>")」で出力先をファイル名を指定して書き出すことができます。
書き出したデータをどうする?
書き出したデータはExcelに貼り付けて一覧表にしてしまうのが一番扱いやすいと思います。ただ出力したデータはスペースで区切られたテキストなので、カンマ区切りやタブ区切りがなくExcelに貼り付けるだけでは表の体にはなりません。
そこでExcelの「データ」タブから「区切り位置」をクリックして「区切り位置指定ウィザード」で表の形にしてしまいます。
図1:区切り位置指定ウィザード-1
データのプレビュー欄で、列の区切りをちょうどいい箇所に手動で打ち込んでいきます。
図2:区切り位置指定ウィザード-2
最後にデータの型を選択して終了です。私は文字列にした方が扱いやすいことが多いので全選択して文字列にし完了しています。
図3:区切り位置指定ウィザード-3
こうして表になりました。
後は.csvなり.tsvなりでテキストにもできますし、フィルタで絞り込むこともできるようになります。
昔の話
ちなみにこのwmicコマンド、netコマンドと同様にサブコマンドでいろいろなことができる汎用的なコマンドです。
もう知ってても役には立たない知識なんですが、WindowsXP時代にはこのwmicコマンドでユーザアカウントの設定をやってました。
(※話のネタにでもどうぞ)
現在は、「net user %USERNAME% %PASSWORD% /add」で生成したユーザを「net accounts」コマンドでパスワードの有効期限を一括で設定をすることが可能です。
XPくらいの昔にはこの「net accounts」コマンドで有効期限を設定する、ということができなかったので、wmicコマンドでユーザ別にパスワードの有効期限設定をしていました。例えば、
> net user %USERNAME% %PASSWORD% /add
> wmic useraccount where "Name='%USERNAME%'" set PasswordExpires=FALSE
こんな感じです。これでユーザを作成したい分だけコマンド行を記述してパスワードの有効期限を設定する、という動作にwmicコマンドを使っていました。
wmicコマンドはそもそもWMI(Windows Management Instrumentation)を操作するためのUIのようなコマンドです。
上記のWindowsXP時代に使った例では、wmicコマンドのサブコマンド「useraccount」を指定して、OS内のユーザアカウントを操作したわけですが、他にもさまざまなWMIを利用した管理命令を実行可能です。
もし興味が湧いたようでしたら@ITの記事が分かりやすく解説されています。
Tech TIPS:WindowsでWMIとwmicコマンドを使ってシステムを管理する(基本編) - @IT
wmicコマンドでシステムの構成を設定/変更する − @IT
今日の結論
Windows Updateは相変わらず不具合を出す可能性を秘めていますので、現在何が適用されているかを提示して人に相談するシチュエーションは増えつつありますね。
システム管理者であれば、なおサーバのWindows Update管理をするために、現在の適用状況を把握しておく必要があるので、ちょっとしたTIPSですが役に立つかもしれません。
その時、手軽にwmicコマンドで出力して表を生成できると便利に使えると思いますよ。