[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Ruby & WMI (win32ole

Nicholas Calvert

6/17/2008 12:31:00 PM

Hi guys,

First off, hello :) New to the community, looks very helpful and active
indeed...

As i say, I am new to Ruby and am trying to port some WMI Powershell
code over â?? I am not having much luck... My goal is to automate Hyper-V
on Windows 2008, as an example at a very simple level in powershell I
can do:

## Define variable for getting VSMS class
$VSMS = get-wmiobject MSVM_VirtualSystemManagementService -namespace
"root\virtualization"
## Then call a method on that class like this. Definevirtualsystem is
the method in question, I call it with no parameters.
$VSMS.definevirtualsystem()

I have tried two libarys in Ruby, win32ole and ruby-wmi. The synatx for
ruby-wmi confused me the most, so can only post a (kind of) working
example with win32ole:

require 'win32ole'
wmi =
WIN32OLE.connect("winmgmts:\\\\localhost\\root\\virtualization:Msvm_VirtualSystemManagementService")
wmi.ExecMethod(DefineVirtualSystem())

... this gives me the following error:
test.rb:4: undefined method `DefineVirtualSystem' for main:Object
(NoMethodError)

Also one of the tricks with WMI is to get the XML output of a class,
change the settings and squirt it back.

Using the previous example, i could do:

$VSMS.psbase.gettext(1)

...to give myself the raw XML. Is there an easy way to do this in Ruby?

Any pointers would be greatly appreciated.

Cheers,

Nick
--
Posted via http://www.ruby-....

1 Answer

Masaki Suketa

6/18/2008 10:49:00 AM

0

Hello,
Nicholas Calvert wrote:
> I have tried two libarys in Ruby, win32ole and ruby-wmi. The synatx for
> ruby-wmi confused me the most, so can only post a (kind of) working
> example with win32ole:
>
> require 'win32ole'
> wmi =
> WIN32OLE.connect("winmgmts:\\\\localhost\\root\\virtualization:Msvm_VirtualSystemManagementService")
> wmi.ExecMethod(DefineVirtualSystem())

I have not used Powershell, so I'm not sure, but
How about the following script?
wmi.ExecMethod('DefineVirtualSystem')

Regards,
Masaki Suketa