- Hyper-V Scripting: テキスト ベースの Hyper-V マネージャー http://yamanxworld.blogspot.com/2010/06/hyper-v-server-core.html
- Hyper-V Scripting: “実行中”の仮想マシン=ゲスト OS が“実行中”ではないhttp://yamanxworld.blogspot.com/2010/07/hyper-v-scripting-os.html
- Windows Scripting: Windows Update をスクリプトから ( WindowsUpdate.vbs ) http://yamanxworld.blogspot.com/2010/07/windows-scripting-windows-update.html
- Windows Scripting: Windows Update をスクリプトから ( WindowsUpdate.ps1 ) http://yamanxworld.blogspot.com/2010/07/windows-scripting-windows-update_05.html
- Windows Scripting: Windows Update をリモートから ( PowerShell Remoting は NG ) http://yamanxworld.blogspot.com/2010/07/windows-scripting-windows-update_06.html
- Windows Scripting: Windows Update をリモートから ( WinRM/WinRS も NG )http://yamanxworld.blogspot.com/2010/07/windows-scripting-windows-update_592.html
- Windows & Hyper-V Scripting: Windows Update をスクリプトから ( ゲスト OS のスタートアップに仕込む) http://yamanxworld.blogspot.com/2010/07/windows-hyper-v-scripting-windows_07.html
- Windows & Hyper-V Scripting: Windows Update スクリプトのバリエーションhttp://yamanxworld.blogspot.com/2010/07/windows-hyper-v-scripting-windows.html
次の hvvmsnap.vbs は、指定した仮想マシンに対してスナップショットの作成を開始するスクリプトです。スナップショットの作成をキックして終了するため、スナップショットが終了(100%)するまで待つことはしません。このスクリプトを 7 のバッチで仮想マシンを起動する直前に挟んでおけば、もしものときにスナップショットから回復できるようになります。
[hvvmsnap.vbs]
Option Explicit
Dim arg, targetVM, WMIService, VMs, VM, InputKey
Dim VMManagementService, VMSystemSettingData, ret
If Right((LCase(WScript.FullName)),11) <> "cscript.exe" then
WScript.Echo "このスクリプトはCSCRIPT.EXEを使用して実行して下さい。"
WScript.Quit
End if
Set arg = WScript.Arguments
if arg.Count = 0 then
WScript.StdOut.Write "スナップショットを作成する仮想マシン名を入力して下さい: "
InputKey = Trim(WScript.StdIn.ReadLine)
If InputKey <> "" then
targetVM = InputKey
Else
WScript.Echo "仮想マシン名が入力されませんでした。中止します。"
WScript.Quit
End If
else
targetVM = arg(0)
end if
Set WMIService = GetObject("winmgmts:\\.\root\virtualization")
Set VMs = WMIService.ExecQuery("SELECT * FROM Msvm_ComputerSystem WHERE ElementName='" & targetVM & "'")
if VMs.Count < 1 then
WScript.Echo "仮想マシン " & targetVM & " が見つかりません。"
WScript.Quit
end if
Set VM = VMs.ItemIndex(0)
Set VMManagementService = WMIService.ExecQuery("SELECT * FROM Msvm_VirtualSystemManagementService").ItemIndex(0)
WScript.StdOut.Write "仮想マシン " & targetVM & " のスナップショットを開始しています ..."
set VMSystemSettingData = (VM.Associators_("Msvm_SettingsDefineState","Msvm_VirtualSystemSettingData")).ItemIndex(0)
ret = VMManagementService.CreateVirtualSystemSnapShot(VM.Path_.Path,VMSystemSettingData)
if ret = 0 or ret = 4096 then
WScript.Echo "... 成功しました。"
else
WScript.Echo "... 失敗しました。"
end if
Dim arg, targetVM, WMIService, VMs, VM, InputKey
Dim VMManagementService, VMSystemSettingData, ret
If Right((LCase(WScript.FullName)),11) <> "cscript.exe" then
WScript.Echo "このスクリプトはCSCRIPT.EXEを使用して実行して下さい。"
WScript.Quit
End if
Set arg = WScript.Arguments
if arg.Count = 0 then
WScript.StdOut.Write "スナップショットを作成する仮想マシン名を入力して下さい: "
InputKey = Trim(WScript.StdIn.ReadLine)
If InputKey <> "" then
targetVM = InputKey
Else
WScript.Echo "仮想マシン名が入力されませんでした。中止します。"
WScript.Quit
End If
else
targetVM = arg(0)
end if
Set WMIService = GetObject("winmgmts:\\.\root\virtualization")
Set VMs = WMIService.ExecQuery("SELECT * FROM Msvm_ComputerSystem WHERE ElementName='" & targetVM & "'")
if VMs.Count < 1 then
WScript.Echo "仮想マシン " & targetVM & " が見つかりません。"
WScript.Quit
end if
Set VM = VMs.ItemIndex(0)
Set VMManagementService = WMIService.ExecQuery("SELECT * FROM Msvm_VirtualSystemManagementService").ItemIndex(0)
WScript.StdOut.Write "仮想マシン " & targetVM & " のスナップショットを開始しています ..."
set VMSystemSettingData = (VM.Associators_("Msvm_SettingsDefineState","Msvm_VirtualSystemSettingData")).ItemIndex(0)
ret = VMManagementService.CreateVirtualSystemSnapShot(VM.Path_.Path,VMSystemSettingData)
if ret = 0 or ret = 4096 then
WScript.Echo "... 成功しました。"
else
WScript.Echo "... 失敗しました。"
end if
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。