Ask CORE

Microsoft Japan Windows Technology Support

[Hyper-V マネージャー] のトレース (Hyper-V UI トレース) について

2015/01/07 追記。

 

こんにちは。

 

Windows プラットフォーム サポートの横山です。

 

本日は、[Hyper-V マネージャー] を利用した操作に関するログを取得する方法についてお伝えいたします。

 

[Hyper-V マネージャー] の処理詳細を確認するためのトレースとして Hyper-V UI トレースが実装されております。本トレースでは、[Hyper-V マネージャー] からの仮想マシンの作成 / 起動失敗や仮想マシンの一覧が表示されない現象に関するログを確認することができます。更には、仮想マシン接続 (vmconnect.exe) に関するログも取得できるため、仮想マシン接続が行えない場合にも有効なトレースです。本トレースは既定では有効化されておらず、VMClientTrace.config というファイルを作成する必要がございます。有効化の手順は以下の通りです。

 

1. "%appdata%\Microsoft\Windows\Hyper-V\Client\1.0\" のパス配下に "VMClientTrace.config" という名前の空ファイルを配置します。

    ※ 拡張子を表示した状態でファイル名を設定してください。

 

2. 作成した VMClientTrace.config ファイルをテキスト エディタで開き、以下の内容を記述して保存します。

    Windows Server 2008 / 2008 R2 Windows Server 2012 / 2012 R2 (Windows 8 / 8.1) で異なるため、それぞれを記載いたします。

 

// Windows Server 2008 / 2008 R2

<?xml version="1.0" encoding="utf-8"?>

<configuration>

    <Microsoft.Virtualization.Client.TraceConfigurationOptions>

        <setting name="TraceTagFormat" type="System.Int32">

            <value>3</value>

        </setting>

        <setting name="BrowserTraceLevel" type="System.Int32">

            <value>6</value>

        </setting>

        <setting name="VMConnectTraceLevel" type="System.Int32">

            <value>6</value>

        </setting>

        <setting name="InspectVhdTraceLevel" type="System.Int32">

            <value>6</value>

        </setting>

    </Microsoft.Virtualization.Client.TraceConfigurationOptions>

</configuration>

 

 

// Windows Server 2012 / 2012 R2

<?xml version="1.0" encoding="utf-8"?>

<configuration>

    <Microsoft.Virtualization.Client.TraceConfigurationOptions>

        <setting name="TraceTagFormat" type="System.Int32">

            <value>3</value>

        </setting>

        <setting name="BrowserTraceLevel" type="System.Int32">

            <value>127</value>

        </setting>

        <setting name="VMConnectTraceLevel" type="System.Int32">

            <value>127</value>

        </setting>

        <setting name="InspectVhdTraceLevel" type="System.Int32">

            <value>6</value>

        </setting>

    </Microsoft.Virtualization.Client.TraceConfigurationOptions>

</configuration>

 

3. [Hyper-V マネージャー] の再起動後、トレースが開始されますので、調査対象の現象を再現させます。

   ※ 仮想マシン接続の場合は、仮想マシン接続 (vmconnect.ext) を再起動します。

 

4. [Hyper-V マネージャー] を終了し、ログの書き込みを完了させます。

   ※ 仮想マシン接続の場合は、仮想マシン接続 (vmconnect.ext) を終了します。

 

5. ログ ファイルは %temp% もしくは %userprofile%\AppData\Local\Temp\ に保存されます。

   [Hyper-V マネージャー] の操作に関するログは "VMBrowser_Trace_日時.log" として保存され、仮想マシン接続に関するログは "VMConnect_Trace_日時.log" として保存されます。

 

ログの出力を停止する場合は作成した VMClientTrace.config のリネームを行うか、削除してください。

 

– 補足
VMClientTrace.config 内の以下の 3 つの設定について補足します。

BrowserTraceLevel
VMConnectTraceLevel
InspectVhdTraceLevel

BrowserTraceLevel は、[Hyper-V マネージャー] の操作に関するログです。
VMConnectTraceLevel は、仮想マシン接続 (vmconnect.exe) に関するログです。
InspectVhdTraceLevel は、ディスクの検査 (InspectVhdDialog.exe) に関するログです。

仮想マシン接続のログのみが必要で、その他のログの出力を抑えたい場合は BrowserTraceLevel と InspectVhdTraceLevel の <value> を 0 に変更してください。
なお、<value> で設定する値に依って取得されるログが異なります。設定可能な値は Windows Server 2008 / 2008 R2 と Windows Server 2012 / 2012 R2 (Windows 8 / 8.1) とで異なります。

// Windows Server 2008 / 2008 R2

0

None

1

Exception (全ての例外をログします)

2

WMI call (1 の内容に加え、UI より呼び出された WMI の情報をログします)

3

UserAction (2 の内容に加え、ウィザードの起動などのユーザー アクションをログします)

4

Events (3 の内容に加え、WMI イベントをログします)

5

All (4 の内容に加え、関数やスレッドの開始や終了をログします)

6

Verbose (5 の内容を更に詳細にログします)

// Windows Server 2012 / 2012 R2
Windows Server 2012 / 2012 R2 では、任意のログのみを出力できる様にビットでフラグを管理する様、実装が変更されました。
例えば 5 と設定することで、Error と UserAction のみをログすることが可能です。

1

Error (エラー)

2

Warning (警告)

4

User Action (ユーザー アクション)

8

Information (汎用情報)

16

WMI Call (WMI コール)

32

WMI Event (WMI イベント)

64

Verbose (詳細情報)

128

Verbose WMI Get Properties (WMI で取得されたオブジェクトのプロパティ情報)

256

Verbose WMI Event Properties (受信した WMI イベントに関するオブジェクトのプロパティ情報)

全てのログを取得するためには、511 を設定しますが、128 と 256 を設定するとログ量が極端に増えるため、必要な状況以外で設定することは推奨していません。
※ 64, 128, 256 はそれぞれ詳細な情報を表示するためのフラグであり、単体ではログが出力されません。
64 は 1, 2, 4, 8 と組み合わせて利用します。
128 は 16 と組み合わせて利用します。
256 は 32 と組み合わせて利用します。