Symfoware

Symfowareについての考察blog

VBScriptを使用して、Hyper-Vの仮想OSの情報を取得する

VIX APIを使用して、ESXやVMWareServerで稼働している
仮想OSの一覧を取得することが出来ました。

Windows XPにVIX APIをインストールし、ESXとVMWareの情報を取得する

Hyper-Vで稼働している仮想OSもあるので、これも取得できるか調べてみます。




Msvm_ComputerSystem



調べてみると、vbsスクリプトで簡単に取得できるようです。
参考にさせていただいたのは以下の記事。

Hyper-Vをスクリプトで管理する


公開していただいているスクリプトですが、仮想OSの一覧を
取得するサンプルはこんな感じです。

■GetVMinfo.vbs


Dim strComputer
Dim WMIService
Dim VMs
Dim VM

strComputer = "[サーバー名]"
Set WMIService = GetObject("winmgmts:\\" & strComputer & "\root\virtualization")
Set VMs = WMIService.ExecQuery("SELECT * FROM Msvm_ComputerSystem")

For Each VM In VMs
    if VM.Caption = "仮想マシン" then
        WScript.StdOut.WriteLine Format1("VM Name                     : {0}", VM.ElementName)
        WScript.StdOut.WriteLine Format1("GUID                         : {0}", VM.Name)
        WScript.StdOut.WriteLine Format1("State                         : {0}", StateCheck(VM.EnabledState) )
        Wscript.Stdout.WriteLine Format1("Description                 : {0}", VM.Description)
        Wscript.Stdout.WriteLine Format1("InstallDate                 : {0}", VM.InstallDate)
        Wscript.Stdout.WriteLine Format1("TimeOfLastConfigurationChange : {0}", VM.TimeOfLastConfigurationChange)
        Wscript.Stdout.WriteLine Format1("TimeOfLastStateChange         : {0}", VM.TimeOfLastStateChange)
        Wscript.Stdout.WriteBlankLines 1
    end if
Next

Function StateCheck(int)
    Select Case int
    Case 0
        StateCheck = "Unknown"
    Case 2
        StateCheck = "Enabled(実行中)"
    Case 3
        StateCheck = "Disabled"
    Case 32768
        StateCheck = "Paused(一時停止)"
    Case 32769
        StateCheck = "Suspended(保存完了)"
    Case 32770
        StateCheck = "Starting(復元中)"
    Case 32771
        StateCheck = "Snapshotting"
    Case 32772
        StateCheck = "Migrating"
    Case 32773
        StateCheck = "Saving"
    Case 32774
        StateCheck = "Stopping"
    Case 32775
        StateCheck = "Deleted"
    Case 32776
        StateCheck = "Pausing"
    Case Else
        StateCheck = "不明なステータス " & int
    End Select
End Function

Function Format1(myString, arg0)
    Format1 = Replace(myString, "{0}", arg0)
End Function





使い方は、コマンドプロンプトで


C:\>cscript GetVMinfo.vbs




実行結果はこんな感じになります。


C:\>cscript GetVMinfo.vbs
Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

VM Name                       : sv01
GUID                          : 0613CA80-D01C-45FB-987B-E40CA728BA82
State                         : Enabled(実行中)
Description                   : Microsoft Virtual Machine
InstallDate                   : 20100322015958.000000-000
TimeOfLastConfigurationChange : 20101029202434.363403-000
TimeOfLastStateChange         : 20101029202434.000000-000

VM Name                       : sv02
GUID                          : 0D688BC5-0E88-4C81-AD18-B530BB3DDED7
State                         : Disabled
Description                   : Microsoft Virtual Machine
InstallDate                   : 20100322001454.000000-000
TimeOfLastConfigurationChange : 20100322013925.158718-000
TimeOfLastStateChange         : 20101116082625.000000-000

VM Name                       : cl01
GUID                          : 11A55730-643D-400E-936E-EB15D2DD53C8
State                         : Enabled(実行中)
Description                   : Microsoft Virtual Machine
InstallDate                   : 20100322015351.000000-000
TimeOfLastConfigurationChange : 20101029234639.759529-000
TimeOfLastStateChange         : 20101029234639.000000-000







【参考URL】
2.標準ツールによる管理方法
Hyper-Vをスクリプトで管理する
Using the Hyper-V WMI Provider








関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2010/11/16(火) 18:19:31|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<SQL Server 2008 R2 Express コマンドでテーブルに郵便番号データをロードする(bcp) | ホーム | Windows XPにVIX APIをインストールし、ESXとVMWareの情報を取得する>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/648-071f2694
この記事にトラックバックする(FC2ブログユーザー)