トップ回答者
Hyper-Vの制御コマンドについて

質問
-
初めて投稿します。
現在、ホストOS(Win2008)のHyper-V上でゲストOS(Win2000)を動作させている状態ですが、
ホストOSからコマンドラインでHyper-Vの制御(ゲストOSの起動・シャットダウン)を行いたいと考えております。
以下のことをご存知の方がいればご教示頂きたいのですが。
・ホストOSからのゲストOSの起動・シャットダウンのコマンド
*起動の方は最悪、Hyper-Vマネージャーの自動開始アクションを使えばいいかなと考えてますが、
停止の方はゲストOSだけをシャットダウンさせたいので自動停止アクションは使えません。- 移動 鈴木裕子Support Engineer, Moderator 2009年4月9日 6:07 Hyper-Vに関する内容のため、スレッド移動いたしました。
回答
-
hyper-v shutdown あたりでググると多数でてくるとおもいます
例えば、下のblogはどうでしょうか。
http://blogs.msdn.com/virtual_pc_guy/archive/2008/01/30/shutting-down-a-hyper-v-virtual-machine.aspx
--
Virtual PC Guy's さんbog には、スクリプト例がたくさんありますので、
site:blogs.msdn.com/virtual_pc_guy/ hyper-v shutdown|start
のようサイト指定してググると、絞込みが早いと思います。
- 回答としてマーク 鈴木裕子Support Engineer, Moderator 2009年4月9日 6:08
-
Widows Server 2008 のスレッドで
「Hyper-Vの制御コマンドについて」
http://social.technet.microsoft.com/Forums/ja-JP/windowsserver2008ja/thread/9474ebd2-1679-4666-ae45-f9e4b1c1fd61
といった質問がりましたが、Hyper-Vネタということでこちらに回答いたします。
Sub Start (strNmae)
Dim objWMI, VMList, VM
Set objWMI = GetObject("winmgmts:\\.\root\virtualization")
Set VMList = objWMI.ExecQuery("SELECT * FROM Msvm_ComputerSystem")
For Each VM In VMList
If VM.Caption = "仮想マシン" then
If VM.ElementName = strName Then
VM.RequestStateChange(2)
End If
End if
Next
End SubSub Shutdown(strName)
Dim objWMI, VMList, VM, objVMShutdown, objRes
Set objWMI = GetObject("winmgmts:\\.\root\virtualization")
Set VMList = objWMI.ExecQuery("SELECT * FROM Msvm_ComputerSystem")
For Each VM In VMList
If VM.Caption = "仮想マシン" and VM.EnabledState = 2 then
If VM.ElementName = strName Then
If Not VM.EnabledState = 32769 Then
Set objVMShutdown = objWMI.ExecQuery("SELECT * FROM Msvm_ShutdownComponent WHERE SystemName='" & VM.Name & "'")
objRes = objVMShutdown.ItemIndex(0).InitiateShutdown(True,"Scripted Shutdown")
Else
Msgbox "NG"
End If
End if
End if
Next
End Sub
このような感じとなります。
参考になればと思います。
WIN1- 結合 鈴木裕子Support Engineer, Moderator 2009年4月9日 6:10 質問と回答を同じスレッドにするため、結合いたしました。
- 回答としてマーク 鈴木裕子Support Engineer, Moderator 2009年4月9日 6:10
すべての返信
-
hyper-v shutdown あたりでググると多数でてくるとおもいます
例えば、下のblogはどうでしょうか。
http://blogs.msdn.com/virtual_pc_guy/archive/2008/01/30/shutting-down-a-hyper-v-virtual-machine.aspx
--
Virtual PC Guy's さんbog には、スクリプト例がたくさんありますので、
site:blogs.msdn.com/virtual_pc_guy/ hyper-v shutdown|start
のようサイト指定してググると、絞込みが早いと思います。
- 回答としてマーク 鈴木裕子Support Engineer, Moderator 2009年4月9日 6:08
-
Widows Server 2008 のスレッドで
「Hyper-Vの制御コマンドについて」
http://social.technet.microsoft.com/Forums/ja-JP/windowsserver2008ja/thread/9474ebd2-1679-4666-ae45-f9e4b1c1fd61
といった質問がりましたが、Hyper-Vネタということでこちらに回答いたします。
Sub Start (strNmae)
Dim objWMI, VMList, VM
Set objWMI = GetObject("winmgmts:\\.\root\virtualization")
Set VMList = objWMI.ExecQuery("SELECT * FROM Msvm_ComputerSystem")
For Each VM In VMList
If VM.Caption = "仮想マシン" then
If VM.ElementName = strName Then
VM.RequestStateChange(2)
End If
End if
Next
End SubSub Shutdown(strName)
Dim objWMI, VMList, VM, objVMShutdown, objRes
Set objWMI = GetObject("winmgmts:\\.\root\virtualization")
Set VMList = objWMI.ExecQuery("SELECT * FROM Msvm_ComputerSystem")
For Each VM In VMList
If VM.Caption = "仮想マシン" and VM.EnabledState = 2 then
If VM.ElementName = strName Then
If Not VM.EnabledState = 32769 Then
Set objVMShutdown = objWMI.ExecQuery("SELECT * FROM Msvm_ShutdownComponent WHERE SystemName='" & VM.Name & "'")
objRes = objVMShutdown.ItemIndex(0).InitiateShutdown(True,"Scripted Shutdown")
Else
Msgbox "NG"
End If
End if
End if
Next
End Sub
このような感じとなります。
参考になればと思います。
WIN1- 結合 鈴木裕子Support Engineer, Moderator 2009年4月9日 6:10 質問と回答を同じスレッドにするため、結合いたしました。
- 回答としてマーク 鈴木裕子Support Engineer, Moderator 2009年4月9日 6:10
-
Hyper-V関連だったのでこちらにサンプルを載せました。
http://social.technet.microsoft.com/Forums/ja-JP/hypervja/thread/5d8cec35-85c5-4940-b679-2b5121678d40
WIN1- 回答としてマーク 鈴木裕子Support Engineer, Moderator 2009年4月9日 6:08
- 回答としてマークされていない 鈴木裕子Support Engineer, Moderator 2009年4月9日 6:11
-
こんにちは、フォーラムオペレーターの鈴木裕子です(^O^)/
knoji さん、WIN1 さん、回答ありがとうございました!
teruki さん、その後いかがでしたか?knoji さん、WIN1 さんの情報が参考になられたのではと思いましたので、勝手ながら私のほうで[回答としてマーク]をつけさせていただきました。
ただ、もし問題が未解決でいらしたり、不適当と思われた場合は、遠慮なくチェック解除して、引き続き質問をご投稿くださいね。
よろしければ、その後の経過、試してみてどうだったかなどをご投稿いただけるととても嬉しいです(^・^)
これからも、皆様の情報交換の場としてForumをご活用くださいね!
※WIN1 さんには、Win2008カテゴリに投稿されていた質問に対して、ほかの方も利用しやすいようにHyper-Vカテゴリに回答をつけていただくという、細かい気遣いをしていただいて、ありがとうございました。
遅くなりましたが、スレッドそのものを移動して、質問と回答を結合させていただきました。ただ、投稿が前後してしまって・・・すみません。皆さんには、回答チェックを参考に情報を見つけていただけたらと思います!
マイクロソフト株式会社 フォーラムオペレーター 鈴木裕子- 編集済み 鈴木裕子Support Engineer, Moderator 2009年4月9日 6:30 誤字修正