winrm 1.7.2 → 1.7.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +10 -10
  3. data/.rspec +3 -3
  4. data/.rubocop.yml +10 -0
  5. data/.travis.yml +12 -12
  6. data/Gemfile +9 -9
  7. data/LICENSE +202 -202
  8. data/README.md +194 -194
  9. data/Rakefile +36 -36
  10. data/Vagrantfile +9 -9
  11. data/appveyor.yml +42 -42
  12. data/bin/rwinrm +97 -97
  13. data/changelog.md +3 -0
  14. data/lib/winrm.rb +42 -42
  15. data/lib/winrm/command_executor.rb +15 -0
  16. data/lib/winrm/command_output_decoder.rb +53 -53
  17. data/lib/winrm/exceptions/exceptions.rb +57 -57
  18. data/lib/winrm/helpers/iso8601_duration.rb +58 -58
  19. data/lib/winrm/helpers/powershell_script.rb +42 -42
  20. data/lib/winrm/http/response_handler.rb +82 -82
  21. data/lib/winrm/http/transport.rb +3 -3
  22. data/lib/winrm/output.rb +43 -43
  23. data/lib/winrm/soap_provider.rb +39 -39
  24. data/lib/winrm/version.rb +1 -1
  25. data/lib/winrm/winrm_service.rb +547 -547
  26. data/preamble +17 -17
  27. data/spec/auth_timeout_spec.rb +16 -16
  28. data/spec/cmd_spec.rb +102 -102
  29. data/spec/command_executor_spec.rb +29 -0
  30. data/spec/command_output_decoder_spec.rb +37 -37
  31. data/spec/config-example.yml +19 -19
  32. data/spec/exception_spec.rb +50 -50
  33. data/spec/issue_184_spec.rb +67 -67
  34. data/spec/issue_59_spec.rb +23 -23
  35. data/spec/matchers.rb +74 -74
  36. data/spec/output_spec.rb +110 -110
  37. data/spec/powershell_spec.rb +97 -97
  38. data/spec/response_handler_spec.rb +59 -59
  39. data/spec/spec_helper.rb +73 -73
  40. data/spec/stubs/responses/get_command_output_response.xml.erb +13 -13
  41. data/spec/stubs/responses/open_shell_v1.xml +19 -19
  42. data/spec/stubs/responses/open_shell_v2.xml +20 -20
  43. data/spec/stubs/responses/soap_fault_v1.xml +36 -36
  44. data/spec/stubs/responses/soap_fault_v2.xml +42 -42
  45. data/spec/stubs/responses/wmi_error_v2.xml +41 -41
  46. data/spec/transport_spec.rb +124 -124
  47. data/spec/winrm_options_spec.rb +76 -76
  48. data/spec/winrm_primitives_spec.rb +51 -51
  49. data/spec/wql_spec.rb +14 -14
  50. data/winrm.gemspec +40 -40
  51. metadata +2 -2
@@ -1,13 +1,13 @@
1
- <s:Envelope xmlns:a='http://schemas.xmlsoap.org/ws/2004/08/addressing' xml:lang='en-US' xmlns:p='http://schemas.microsoft.com/wbem/wsman/1/wsman.xsd' xmlns:rsp='http://schemas.microsoft.com/wbem/wsman/1/windows/shell' xmlns:s='http://www.w3.org/2003/05/soap-envelope' xmlns:w='http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd'>
2
- <s:Header>
3
- </s:Header>
4
- <s:Body>
5
- <rsp:ReceiveResponse>
6
- <rsp:Stream CommandId='<%= command_id %>' Name='stdout'><%= test_data_stdout %></rsp:Stream>
7
- <rsp:Stream CommandId='<%= command_id %>' End='true' Name='stderr'><%= test_data_stderr %></rsp:Stream>
8
- <rsp:CommandState CommandId='<%= command_id %>' State='http://schemas.microsoft.com/wbem/wsman/1/windows/shell/CommandState/Done'>
9
- <rsp:ExitCode>0</rsp:ExitCode>
10
- </rsp:CommandState>
11
- </rsp:ReceiveResponse>
12
- </s:Body>
13
- </s:Envelope>
1
+ <s:Envelope xmlns:a='http://schemas.xmlsoap.org/ws/2004/08/addressing' xml:lang='en-US' xmlns:p='http://schemas.microsoft.com/wbem/wsman/1/wsman.xsd' xmlns:rsp='http://schemas.microsoft.com/wbem/wsman/1/windows/shell' xmlns:s='http://www.w3.org/2003/05/soap-envelope' xmlns:w='http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd'>
2
+ <s:Header>
3
+ </s:Header>
4
+ <s:Body>
5
+ <rsp:ReceiveResponse>
6
+ <rsp:Stream CommandId='<%= command_id %>' Name='stdout'><%= test_data_stdout %></rsp:Stream>
7
+ <rsp:Stream CommandId='<%= command_id %>' End='true' Name='stderr'><%= test_data_stderr %></rsp:Stream>
8
+ <rsp:CommandState CommandId='<%= command_id %>' State='http://schemas.microsoft.com/wbem/wsman/1/windows/shell/CommandState/Done'>
9
+ <rsp:ExitCode>0</rsp:ExitCode>
10
+ </rsp:CommandState>
11
+ </rsp:ReceiveResponse>
12
+ </s:Body>
13
+ </s:Envelope>
@@ -1,19 +1,19 @@
1
- <s:Envelope xml:lang='en-US' xmlns:s='http://www.w3.org/2003/05/soap-envelope' xmlns:a='http://schemas.xmlsoap.org/ws/2004/08/addressing' xmlns:w='http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd'>
2
- <s:Header>
3
- <a:Action>http://schemas.xmlsoap.org/ws/2004/09/transfer/CreateResponse</a:Action>
4
- <a:MessageID>uuid:94D35B73-3DD8-428D-9495-7AF3F0559428</a:MessageID>
5
- <a:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:To>
6
- <a:RelatesTo>uuid:EEF803CE-B9A6-48C1-BF00-90C6F077EC2A</a:RelatesTo>
7
- </s:Header>
8
- <s:Body>
9
- <x:ResourceCreated xmlns:w='http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd' xmlns:a='http://schemas.xmlsoap.org/ws/2004/08/addressing' xmlns:x='http://schemas.xmlsoap.org/ws/2004/09/transfer' xmlns:rsp='http://schemas.microsoft.com/wbem/wsman/1/windows/shell'>
10
- <a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address>
11
- <a:ReferenceParameters>
12
- <w:ResourceURI>http://schemas.microsoft.com/wbem/wsman/1/windows/shell/cmd</w:ResourceURI>
13
- <w:SelectorSet>
14
- <w:Selector Name='ShellId'>uuid:739990FF-1492-4CDD-80BB-6E07ADB06D85</w:Selector>
15
- </w:SelectorSet>
16
- </a:ReferenceParameters>
17
- </x:ResourceCreated>
18
- </s:Body>
19
- </s:Envelope>
1
+ <s:Envelope xml:lang='en-US' xmlns:s='http://www.w3.org/2003/05/soap-envelope' xmlns:a='http://schemas.xmlsoap.org/ws/2004/08/addressing' xmlns:w='http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd'>
2
+ <s:Header>
3
+ <a:Action>http://schemas.xmlsoap.org/ws/2004/09/transfer/CreateResponse</a:Action>
4
+ <a:MessageID>uuid:94D35B73-3DD8-428D-9495-7AF3F0559428</a:MessageID>
5
+ <a:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:To>
6
+ <a:RelatesTo>uuid:EEF803CE-B9A6-48C1-BF00-90C6F077EC2A</a:RelatesTo>
7
+ </s:Header>
8
+ <s:Body>
9
+ <x:ResourceCreated xmlns:w='http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd' xmlns:a='http://schemas.xmlsoap.org/ws/2004/08/addressing' xmlns:x='http://schemas.xmlsoap.org/ws/2004/09/transfer' xmlns:rsp='http://schemas.microsoft.com/wbem/wsman/1/windows/shell'>
10
+ <a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address>
11
+ <a:ReferenceParameters>
12
+ <w:ResourceURI>http://schemas.microsoft.com/wbem/wsman/1/windows/shell/cmd</w:ResourceURI>
13
+ <w:SelectorSet>
14
+ <w:Selector Name='ShellId'>uuid:739990FF-1492-4CDD-80BB-6E07ADB06D85</w:Selector>
15
+ </w:SelectorSet>
16
+ </a:ReferenceParameters>
17
+ </x:ResourceCreated>
18
+ </s:Body>
19
+ </s:Envelope>
@@ -1,20 +1,20 @@
1
- <?xml version="1.0"?>
2
- <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:x="http://schemas.xmlsoap.org/ws/2004/09/transfer" xmlns:w="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd" xmlns:rsp="http://schemas.microsoft.com/wbem/wsman/1/windows/shell" xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wsman.xsd" xml:lang="en-US">
3
- <s:Header>
4
- <a:Action>http://schemas.xmlsoap.org/ws/2004/09/transfer/CreateResponse</a:Action>
5
- <a:MessageID>uuid:9FF5B7FE-CC97-4FA4-B51F-E4220C016AE7</a:MessageID>
6
- <a:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:To>
7
- <a:RelatesTo>uuid:EA2A7785-D8E6-4E28-8AD8-FC27156537B3</a:RelatesTo>
8
- </s:Header>
9
- <s:Body>
10
- <x:ResourceCreated>
11
- <a:Address>http://localhost:5985/wsman</a:Address>
12
- <a:ReferenceParameters>
13
- <w:ResourceURI>http://schemas.microsoft.com/wbem/wsman/1/windows/shell/cmd</w:ResourceURI>
14
- <w:SelectorSet>
15
- <w:Selector Name="ShellId">62DE33F0-8674-43D9-B6A5-3298012CC4CD</w:Selector>
16
- </w:SelectorSet>
17
- </a:ReferenceParameters>
18
- </x:ResourceCreated>
19
- </s:Body>
20
- </s:Envelope>
1
+ <?xml version="1.0"?>
2
+ <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:x="http://schemas.xmlsoap.org/ws/2004/09/transfer" xmlns:w="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd" xmlns:rsp="http://schemas.microsoft.com/wbem/wsman/1/windows/shell" xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wsman.xsd" xml:lang="en-US">
3
+ <s:Header>
4
+ <a:Action>http://schemas.xmlsoap.org/ws/2004/09/transfer/CreateResponse</a:Action>
5
+ <a:MessageID>uuid:9FF5B7FE-CC97-4FA4-B51F-E4220C016AE7</a:MessageID>
6
+ <a:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:To>
7
+ <a:RelatesTo>uuid:EA2A7785-D8E6-4E28-8AD8-FC27156537B3</a:RelatesTo>
8
+ </s:Header>
9
+ <s:Body>
10
+ <x:ResourceCreated>
11
+ <a:Address>http://localhost:5985/wsman</a:Address>
12
+ <a:ReferenceParameters>
13
+ <w:ResourceURI>http://schemas.microsoft.com/wbem/wsman/1/windows/shell/cmd</w:ResourceURI>
14
+ <w:SelectorSet>
15
+ <w:Selector Name="ShellId">62DE33F0-8674-43D9-B6A5-3298012CC4CD</w:Selector>
16
+ </w:SelectorSet>
17
+ </a:ReferenceParameters>
18
+ </x:ResourceCreated>
19
+ </s:Body>
20
+ </s:Envelope>
@@ -1,36 +1,36 @@
1
- <s:Envelope xml:lang='en-US' xmlns:s='http://www.w3.org/2003/05/soap-envelope' xmlns:a='http://schemas.xmlsoap.org/ws/2004/08/addressing' xmlns:x='http://schemas.xmlsoap.org/ws/2004/09/transfer' xmlns:e='http://schemas.xmlsoap.org/ws/2004/08/eventing' xmlns:n='http://schemas.xmlsoap.org/ws/2004/09/enumeration' xmlns:w='http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd'>
2
- <s:Header>
3
- <a:Action>http://schemas.xmlsoap.org/ws/2004/09/enumeration/fault</a:Action>
4
- <a:MessageID>uuid:AF8907B2-F47E-4DE5-A4AA-E1EC36EA0E49</a:MessageID>
5
- <a:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:To>
6
- <a:RelatesTo>uuid:B90EC4BB-4484-4ADA-920B-019517747915</a:RelatesTo>
7
- </s:Header>
8
- <s:Body>
9
- <s:Fault>
10
- <s:Code>
11
- <s:Value>s:Sender</s:Value>
12
- <s:Subcode>
13
- <s:Value>n:CannotProcessFilter</s:Value>
14
- </s:Subcode>
15
- </s:Code>
16
- <s:Reason>
17
- <s:Text xml:lang='en-US'>
18
- The data source could not process the filter. The filter might be
19
- missing or it might be invalid. Change the filter and try the request
20
- again.
21
- </s:Text>
22
- </s:Reason>
23
- <s:Detail>
24
- <f:WSManFault xmlns:f='http://schemas.microsoft.com/wbem/wsman/1/wsmanfault' Code='2150858778' Machine=''>
25
- <f:Message>
26
- <f:ProviderFault provider='WMIv1 plugin for Windows Remote Management ' path='%systemroot%\system32\WsmWmiPl.dll'>
27
- <f:WSManFault xmlns:f='http://schemas.microsoft.com/wbem/wsman/1/wsmanfault' Code='2150858778' Machine='' xml:lang='en-US'>
28
- <f:Message>The specified class does not exist in the given namespace. </f:Message>
29
- </f:WSManFault>
30
- </f:ProviderFault>
31
- </f:Message>
32
- </f:WSManFault>
33
- </s:Detail>
34
- </s:Fault>
35
- </s:Body>
36
- </s:Envelope>
1
+ <s:Envelope xml:lang='en-US' xmlns:s='http://www.w3.org/2003/05/soap-envelope' xmlns:a='http://schemas.xmlsoap.org/ws/2004/08/addressing' xmlns:x='http://schemas.xmlsoap.org/ws/2004/09/transfer' xmlns:e='http://schemas.xmlsoap.org/ws/2004/08/eventing' xmlns:n='http://schemas.xmlsoap.org/ws/2004/09/enumeration' xmlns:w='http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd'>
2
+ <s:Header>
3
+ <a:Action>http://schemas.xmlsoap.org/ws/2004/09/enumeration/fault</a:Action>
4
+ <a:MessageID>uuid:AF8907B2-F47E-4DE5-A4AA-E1EC36EA0E49</a:MessageID>
5
+ <a:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:To>
6
+ <a:RelatesTo>uuid:B90EC4BB-4484-4ADA-920B-019517747915</a:RelatesTo>
7
+ </s:Header>
8
+ <s:Body>
9
+ <s:Fault>
10
+ <s:Code>
11
+ <s:Value>s:Sender</s:Value>
12
+ <s:Subcode>
13
+ <s:Value>n:CannotProcessFilter</s:Value>
14
+ </s:Subcode>
15
+ </s:Code>
16
+ <s:Reason>
17
+ <s:Text xml:lang='en-US'>
18
+ The data source could not process the filter. The filter might be
19
+ missing or it might be invalid. Change the filter and try the request
20
+ again.
21
+ </s:Text>
22
+ </s:Reason>
23
+ <s:Detail>
24
+ <f:WSManFault xmlns:f='http://schemas.microsoft.com/wbem/wsman/1/wsmanfault' Code='2150858778' Machine=''>
25
+ <f:Message>
26
+ <f:ProviderFault provider='WMIv1 plugin for Windows Remote Management ' path='%systemroot%\system32\WsmWmiPl.dll'>
27
+ <f:WSManFault xmlns:f='http://schemas.microsoft.com/wbem/wsman/1/wsmanfault' Code='2150858778' Machine='' xml:lang='en-US'>
28
+ <f:Message>The specified class does not exist in the given namespace. </f:Message>
29
+ </f:WSManFault>
30
+ </f:ProviderFault>
31
+ </f:Message>
32
+ </f:WSManFault>
33
+ </s:Detail>
34
+ </s:Fault>
35
+ </s:Body>
36
+ </s:Envelope>
@@ -1,42 +1,42 @@
1
- <?xml version="1.0"?>
2
- <s:Envelope xml:lang="en-US" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:e="http://schemas.xmlsoap.org/ws/2004/08/eventing" xmlns:n="http://schemas.xmlsoap.org/ws/2004/09/enumeration" xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wsman.xsd" xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:w="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd" xmlns:x="http://schemas.xmlsoap.org/ws/2004/09/transfer">
3
- <s:Header>
4
- <a:Action>http://schemas.xmlsoap.org/ws/2004/09/enumeration/fault</a:Action>
5
- <a:MessageID>uuid:CC816664-896D-46C7-9227-AE6E1231CE49</a:MessageID>
6
- <a:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:To>
7
- <a:RelatesTo>uuid:0CB1C49A-5054-4C12-AF30-FC60BE995DD9</a:RelatesTo>
8
- </s:Header>
9
- <s:Body>
10
- <s:Fault>
11
- <s:Code>
12
- <s:Value>s:Sender</s:Value>
13
- <s:Subcode>
14
- <s:Value>n:CannotProcessFilter</s:Value>
15
- </s:Subcode>
16
- </s:Code>
17
- <s:Reason>
18
- <s:Text xml:lang="en-US">The data source could not process the filter. The filter might be missing or it might be invalid. Change the filter and try the request again. </s:Text>
19
- </s:Reason>
20
- <s:Detail>
21
- <f:WSManFault Code="2150858778" Machine="localhost" xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault">
22
- <f:Message>
23
- <f:ProviderFault path="%systemroot%\system32\WsmWmiPl.dll" provider="WMI Provider">
24
- <f:WSManFault Code="2150858778" Machine="vagrant-2008R2" xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault">
25
- <f:Message>The specified class does not exist in the given namespace. </f:Message>
26
- </f:WSManFault>
27
- <f:ExtendedError>
28
- <p:__ExtendedStatus xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/__ExtendedStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="p:__ExtendedStatus_Type">
29
- <p:Description xsi:nil="true"/>
30
- <p:Operation>ExecQuery</p:Operation>
31
- <p:ParameterInfo>Select * from Win32_Processa where name=&quot;sshd.exe&quot;</p:ParameterInfo>
32
- <p:ProviderName>WinMgmt</p:ProviderName>
33
- <p:StatusCode xsi:nil="true"/>
34
- </p:__ExtendedStatus>
35
- </f:ExtendedError>
36
- </f:ProviderFault>
37
- </f:Message>
38
- </f:WSManFault>
39
- </s:Detail>
40
- </s:Fault>
41
- </s:Body>
42
- </s:Envelope>
1
+ <?xml version="1.0"?>
2
+ <s:Envelope xml:lang="en-US" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:e="http://schemas.xmlsoap.org/ws/2004/08/eventing" xmlns:n="http://schemas.xmlsoap.org/ws/2004/09/enumeration" xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wsman.xsd" xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:w="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd" xmlns:x="http://schemas.xmlsoap.org/ws/2004/09/transfer">
3
+ <s:Header>
4
+ <a:Action>http://schemas.xmlsoap.org/ws/2004/09/enumeration/fault</a:Action>
5
+ <a:MessageID>uuid:CC816664-896D-46C7-9227-AE6E1231CE49</a:MessageID>
6
+ <a:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:To>
7
+ <a:RelatesTo>uuid:0CB1C49A-5054-4C12-AF30-FC60BE995DD9</a:RelatesTo>
8
+ </s:Header>
9
+ <s:Body>
10
+ <s:Fault>
11
+ <s:Code>
12
+ <s:Value>s:Sender</s:Value>
13
+ <s:Subcode>
14
+ <s:Value>n:CannotProcessFilter</s:Value>
15
+ </s:Subcode>
16
+ </s:Code>
17
+ <s:Reason>
18
+ <s:Text xml:lang="en-US">The data source could not process the filter. The filter might be missing or it might be invalid. Change the filter and try the request again. </s:Text>
19
+ </s:Reason>
20
+ <s:Detail>
21
+ <f:WSManFault Code="2150858778" Machine="localhost" xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault">
22
+ <f:Message>
23
+ <f:ProviderFault path="%systemroot%\system32\WsmWmiPl.dll" provider="WMI Provider">
24
+ <f:WSManFault Code="2150858778" Machine="vagrant-2008R2" xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault">
25
+ <f:Message>The specified class does not exist in the given namespace. </f:Message>
26
+ </f:WSManFault>
27
+ <f:ExtendedError>
28
+ <p:__ExtendedStatus xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/__ExtendedStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="p:__ExtendedStatus_Type">
29
+ <p:Description xsi:nil="true"/>
30
+ <p:Operation>ExecQuery</p:Operation>
31
+ <p:ParameterInfo>Select * from Win32_Processa where name=&quot;sshd.exe&quot;</p:ParameterInfo>
32
+ <p:ProviderName>WinMgmt</p:ProviderName>
33
+ <p:StatusCode xsi:nil="true"/>
34
+ </p:__ExtendedStatus>
35
+ </f:ExtendedError>
36
+ </f:ProviderFault>
37
+ </f:Message>
38
+ </f:WSManFault>
39
+ </s:Detail>
40
+ </s:Fault>
41
+ </s:Body>
42
+ </s:Envelope>
@@ -1,41 +1,41 @@
1
- <s:Envelope xmlns:a='http://schemas.xmlsoap.org/ws/2004/08/addressing' xmlns:e='http://schemas.xmlsoap.org/ws/2004/08/eventing' xml:lang='en-US' xmlns:n='http://schemas.xmlsoap.org/ws/2004/09/enumeration' xmlns:p='http://schemas.microsoft.com/wbem/wsman/1/wsman.xsd' xmlns:s='http://www.w3.org/2003/05/soap-envelope' xmlns:w='http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd' xmlns:x='http://schemas.xmlsoap.org/ws/2004/09/transfer'>
2
- <s:Header>
3
- <a:Action>http://schemas.dmtf.org/wbem/wsman/1/wsman/fault</a:Action>
4
- <a:MessageID>uuid:B8829021-48C3-4F27-B94B-491DAC4F29B1</a:MessageID>
5
- <a:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:To>
6
- </s:Header>
7
- <s:Body>
8
- <s:Fault>
9
- <s:Code>
10
- <s:Value>s:Sender</s:Value>
11
- <s:Subcode>
12
- <s:Value>w:QuotaLimit</s:Value>
13
- </s:Subcode>
14
- </s:Code>
15
- <s:Reason>
16
- <s:Text xml:lang='en-US'>The WS-Management service cannot process the request. The maximum number of concurrent shells for this user has been exceeded. Close existing shells or raise the quota for this user. </s:Text>
17
- </s:Reason>
18
- <s:Detail>
19
- <p:MSFT_WmiError b:IsCIM_Error='true' xmlns:b='http://schemas.dmtf.org/wbem/wsman/1/cimbinding.xsd' xmlns:cim='http://schemas.dmtf.org/wbem/wscim/1/common' xmlns:p='http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/MSFT_WmiError' xsi:type='p:MSFT_WmiError_Type' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
20
- <p:CIMStatusCode xsi:type='cim:cimUnsignedInt'>27</p:CIMStatusCode>
21
- <p:CIMStatusCodeDescription xsi:nil='true' xsi:type='cim:cimString'/>
22
- <p:ErrorSource xsi:nil='true' xsi:type='cim:cimString'/>
23
- <p:ErrorSourceFormat xsi:type='cim:cimUnsignedShort'>0</p:ErrorSourceFormat>
24
- <p:ErrorType xsi:type='cim:cimUnsignedShort'>0</p:ErrorType>
25
- <p:Message xsi:type='cim:cimString'>The WS-Management service cannot process the request. This user is allowed a maximum number of 30 concurrent shells, which has been exceeded. Close existing shells or raise the quota for this user. </p:Message>
26
- <p:MessageID xsi:type='cim:cimString'>HRESULT 0x803381a5</p:MessageID>
27
- <p:OtherErrorSourceFormat xsi:nil='true' xsi:type='cim:cimString'/>
28
- <p:OtherErrorType xsi:nil='true' xsi:type='cim:cimString'/>
29
- <p:OwningEntity xsi:nil='true' xsi:type='cim:cimString'/>
30
- <p:PerceivedSeverity xsi:type='cim:cimUnsignedShort'>0</p:PerceivedSeverity>
31
- <p:ProbableCause xsi:type='cim:cimUnsignedShort'>0</p:ProbableCause>
32
- <p:ProbableCauseDescription xsi:nil='true' xsi:type='cim:cimString'/>
33
- <p:error_Category xsi:type='cim:cimUnsignedInt'>30</p:error_Category>
34
- <p:error_Code xsi:type='cim:cimUnsignedInt'>2150859173</p:error_Code>
35
- <p:error_Type xsi:type='cim:cimString'>HRESULT</p:error_Type>
36
- <p:error_WindowsErrorMessage xsi:type='cim:cimString'>The WS-Management service cannot process the request. This user is allowed a maximum number of 30 concurrent shells, which has been exceeded. Close existing shells or raise the quota for this user. </p:error_WindowsErrorMessage>
37
- </p:MSFT_WmiError>
38
- </s:Detail>
39
- </s:Fault>
40
- </s:Body>
41
- </s:Envelope>
1
+ <s:Envelope xmlns:a='http://schemas.xmlsoap.org/ws/2004/08/addressing' xmlns:e='http://schemas.xmlsoap.org/ws/2004/08/eventing' xml:lang='en-US' xmlns:n='http://schemas.xmlsoap.org/ws/2004/09/enumeration' xmlns:p='http://schemas.microsoft.com/wbem/wsman/1/wsman.xsd' xmlns:s='http://www.w3.org/2003/05/soap-envelope' xmlns:w='http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd' xmlns:x='http://schemas.xmlsoap.org/ws/2004/09/transfer'>
2
+ <s:Header>
3
+ <a:Action>http://schemas.dmtf.org/wbem/wsman/1/wsman/fault</a:Action>
4
+ <a:MessageID>uuid:B8829021-48C3-4F27-B94B-491DAC4F29B1</a:MessageID>
5
+ <a:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:To>
6
+ </s:Header>
7
+ <s:Body>
8
+ <s:Fault>
9
+ <s:Code>
10
+ <s:Value>s:Sender</s:Value>
11
+ <s:Subcode>
12
+ <s:Value>w:QuotaLimit</s:Value>
13
+ </s:Subcode>
14
+ </s:Code>
15
+ <s:Reason>
16
+ <s:Text xml:lang='en-US'>The WS-Management service cannot process the request. The maximum number of concurrent shells for this user has been exceeded. Close existing shells or raise the quota for this user. </s:Text>
17
+ </s:Reason>
18
+ <s:Detail>
19
+ <p:MSFT_WmiError b:IsCIM_Error='true' xmlns:b='http://schemas.dmtf.org/wbem/wsman/1/cimbinding.xsd' xmlns:cim='http://schemas.dmtf.org/wbem/wscim/1/common' xmlns:p='http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/MSFT_WmiError' xsi:type='p:MSFT_WmiError_Type' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
20
+ <p:CIMStatusCode xsi:type='cim:cimUnsignedInt'>27</p:CIMStatusCode>
21
+ <p:CIMStatusCodeDescription xsi:nil='true' xsi:type='cim:cimString'/>
22
+ <p:ErrorSource xsi:nil='true' xsi:type='cim:cimString'/>
23
+ <p:ErrorSourceFormat xsi:type='cim:cimUnsignedShort'>0</p:ErrorSourceFormat>
24
+ <p:ErrorType xsi:type='cim:cimUnsignedShort'>0</p:ErrorType>
25
+ <p:Message xsi:type='cim:cimString'>The WS-Management service cannot process the request. This user is allowed a maximum number of 30 concurrent shells, which has been exceeded. Close existing shells or raise the quota for this user. </p:Message>
26
+ <p:MessageID xsi:type='cim:cimString'>HRESULT 0x803381a5</p:MessageID>
27
+ <p:OtherErrorSourceFormat xsi:nil='true' xsi:type='cim:cimString'/>
28
+ <p:OtherErrorType xsi:nil='true' xsi:type='cim:cimString'/>
29
+ <p:OwningEntity xsi:nil='true' xsi:type='cim:cimString'/>
30
+ <p:PerceivedSeverity xsi:type='cim:cimUnsignedShort'>0</p:PerceivedSeverity>
31
+ <p:ProbableCause xsi:type='cim:cimUnsignedShort'>0</p:ProbableCause>
32
+ <p:ProbableCauseDescription xsi:nil='true' xsi:type='cim:cimString'/>
33
+ <p:error_Category xsi:type='cim:cimUnsignedInt'>30</p:error_Category>
34
+ <p:error_Code xsi:type='cim:cimUnsignedInt'>2150859173</p:error_Code>
35
+ <p:error_Type xsi:type='cim:cimString'>HRESULT</p:error_Type>
36
+ <p:error_WindowsErrorMessage xsi:type='cim:cimString'>The WS-Management service cannot process the request. This user is allowed a maximum number of 30 concurrent shells, which has been exceeded. Close existing shells or raise the quota for this user. </p:error_WindowsErrorMessage>
37
+ </p:MSFT_WmiError>
38
+ </s:Detail>
39
+ </s:Fault>
40
+ </s:Body>
41
+ </s:Envelope>
@@ -1,124 +1,124 @@
1
- # encoding: UTF-8
2
- require 'rubyntlm'
3
- require 'winrm/http/transport'
4
-
5
- describe WinRM::HTTP::HttpNegotiate, unit: true do
6
- describe '#init' do
7
- let(:endpoint) { 'some_endpoint' }
8
- let(:domain) { 'some_domain' }
9
- let(:user) { 'some_user' }
10
- let(:password) { 'some_password' }
11
- let(:options) { {} }
12
-
13
- context 'user is not domain prefixed' do
14
- it 'does not pass a domain to the NTLM client' do
15
- expect(Net::NTLM::Client).to receive(:new).with(user, password, options)
16
- WinRM::HTTP::HttpNegotiate.new(endpoint, user, password, options)
17
- end
18
- end
19
-
20
- context 'user is domain prefixed' do
21
- it 'passes prefixed domain to the NTLM client' do
22
- expect(Net::NTLM::Client).to receive(:new) do |passed_user, passed_password, passed_options|
23
- expect(passed_user).to eq user
24
- expect(passed_password).to eq password
25
- expect(passed_options[:domain]).to eq domain
26
- end
27
- WinRM::HTTP::HttpNegotiate.new(endpoint, "#{domain}\\#{user}", password, options)
28
- end
29
- end
30
-
31
- context 'option is passed with a domain' do
32
- let(:options) { { domain: domain } }
33
-
34
- it 'passes domain option to the NTLM client' do
35
- expect(Net::NTLM::Client).to receive(:new) do |passed_user, passed_password, passed_options|
36
- expect(passed_user).to eq user
37
- expect(passed_password).to eq password
38
- expect(passed_options[:domain]).to eq domain
39
- end
40
- WinRM::HTTP::HttpNegotiate.new(endpoint, user, password, options)
41
- end
42
- end
43
- end
44
- end
45
-
46
- describe 'WinRM connection', integration: true do
47
- let(:winrm_connection) do
48
- endpoint = config[:endpoint].dup
49
- if auth_type == :ssl
50
- endpoint.sub!('5985', '5986')
51
- endpoint.sub!('http', 'https')
52
- end
53
- winrm = WinRM::WinRMWebService.new(
54
- endpoint, auth_type, options)
55
- winrm.logger.level = :error
56
- winrm
57
- end
58
- let(:options) do
59
- opts = {}
60
- opts[:user] = config[:options][:user]
61
- opts[:pass] = config[:options][:pass]
62
- opts[:basic_auth_only] = basic_auth_only
63
- opts[:no_ssl_peer_verification] = no_ssl_peer_verification
64
- opts[:ssl_peer_fingerprint] = ssl_peer_fingerprint
65
- opts
66
- end
67
- let(:basic_auth_only) { false }
68
- let(:no_ssl_peer_verification) { false }
69
- let(:ssl_peer_fingerprint) { nil }
70
-
71
- subject(:output) do
72
- executor = winrm_connection.create_executor
73
- executor.run_cmd('ipconfig')
74
- end
75
-
76
- shared_examples 'a valid_connection' do
77
- it 'has a 0 exit code' do
78
- expect(subject).to have_exit_code 0
79
- end
80
-
81
- it 'includes command output' do
82
- expect(subject).to have_stdout_match(/Windows IP Configuration/)
83
- end
84
-
85
- it 'has no errors' do
86
- expect(subject).to have_no_stderr
87
- end
88
- end
89
-
90
- context 'HttpPlaintext' do
91
- let(:basic_auth_only) { true }
92
- let(:auth_type) { :plaintext }
93
-
94
- it_behaves_like 'a valid_connection'
95
- end
96
-
97
- context 'HttpNegotiate' do
98
- let(:auth_type) { :negotiate }
99
-
100
- it_behaves_like 'a valid_connection'
101
- end
102
-
103
- context 'BasicAuthSSL', skip: ENV['winrm_cert'].nil? do
104
- let(:basic_auth_only) { true }
105
- let(:auth_type) { :ssl }
106
- let(:no_ssl_peer_verification) { true }
107
-
108
- it_behaves_like 'a valid_connection'
109
- end
110
-
111
- context 'Negotiate over SSL', skip: ENV['winrm_cert'].nil? do
112
- let(:auth_type) { :ssl }
113
- let(:no_ssl_peer_verification) { true }
114
-
115
- it_behaves_like 'a valid_connection'
116
- end
117
-
118
- context 'SSL fingerprint', skip: ENV['winrm_cert'].nil? do
119
- let(:auth_type) { :ssl }
120
- let(:ssl_peer_fingerprint) { ENV['winrm_cert'] }
121
-
122
- it_behaves_like 'a valid_connection'
123
- end
124
- end
1
+ # encoding: UTF-8
2
+ require 'rubyntlm'
3
+ require 'winrm/http/transport'
4
+
5
+ describe WinRM::HTTP::HttpNegotiate, unit: true do
6
+ describe '#init' do
7
+ let(:endpoint) { 'some_endpoint' }
8
+ let(:domain) { 'some_domain' }
9
+ let(:user) { 'some_user' }
10
+ let(:password) { 'some_password' }
11
+ let(:options) { {} }
12
+
13
+ context 'user is not domain prefixed' do
14
+ it 'does not pass a domain to the NTLM client' do
15
+ expect(Net::NTLM::Client).to receive(:new).with(user, password, options)
16
+ WinRM::HTTP::HttpNegotiate.new(endpoint, user, password, options)
17
+ end
18
+ end
19
+
20
+ context 'user is domain prefixed' do
21
+ it 'passes prefixed domain to the NTLM client' do
22
+ expect(Net::NTLM::Client).to receive(:new) do |passed_user, passed_password, passed_options|
23
+ expect(passed_user).to eq user
24
+ expect(passed_password).to eq password
25
+ expect(passed_options[:domain]).to eq domain
26
+ end
27
+ WinRM::HTTP::HttpNegotiate.new(endpoint, "#{domain}\\#{user}", password, options)
28
+ end
29
+ end
30
+
31
+ context 'option is passed with a domain' do
32
+ let(:options) { { domain: domain } }
33
+
34
+ it 'passes domain option to the NTLM client' do
35
+ expect(Net::NTLM::Client).to receive(:new) do |passed_user, passed_password, passed_options|
36
+ expect(passed_user).to eq user
37
+ expect(passed_password).to eq password
38
+ expect(passed_options[:domain]).to eq domain
39
+ end
40
+ WinRM::HTTP::HttpNegotiate.new(endpoint, user, password, options)
41
+ end
42
+ end
43
+ end
44
+ end
45
+
46
+ describe 'WinRM connection', integration: true do
47
+ let(:winrm_connection) do
48
+ endpoint = config[:endpoint].dup
49
+ if auth_type == :ssl
50
+ endpoint.sub!('5985', '5986')
51
+ endpoint.sub!('http', 'https')
52
+ end
53
+ winrm = WinRM::WinRMWebService.new(
54
+ endpoint, auth_type, options)
55
+ winrm.logger.level = :error
56
+ winrm
57
+ end
58
+ let(:options) do
59
+ opts = {}
60
+ opts[:user] = config[:options][:user]
61
+ opts[:pass] = config[:options][:pass]
62
+ opts[:basic_auth_only] = basic_auth_only
63
+ opts[:no_ssl_peer_verification] = no_ssl_peer_verification
64
+ opts[:ssl_peer_fingerprint] = ssl_peer_fingerprint
65
+ opts
66
+ end
67
+ let(:basic_auth_only) { false }
68
+ let(:no_ssl_peer_verification) { false }
69
+ let(:ssl_peer_fingerprint) { nil }
70
+
71
+ subject(:output) do
72
+ executor = winrm_connection.create_executor
73
+ executor.run_cmd('ipconfig')
74
+ end
75
+
76
+ shared_examples 'a valid_connection' do
77
+ it 'has a 0 exit code' do
78
+ expect(subject).to have_exit_code 0
79
+ end
80
+
81
+ it 'includes command output' do
82
+ expect(subject).to have_stdout_match(/Windows IP Configuration/)
83
+ end
84
+
85
+ it 'has no errors' do
86
+ expect(subject).to have_no_stderr
87
+ end
88
+ end
89
+
90
+ context 'HttpPlaintext' do
91
+ let(:basic_auth_only) { true }
92
+ let(:auth_type) { :plaintext }
93
+
94
+ it_behaves_like 'a valid_connection'
95
+ end
96
+
97
+ context 'HttpNegotiate' do
98
+ let(:auth_type) { :negotiate }
99
+
100
+ it_behaves_like 'a valid_connection'
101
+ end
102
+
103
+ context 'BasicAuthSSL', skip: ENV['winrm_cert'].nil? do
104
+ let(:basic_auth_only) { true }
105
+ let(:auth_type) { :ssl }
106
+ let(:no_ssl_peer_verification) { true }
107
+
108
+ it_behaves_like 'a valid_connection'
109
+ end
110
+
111
+ context 'Negotiate over SSL', skip: ENV['winrm_cert'].nil? do
112
+ let(:auth_type) { :ssl }
113
+ let(:no_ssl_peer_verification) { true }
114
+
115
+ it_behaves_like 'a valid_connection'
116
+ end
117
+
118
+ context 'SSL fingerprint', skip: ENV['winrm_cert'].nil? do
119
+ let(:auth_type) { :ssl }
120
+ let(:ssl_peer_fingerprint) { ENV['winrm_cert'] }
121
+
122
+ it_behaves_like 'a valid_connection'
123
+ end
124
+ end