55 lines
1.2 KiB
Ruby
55 lines
1.2 KiB
Ruby
# invoke.rb
|
|
|
|
require 'test/unit'
|
|
require 'rexml/document'
|
|
require File.join(File.dirname(__FILE__),'_loadpath')
|
|
require 'openwsman'
|
|
require '_client'
|
|
|
|
class WsmanTest < Test::Unit::TestCase
|
|
def test_client
|
|
client = Client.open
|
|
assert client
|
|
options = Openwsman::ClientOptions.new
|
|
assert options
|
|
options.set_dump_request
|
|
|
|
uri_prefix = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/"
|
|
klass = "Win32_ProcessStartup"
|
|
uri = uri_prefix + klass
|
|
|
|
# instance values
|
|
instance = { "Title" => "Notepad" }
|
|
|
|
data = Openwsman::XmlDoc.new(klass, uri)
|
|
root = data.root
|
|
instance.each do |key,value|
|
|
root.add uri, key, value
|
|
end
|
|
|
|
s = data.to_xml
|
|
|
|
# puts "Creating #{klass} with #{s}"
|
|
#
|
|
# result = client.create( options, uri, s, s.size, "utf-8" )
|
|
# if fault? client, result
|
|
# exit 1
|
|
# end
|
|
|
|
puts "Starting notepad"
|
|
|
|
uri = uri_prefix + "Win32_Process"
|
|
|
|
options.add_selector( "CommandLine", "notepad.exe")
|
|
options.add_selector( "CurrentDirectory", "C:\\" )
|
|
options.add_selector( "ProcessStartupInformation", s )
|
|
|
|
method = "Create"
|
|
# method = "StopService"
|
|
result = client.invoke( options, uri, method )
|
|
fault? client, result
|
|
|
|
end
|
|
end
|
|
|