none
Hyper-Vの制御コマンドについて RRS feed

  • 質問

  • 初めて投稿します。

    現在、ホストOS(Win2008)のHyper-V上でゲストOS(Win2000)を動作させている状態ですが、
    ホストOSからコマンドラインでHyper-Vの制御(ゲストOSの起動・シャットダウン)を行いたいと考えております。


    以下のことをご存知の方がいればご教示頂きたいのですが。


    ・ホストOSからのゲストOSの起動・シャットダウンのコマンド
     *起動の方は最悪、Hyper-Vマネージャーの自動開始アクションを使えばいいかなと考えてますが、
      停止の方はゲストOSだけをシャットダウンさせたいので自動停止アクションは使えません。

    2009年3月26日 2:56

回答

  • 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
    のようサイト指定してググると、絞込みが早いと思います。


    2009年3月26日 12:25
  • 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 Sub

    Sub 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
    2009年3月27日 1:15
    モデレータ

すべての返信

  • 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
    のようサイト指定してググると、絞込みが早いと思います。


    2009年3月26日 12:25
  • 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 Sub

    Sub 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
    2009年3月27日 1:15
    モデレータ
  • Hyper-V関連だったのでこちらにサンプルを載せました。

    http://social.technet.microsoft.com/Forums/ja-JP/hypervja/thread/5d8cec35-85c5-4940-b679-2b5121678d40


    WIN1
    2009年3月27日 1:20
    モデレータ
  • こんにちは、フォーラムオペレーターの鈴木裕子です(^O^)/

    knoji さん、WIN1 さん、回答ありがとうございました!

    teruki さん、その後いかがでしたか?knoji さん、WIN1 さんの情報が参考になられたのではと思いましたので、勝手ながら私のほうで[回答としてマーク]をつけさせていただきました。
    ただ、もし問題が未解決でいらしたり、不適当と思われた場合は、遠慮なくチェック解除して、引き続き質問をご投稿くださいね。

    よろしければ、その後の経過、試してみてどうだったかなどをご投稿いただけるととても嬉しいです(^・^)
    これからも、皆様の情報交換の場としてForumをご活用くださいね!

    ※WIN1 さんには、Win2008カテゴリに投稿されていた質問に対して、ほかの方も利用しやすいようにHyper-Vカテゴリに回答をつけていただくという、細かい気遣いをしていただいて、ありがとうございました。
    遅くなりましたが、スレッドそのものを移動して、質問と回答を結合させていただきました。ただ、投稿が前後してしまって・・・すみません。皆さんには、回答チェックを参考に情報を見つけていただけたらと思います!
    マイクロソフト株式会社 フォーラムオペレーター 鈴木裕子
    2009年4月9日 6:23
    モデレータ