WMIサービスを再起動します.

3817 ワード

WMIサービスを再起動します.
通常、WMIサービス(winmgmt)は常に実行されます.コンピュータが起動すると、コンピュータが停止するまで起動します.サービスが意外に停止した場合は、コマンドラインに入力できます. net start winmgmt 再起動します.また、WMIベースのツール(Wbemtestなど)やスクリプトを使用してWMI namespaceに接続するたびに、このサービスは自動的に再起動されます.通常、WMIサービスが停止した場合に、WMIを使用するスクリプトを実行しても自動的に再起動されます.
WMIサービスに関する障害が発生した場合は、手動でサービスを停止して再起動する必要がある場合があります.次の手順に従います.
  • まず、WMIの「詳細なログ」オプションを有効にします.これにより、WMIエラーログにより詳細な情報が提供され、トラブルシューティングに役立つ可能性があります.次のレジストリ値を設定して、詳細なログ・レコードを有効にできます.
  • 設定 HKLMSoftwareMicrosoftWBEMCIMOMLogging 2.
  • 設定 HKLM\Software\Microsoft\WBEM\CIMOM\Logging file Max Size を選択します. 4000000.

  • WMIサービスを停止します.WMIサービス名は「winmgmt」として知られている.次のコマンドを実行してサービスを停止できます:wingmt/kill  Windows XPまたはWindows Server 2003を実行している場合、WMIサービスはSvchostというプロセス内で実行されます.このプロセスには、同じアカウントで実行される他のサービスも含まれます.また、コンピュータ上で複数のSvchostインスタンスが実行されていることも確認できます.Svchost自体を止めないでください.逆に、以下の2つのコマンドを使用してWMIサービスを停止してください:wingmt/kill または net stop winmgmt
  • ステップ2が成功した場合は、このステップをスキップして、直接ステップ4に進みます.手順2でwinmgmtサービスを正常に停止できなかった場合は、コンピュータを再起動して手順4に進みます.
  • スクリプトを再実行します.スクリプトの実行に失敗した場合は、WMI Repositoryを再構築する必要があります.

  • リポジトリを再構築します.
    WMI Repositoryは、WMIプロバイダが作成したクラス定義の集中的な格納場所です.%systemDrive%%windir%system 32wbemRepositoryフォルダにあります.リポジトリが破損していると感じたら、再構築する必要があります.注意:これにより、リポジトリ内のWMI情報が失われる可能性があります.リポジトリに情報を格納できる特定のアプリケーションを実行するには、これらの情報を手動で復元する必要があります.リポジトリを再構築するには、次の手順に従います.
  • WMIサービスを停止します.
  • コマンドラインには、cd/d%windir%system 32wbem rename Repository Rep_というコマンドを入力します.bak
  • このコマンドは、WMI Repositoryを含むファイルの名前を変更します.ファイルの名前を変更すると、オペレーティングシステムはリポジトリを見つけることができません.この場合、Windowsでは、ユーザーが次回WMIにアクセスするときにリポジトリの再構築を試みます.AutoRecover(自動リカバリ)メカニズムが失敗した場合は、リポジトリを手動で再構築できます.WMI AutoRecoverメカニズムによるリポジトリの再構築:
    RootDefaultへのWMI接続を確立します.これは、スクリプトまたはWbemtest.exeのようなWMIベースのツールを実行することによって行うことができます.接続に成功すると、リポジトリが再構築されます.接続に失敗した場合は、リポジトリを手動で再構築してみます.

  • WMIリポジトリの手動再構築:
    リポジトリを手動で再構築するには、まずバッチ・ファイルを編集します.このファイルはリポジトリに情報を追加します.レジストリキーHKLMSoftwareMicrosoftWBEMCIMOMAutorecover MOFs WMI(またはオペレーティングシステム)のインストール時のManaged Object Formatファイル(MOFファイル)のリストが含まれます.リポジトリを再構築するには、レジストリ値にリストされているファイル名をWMI_という名前にコピーします.Recover.batのバッチファイル;拡張子が.MOFと.MFLのファイルが含まれていることを確認します.(MFLファイルには、クラス、属性、メソッドのローカライズの説明が含まれています.)メモ帳では、このバッチファイルは次のようになります.
    C:\WINDOWS\system32\WBEM\cimwin32.mof
    C:\WINDOWS\system32\WBEM\cimwin32.mfl
    C:\WINDOWS\system32\WBEM\system.mof
    C:\WINDOWS\system32\WBEM\wmipcima.mof
    C:\WINDOWS\system32\WBEM\wmipcima.mfl
    
    


    バッチ・ファイルの各行の先頭にMofcompコマンドを追加します.Mofcomp.exeは、MOFファイルをコンパイルし、WMIリポジトリにファイルに含まれる情報を追加するオペレーティングシステムツールです.たとえば、バッチ・ファイルは次のようになります.
    Mofcomp C:\WINDOWS\system32\WBEM\cimwin32.mof
    Mofcomp C:\WINDOWS\system32\WBEM\cimwin32.mfl
    Mofcomp C:\WINDOWS\system32\WBEM\system.mof
    Mofcomp C:\WINDOWS\system32\WBEM\wmipcima.mof
    Mofcomp C:\WINDOWS\system32\WBEM\wmipcima.mfl
    
    


    このバッチ・ファイルを実行します.
    以下のコマンドを使用して、すべてのMOFファイルとMFLファイルをコンパイルすることもできます:cd/d%windir%system 32wbem for%i in(*.mof、*.mfl)do Mofcomp%i コマンドが完了したら、.LogsMofcomp.logを確認し、コンパイルエラーが発生しているかどうかを確認します.
  • スクリプトを再実行します.

  • WMIコンポーネントの再登録
    rootdefaultへの接続が失敗した場合、正しく登録できないWMIコンポーネントが障害の原因になる可能性があります.WMIで使用される.DLLと.EXEファイルは%windir%system 32wbemにあります.このディレクトリ内のすべての.DLLファイルと.EXEファイルを再登録する必要があるかもしれません.64ビットのシステム上で実行する場合は、%windir%sysWOW 64wbemにある.DLLファイルと.EXEファイルを確認する必要があります.
  • WMIコンポーネントを再登録するには、cd/d%windir%system 32wbem for%i in(*.dll)do RegSvr 32-s%i for%i in(*.exe)do%i/RegServer
  • コマンドをコマンドプロンプトラインで実行します.
  • スクリプトを再実行します.

  • OSの再インストール
    rootdefaultに接続できない場合は、OSを再インストールする必要があります.Windowsを再インストールし、スクリプトを再実行します.
    Microsoft製品サポートサービスへの問い合わせ
    WMIがまだ機能していない場合は、Microsoft製品サポートサービス(PSS)に連絡する必要があります.詳細については、以下を参照してください.http://support.microsoft.com/default.aspx.