[WMI Troubleshoot!] トラブルシュートだ!(2) WMI Diag (診断ツール) で WMI リポジトリの整合性を鬼チェック!
******* 追記 : Windows XP SP3 に WMIDiag は対応しておりません *******
皆様ごきげんよう。ういこです。先日当番で、息子を迎えに行って今家の居間で息子の音読 (国語のお題を朗読して親がそれを『よく出来た』『イケてねぇ』とジャッジする大事な作業) を江田島平八塾長のような面持ちで聞いておりました。
…なぜ、小学校の国語は内容がこうもシュールなのでしょうか。ほんと、狸のブルトン先生 (安部公房さんのほうです) やアポリネールとかなんかよりずっとシュールです。もう、手術台の上でミシンと洋傘が出会う並みの、宇宙空間でアボカドが衝突しちゃうくらいなみの奇怪な出来事が目白押しです。小学校低学年の “こくご” の教科書、恐るべし。
しかし、シュールといえば、われわれサポートで伺う現象も、「それは超常現象では!?」としか言葉が出ないようなシュールな結果が発生する、という問い合わせ、結構多いのです。守秘義務があるので申せませんが、マジそれってスピリチュアル案件では?ってこととかあります。(ほんとですって) でも、第三者の目でみたら怪現象でも、エンドユーザ様から問い詰められたお客様のお立場では、怪現象って言葉だけで片付けることなんて出来ませんよね。そう、基本的に怪現象はすべてプラズマなのですなみになんか理屈つくはずなんです。(余談ですが、東野圭吾氏の『探偵ガリレオ』シリーズはまさに怪現象を論理的、科学的な考察で対応していく感じで、とても面白いです。) レッツ the 虎舞竜シュート!!
さて、後付ですが WMI ロード第一章では、WMI のロギング方法についてお伝えしました。今日は第二章にして「そもそもそこの環境の WMI、まともに動くの?」とそもそも論になってしまうことをお許しください。
WMI は、便利だけど遅い、という欠点があります。でも、先日のログや、この WMIDiag (診断ツール) など、結構情報は取れるものなんだなと思います。早速使ってみましょう。色々オプションがありますが、今日はまずは一番オーソドックスと思われる使い方を。
The WMI Diagnosis Utility – Version 2.0
⇒ https://download.microsoft.com/download/5/d/a/5da164b9-95ef-4886-bf7c-04459cb6857a/WMIDiag.exe
1. ダウンロードして、展開すると以下の三つがフォルダに展開されます。
WMIDiag.doc
WMIDiag.vbs
WMIDiag.xls
このうち、使うのは “WMIDiag.vbs” です。
2. コマンドプロンプトを立ち上げ、以下のように CScript の引数に WMIDiag.vbs を与えてあげましょう。拡張子も食べさせないと怒られますので注意。
C:\>Cscript WMIDiag.vbs
3. にょろにょろ~っとコマンド プロンプト上で診断が激しく実行されます。かなり時間がかかるので、放置します。
4. しばらくすると、環境変数 temp のディレクトリにログなどが出力されます。ファイル名に “WMIDIAG” と入っているのでわかるでしょう。もし、環境変数 temp のディレクトリがわからない場合は、コマンドプロンプトや、”ファイル名を指定して実行” に以下のように指定して実行すればフォルダが開きます。
%USERPROFILE%\Local Settings\Temp
WMIDiag 実行時、LOGFILEPATH=C:\Log 等のように指定すると、出力先ディレクトリが指定できます。以下の例では、c:\Log フォルダにログを出力させています。
例) Cscript WMIDiag.vbs LOGFILEPATH=C:\Log
5. 処理が終わると、以下の三つが生成されます。弊社にお問い合わせされる際は、下記の三つのファイルをお送りください。
WMIDIAG-V2.0_ ・・・ .log
WMIDIAG-V2.0_ ・・・ .txt
WMIDIAG-V2.0_ ・・・ .csv
ちなみにわたしは、ためしにわたしのメインで走らせたらエラーがいくつか出てました orz
おまけ : Vista および Windows Server 2008 で Wbemcomn.dll, framedyn.dll, framedynos.dll and provthrd.dll が wbem フォルダからなくなってておかしくね?といわれた場合
診断ツールのレポートをみて、以下のようなエラーが出てぎょっとしたかたがいらっしゃるかも…。
27705 19:52:23 (0) ** - C:\Windows\System32\WBEM\framedyn.dll
27706 19:52:23 (0) ** - C:\Windows\System32\WBEM\provthrd.dll
27707 19:52:23 (0) ** - C:\Windows\System32\WBEM\wbemcomn.dll
27817 19:52:23 (0) ** - Root/CIMv2, Win32_Process.Handle=1124, 0x80004002 - No such
interface supported.
27827 19:52:24 (0) ** - Root/CIMV2, Win32_PerfRawData_TermService_TerminalServices,
0x80041002 - (WBEM_E_NOT_FOUND) Object cannot be found.
27829 19:52:24 (0) ** - Root/CIMV2, Win32_Service='WSCSVC', 0x80041013 -
(WBEM_E_PROVIDER_LOAD_FAILURE) COM cannot locate a provider referenced in the
schema.
27938 19:52:24 (0) ** 50 error(s) 0x80004002 - (WBEM_UNKNOWN)
27947 19:52:24 (0) ** 2 error(s) 0x80041002 - (WBEM_E_NOT_FOUND) Object cannot be
found
Windows Vista / 2008 以降では、これらのモジュールは、system32 配下に配置場所が変わりましたためこのレポートとなっております。気になる方は、 %systemroot%\system32 フォルダの中にこれらの DLL がないか、確認してみましょう。
*****************
WMI で問題が起きたら、WMI のログと一緒に診断ツールも実行してみてください。特に、特定の PC でだけ発生する、とか、環境要因が疑われるケースの切り分けに使えると思います。
診断ツールは、WMIDiag.doc というドキュメントに使用例などが載っていますが、英語なのでちょっと見るとげんなりします。そのうちまた、細かい使い方などご紹介したいと思います。
ういこう@なんでもないようなことが幸せだったと思う以前で時間が止まってます。