Snapshot виртуальной машины Hyper-V на VBScript

Скрипт создает снимок виртуальной машины на Hyper-V.

Запускается:
hypersnap.vbs server_name vmname [user_name password]


'==============================================================
' Author - Nefka
'
' Comment - Script create snapshot on any hyper-v servers
'
' run - hypersnap.vbs server_name vm_name [user_name password]
'==============================================================

Dim sServerName, sVMName, sUsr, sPsswd, oItem,sFindVMName, objArg
 
 
Set objArg = WScript.Arguments
For i = 0 to objArg.Count - 1
    if i > 4 then 
        exit for
    end if 
    Select Case i
	Case 0
	    sServerName = objArg(i)
	Case 1
	    sVMName = objArg(i)
	Case 2
	    sUsr = objArg(i)
	Case 3
	    sPsswd = objArg(i)
    End Select
Next	
 
Set objLocator=CreateObject("WbemScripting.SWbemLocator")
Set objService=objLocator.ConnectServer(sServerName,"Root\virtualization",sUsr,sPsswd)
Set objItem = objService.ExecQuery("Select * From Msvm_ComputerSystem Where ElementName='" &sVMName & "'").ItemIndex(0)
Set objMService=objService.ExecQuery("select * from Msvm_VirtualSystemManagementService").ItemIndex(0)
 
Set objInParam = objMService.Methods_("CreateVirtualSystemSnapshot").InParameters.SpawnInstance_()
objInParam.SourceSystem = objItem.Path_.Path
Set objOutParams = objMService.ExecMethod_("CreateVirtualSystemSnapshot",objInParam) 
 
Set objInParam = Nothing
Set objOutParams = Nothing
Set objMService = Nothing
Set objItem = Nothing
Set objService = Nothing
Set objLocator = Nothing
 
WScript.Quit 0