matsu 気楽なBlog

仮想化で快適な環境を!!

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  289  : 記事  0  : コメント  2735  : トラックバック  22

ニュース

書庫

日記カテゴリ

Link

2008年7月9日 #

こちら http://www.ravichaganti.com/blog/?p=70 にあるスクリプトを参考に

日本語環境で使えるようにしてみました。

といっても赤字のところだけ直しただけですが....

スクリプトも動くようになったので本格的に業務移行に移りたいです。

 

Set args = WScript.Arguments
If WScript.Arguments.Count = 1 Then
 strAction = WScript.Arguments.Item(0)
Else
 Wscript.Echo "Usage: VMState.vbs <Action>"
 WScript.Echo "       VMState.vbs start/shutdown/save"
 Wscript.Quit
End If

Select case strAction
 Case "start"
  ChangeVMState(2)
 Case "shutdown"
  ShutVMs
 Case "save"
  ChangeVMState(32769)
 Case else
  Wscript.Echo "Usage: VMState.vbs <Action>"
   WScript.Echo "       VMState.vbs start/shutdown/save"
  WScript.Quit
End Select

Sub ChangeVMState(x)
 Set WMIObject = GetObject("winmgmts:\\.\root\virtualization")
 Set VMList = WMIObject.ExecQuery("SELECT * FROM Msvm_ComputerSystem")
  
 For Each VM In VMList
  if VM.Caption = "仮想マシン" then 
   WScript.Echo "VM Name: " & VM.ElementName
          WScript.Echo "VM GUID: " & VM.Name
          WScript.Echo "VM State: " & VM.EnabledState
   VM.RequestStateChange(x)
  End if 
 Next
End Sub

Sub ShutVMs
  WScript.Echo "ShutDown Start"
 Set WMIObject = GetObject("winmgmts:\\.\root\virtualization")
 Set VMList = WMIObject.ExecQuery("SELECT * FROM Msvm_ComputerSystem")

 For Each VM In VMList
  WScript.Echo "VM Captin:" & VM.Caption
   
  if VM.Caption = "仮想マシン" and VM.EnabledState = 2 then
   WScript.Echo "VM Name: " & VM.ElementName
          WScript.Echo "VM GUID: " & VM.Name
          WScript.Echo "VM State: " & VM.EnabledState
   If not VM.EnabledState = 32769 Then
    Set vmshut = WMIObject.ExecQuery("SELECT * FROM Msvm_ShutdownComponent WHERE SystemName='" & VM.Name & "'")
    vmReturn = vmshut.ItemIndex(0).InitiateShutdown(True,"Scripted Shutdown") 
   Else
    WScript.Echo "VM is in saved State. Cannot perform shutdown now"
   End If
  End if
 Next 
End Sub

posted @ 15:48 | Feedback (0)

いろいろやってたらシャットダウンできました。

--------------------------------------------------------------

Option Explicit
Dim vmshut
Dim VMName
Dim WMIObject
Dim VM
Dim VMList

Dim vmReturn


VMName = "SERVER01"

 Set WMIObject = GetObject("winmgmts:\\.\root\virtualization")
        Set VMList = WMIObject.ExecQuery("SELECT * FROM Msvm_ComputerSystem WHERE ElementName='" & VMName & "'")
        VM = VMList.ItemIndex(0).Name
 Set vmshut = WMIObject.ExecQuery("SELECT * FROM Msvm_ShutdownComponent WHERE SystemName='" & VM & "'")
 vmReturn = vmshut.ItemIndex(0).InitiateShutdown(True,"Scripted Shutdown") 

--------------------------------------------------------------

参考:

http://msdn.microsoft.com/en-us/library/cc136822(VS.85).aspx

http://crawlmsdn.microsoft.com/en-us/library/cc136893(VS.85).aspx

http://crawlmsdn.microsoft.com/en-us/library/cc703625(VS.85).aspx

 

posted @ 9:19 | Feedback (101)