スクリプトでHyper-V上の仮想OSのプロパティを取得@VBS
![]()
ネット上で参考になるHyper-Vのスクリプトを見て、以前Virtual Server上で実行していたVBScriptを多少書き換えればHyper-Vでも稼働させる事が出来そうだなと思ってHyper-Vのインストールされた環境で動作するVBScriptを作ってみました。
とりあえず全ての仮想インスタンスのステータスを表示します。
“Msvm_ComputerSystem”をそのまま利用すると物理OSのステータスも拾ってしまうので
Where Description = 'Microsoft Virtual Machine'
というところで物理OSをリストから除外しています。
とりあえず一通りのプロパティの取得はWMIから出来ますので、Virtual Serverと同じ様に自動起動や自動バックアップがVBScりptで作れそうです。
Option ExplicitDim objWMI
Dim VM
Dim VMListSet objWMI = GetObject("winmgmts:\\.\root\virtualization")
'日本語環境ではホストマシンのDescriptionが'Microsoft ホスト コンピュータ システム'となるのでそれをクエリで除外
Set VMList = objWMI.ExecQuery _
("SELECT * FROM Msvm_ComputerSystem Where Description = 'Microsoft Virtual Machine'")'マシン名と詳細の表示
For Each VM In VMList
Wscript.Stdout.WriteLine "ElementName " & VM.ElementName
Wscript.Stdout.WriteLine "Name " & VM.Name
Wscript.Stdout.WriteLine "EnabledState " & SHOW_EnabledState(VM.EnabledState)
Wscript.Stdout.WriteLine "Description " & VM.Description
Wscript.Stdout.WriteLine "InstallDate " & VM.InstallDate
Wscript.Stdout.WriteLine "TimeOfLastConfigurationChange " & VM.TimeOfLastConfigurationChange
Wscript.Stdout.WriteLine "TimeOfLastStateChange " & VM.TimeOfLastStateChange
Wscript.Stdout.WriteBlankLines 1
Next'EnabledStateのintを文字に変換
Function SHOW_EnabledState(int)
Select Case int
Case 0
SHOW_EnabledState = "Unknown"
Case 2
SHOW_EnabledState = "Enabled(実行中)"
Case 3
SHOW_EnabledState = "Disabled"
Case 32768
SHOW_EnabledState = "Paused(一時停止)"
Case 32769
SHOW_EnabledState = "Suspended(保存完了)"
Case 32770
SHOW_EnabledState = "Starting(復元中)"
Case 32771
SHOW_EnabledState = "Snapshotting"
Case 32772
SHOW_EnabledState = "Migrating"
Case 32773
SHOW_EnabledState = "Saving"
Case 32774
SHOW_EnabledState = "Stopping"
Case 32775
SHOW_EnabledState = "Deleted"
Case 32776
SHOW_EnabledState = "Pausing"
Case Else
SHOW_EnabledState = "不明なステータス " & int
End Select
End Function
参考URL
Popularity: 3%
トラックバック URI : http://pnpk.net/cms/archives/452/trackback/
【関連記事】