| # 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 |
| |