coffeysm Posted September 14, 2011 Posted September 14, 2011 (edited) I'm relatively new to AutoIT, but very familiar with Unix and Perl Scripting and even VBScript. I am having an issue converting this to AutoIT though was wondering if someone could point me in the right direction? I am having issues with the second spawn command and not sure where to look next. Option Explicit Dim HyperVServer Dim VMName Dim WMIService Dim VSManagementService Dim VSGlobalSettingData Dim Result Dim Job Dim InParam Dim OutParam 'Prompt for the Hyper-V Server to use HyperVServer = InputBox("Specify the Hyper-V Server to create the virtual machine on:") 'Prompt for the new VM name VMName = InputBox("Specify the name for the new virtual machine:") 'Get an instance of the WMI Service in the virtualization namespace. Set WMIService = GetObject("winmgmts:\\" & HyperVServer & "\root\virtualization") 'Get the VirtualSystemManagementService object Set VSManagementService = WMIService.ExecQuery("SELECT * FROM Msvm_VirtualSystemManagementService").ItemIndex(0) ' Initialize a new global settings for the VM Set VSGlobalSettingData = WMIService.Get("Msvm_VirtualSystemGlobalSettingData").SpawnInstance_() 'Set the VM name VSGlobalSettingData.ElementName = VMName 'Setup the input parameter list Set InParam = VSManagementService.Methods_("DefineVirtualSystem").InParameters.SpawnInstance_() InParam.SystemSettingData = VSGlobalSettingData.GetText_(1) 'Execute the method and store the results in OutParam Set OutParam = VSManagementService.ExecMethod_("DefineVirtualSystem", InParam) 'Check to see if the job completed synchronously if (OutParam.ReturnValue = 0) then Wscript.Echo "Virtual machine created." elseif (OutParam.ReturnValue <> 4096) then Wscript.Echo "Failed to create virtual machine" else 'Get the job object set Job = WMIService.Get(OutParam.Job) 'Wait for the job to complete (3 == starting, 4 == running) while (Job.JobState = 3) or (Job.JobState = 4) Wscript.Echo Job.PercentComplete WScript.Sleep(1000) 'Refresh the job object set Job = WMIService.Get(OutParam.Job) Wend 'Provide details if the job fails (7 == complete) if (Job.JobState <> 7) then Wscript.Echo "Failed to create virtual machine" Wscript.Echo "ErrorCode:" & Job.ErrorCode Wscript.Echo "ErrorDescription:" & Job.ErrorDescription else Wscript.Echo "Virtual machine created." end If end if Edited September 14, 2011 by coffeysm
Beege Posted September 14, 2011 Posted September 14, 2011 Is this a vbscript? Assembly Code: fasmg . fasm . BmpSearch . Au3 Syntax Highlighter . Bounce Multithreading Example . IDispatchASMUDFs: Explorer Frame . ITaskBarList . Scrolling Line Graph . Tray Icon Bar Graph . Explorer Listview . Wiimote . WinSnap . Flicker Free Labels . iTunesPrograms: Ftp Explorer . Snipster . Network Meter . Resistance Calculator
water Posted September 14, 2011 Posted September 14, 2011 What do you mean by "I am having issues with the second spawn command"? I assume you have converted this VBScript example to AutoIt and now get an error when running the script. What error messages do you get? My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
coffeysm Posted September 14, 2011 Author Posted September 14, 2011 Is this a vbscript? Yes, the original is VBScript and I am trying to get it to work under AutoIT.
coffeysm Posted September 14, 2011 Author Posted September 14, 2011 What do you mean by "I am having issues with the second spawn command"?I assume you have converted this VBScript example to AutoIt and now get an error when running the script. What error messages do you get? Yea, I have it running upto here: Set InParam = VSManagementService.Methods_("DefineVirtualSystem").InParameters.SpawnInstance_()I get an error about invalid object or something it's an WMI method. This is what I have in AutoIT so far: $objWMI = ObjGet("winmgmts:\\localhost\root\virtualization")$VSManagementService = $ObjWMI.ExecQuery("SELECT * FROM Msvm_VirtualSystemManagementService", "WQL", 0x10 + 0x20)$VSGlobalSettingData = $ObjWMI.Get("Msvm_VirtualSystemGlobalSettingData").SpawnInstance_()$VSGlobalSettingData.ElementName = "Test3" $InParam = $VSManagementService.Methods_("DefineVirtualSystem").inParameters.SpawnInstance_() ; This is the line I am having issues with$InParam.SystemSettingData = $VSGlobalSettingData.GetText_(1)Msgbox(0,"test",$VSGlobalSettingData.GetText_(1))
water Posted September 14, 2011 Posted September 14, 2011 What exactly do you mean by "having issues"? Do you get an error message? Do you get wrong results? M My crystal ball seems a bit foggy today. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
coffeysm Posted September 14, 2011 Author Posted September 14, 2011 I get an error saying "Test.au3 (7) => The Requested action with this object has failed."$InParam = $VSManagementService.Methods_("DefineVirtualSystem").inParameters.SpawnInstance_()$InParam = $VSManagementService.Methods_("DefineVirtualSystem")^ERROR
BrewManNH Posted September 14, 2011 Posted September 14, 2011 Is it possible that inParameters should be InParameters? Some times case is important. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
coffeysm Posted September 14, 2011 Author Posted September 14, 2011 I tried that and I get the same error.
BrewManNH Posted September 14, 2011 Posted September 14, 2011 Is your query, in this line $VSManagementService = $ObjWMI.ExecQuery("SELECT * FROM Msvm_VirtualSystemManagementService", "WQL", 0x10 + 0x20), written correctly? I don't deal much with objects, but the syntax is different from the VBScript code above. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
coffeysm Posted September 14, 2011 Author Posted September 14, 2011 I figured it out that's what it was, I forgot to include ItemIndex(0)
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now