winrm 2.2.3 → 2.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +1 -1
  3. data/bin/rwinrm +90 -97
  4. data/lib/winrm/connection.rb +84 -86
  5. data/lib/winrm/connection_opts.rb +90 -91
  6. data/lib/winrm/exceptions.rb +14 -2
  7. data/lib/winrm/http/response_handler.rb +127 -96
  8. data/lib/winrm/http/transport.rb +462 -427
  9. data/lib/winrm/http/transport_factory.rb +1 -5
  10. data/lib/winrm/output.rb +1 -2
  11. data/lib/winrm/psrp/fragment.rb +0 -2
  12. data/lib/winrm/psrp/message.rb +128 -130
  13. data/lib/winrm/psrp/message_data/base.rb +0 -2
  14. data/lib/winrm/psrp/message_data/error_record.rb +2 -2
  15. data/lib/winrm/psrp/message_data/pipeline_host_call.rb +0 -2
  16. data/lib/winrm/psrp/message_data/pipeline_output.rb +48 -54
  17. data/lib/winrm/psrp/message_data/pipeline_state.rb +0 -2
  18. data/lib/winrm/psrp/message_data/runspacepool_host_call.rb +0 -2
  19. data/lib/winrm/psrp/message_data/runspacepool_state.rb +0 -2
  20. data/lib/winrm/psrp/message_data/session_capability.rb +0 -2
  21. data/lib/winrm/psrp/message_data.rb +0 -2
  22. data/lib/winrm/psrp/message_defragmenter.rb +2 -2
  23. data/lib/winrm/psrp/message_factory.rb +16 -5
  24. data/lib/winrm/psrp/message_fragmenter.rb +1 -3
  25. data/lib/winrm/psrp/powershell_output_decoder.rb +142 -144
  26. data/lib/winrm/psrp/receive_response_reader.rb +3 -5
  27. data/lib/winrm/psrp/uuid.rb +1 -2
  28. data/lib/winrm/shells/base.rb +7 -4
  29. data/lib/winrm/shells/cmd.rb +63 -65
  30. data/lib/winrm/shells/power_shell.rb +207 -202
  31. data/lib/winrm/shells/retryable.rb +44 -45
  32. data/lib/winrm/shells/shell_factory.rb +0 -2
  33. data/lib/winrm/version.rb +1 -3
  34. data/lib/winrm/wsmv/base.rb +0 -2
  35. data/lib/winrm/wsmv/cleanup_command.rb +1 -2
  36. data/lib/winrm/wsmv/close_shell.rb +1 -2
  37. data/lib/winrm/wsmv/command.rb +2 -3
  38. data/lib/winrm/wsmv/command_output.rb +2 -3
  39. data/lib/winrm/wsmv/command_output_decoder.rb +1 -2
  40. data/lib/winrm/wsmv/configuration.rb +0 -2
  41. data/lib/winrm/wsmv/create_pipeline.rb +0 -2
  42. data/lib/winrm/wsmv/create_shell.rb +2 -6
  43. data/lib/winrm/wsmv/header.rb +213 -215
  44. data/lib/winrm/wsmv/init_runspace_pool.rb +96 -95
  45. data/lib/winrm/wsmv/iso8601_duration.rb +0 -2
  46. data/lib/winrm/wsmv/keep_alive.rb +0 -2
  47. data/lib/winrm/wsmv/receive_response_reader.rb +128 -126
  48. data/lib/winrm/wsmv/send_data.rb +0 -2
  49. data/lib/winrm/wsmv/soap.rb +0 -2
  50. data/lib/winrm/wsmv/wql_pull.rb +54 -56
  51. data/lib/winrm/wsmv/wql_query.rb +98 -99
  52. data/lib/winrm/wsmv/write_stdin.rb +0 -2
  53. data/lib/winrm.rb +3 -5
  54. metadata +81 -135
  55. data/.gitignore +0 -10
  56. data/.rubocop.yml +0 -26
  57. data/.travis.yml +0 -11
  58. data/Gemfile +0 -3
  59. data/Rakefile +0 -34
  60. data/Vagrantfile +0 -6
  61. data/WinrmAppveyor.psm1 +0 -32
  62. data/appveyor.yml +0 -51
  63. data/changelog.md +0 -128
  64. data/preamble +0 -17
  65. data/tests/integration/auth_timeout_spec.rb +0 -18
  66. data/tests/integration/cmd_spec.rb +0 -131
  67. data/tests/integration/config-example.yml +0 -16
  68. data/tests/integration/issue_59_spec.rb +0 -26
  69. data/tests/integration/powershell_spec.rb +0 -165
  70. data/tests/integration/spec_helper.rb +0 -65
  71. data/tests/integration/transport_spec.rb +0 -99
  72. data/tests/integration/wql_spec.rb +0 -34
  73. data/tests/matchers.rb +0 -60
  74. data/tests/spec/configuration_spec.rb +0 -184
  75. data/tests/spec/connection_spec.rb +0 -39
  76. data/tests/spec/exception_spec.rb +0 -50
  77. data/tests/spec/http/transport_factory_spec.rb +0 -68
  78. data/tests/spec/http/transport_spec.rb +0 -44
  79. data/tests/spec/output_spec.rb +0 -127
  80. data/tests/spec/psrp/fragment_spec.rb +0 -62
  81. data/tests/spec/psrp/message_data/base_spec.rb +0 -13
  82. data/tests/spec/psrp/message_data/error_record_spec.rb +0 -41
  83. data/tests/spec/psrp/message_data/pipeline_host_call_spec.rb +0 -25
  84. data/tests/spec/psrp/message_data/pipeline_output_spec.rb +0 -32
  85. data/tests/spec/psrp/message_data/pipeline_state_spec.rb +0 -40
  86. data/tests/spec/psrp/message_data/runspace_pool_host_call_spec.rb +0 -25
  87. data/tests/spec/psrp/message_data/runspacepool_state_spec.rb +0 -16
  88. data/tests/spec/psrp/message_data/session_capability_spec.rb +0 -30
  89. data/tests/spec/psrp/message_data_spec.rb +0 -35
  90. data/tests/spec/psrp/message_defragmenter_spec.rb +0 -47
  91. data/tests/spec/psrp/message_fragmenter_spec.rb +0 -105
  92. data/tests/spec/psrp/powershell_output_decoder_spec.rb +0 -100
  93. data/tests/spec/psrp/psrp_message_spec.rb +0 -70
  94. data/tests/spec/psrp/recieve_response_reader_spec.rb +0 -172
  95. data/tests/spec/psrp/uuid_spec.rb +0 -28
  96. data/tests/spec/response_handler_spec.rb +0 -61
  97. data/tests/spec/shells/base_spec.rb +0 -225
  98. data/tests/spec/shells/cmd_spec.rb +0 -75
  99. data/tests/spec/shells/powershell_spec.rb +0 -175
  100. data/tests/spec/spec_helper.rb +0 -47
  101. data/tests/spec/stubs/clixml/error_record.xml.erb +0 -84
  102. data/tests/spec/stubs/clixml/pipeline_state.xml.erb +0 -88
  103. data/tests/spec/stubs/responses/get_command_output_response.xml.erb +0 -13
  104. data/tests/spec/stubs/responses/get_command_output_response_not_done.xml.erb +0 -10
  105. data/tests/spec/stubs/responses/get_powershell_keepalive_response.xml.erb +0 -10
  106. data/tests/spec/stubs/responses/get_powershell_output_response.xml.erb +0 -12
  107. data/tests/spec/stubs/responses/get_powershell_output_response_not_done.xml.erb +0 -9
  108. data/tests/spec/stubs/responses/open_shell_v1.xml +0 -19
  109. data/tests/spec/stubs/responses/open_shell_v2.xml +0 -20
  110. data/tests/spec/stubs/responses/soap_fault_v1.xml +0 -36
  111. data/tests/spec/stubs/responses/soap_fault_v2.xml +0 -42
  112. data/tests/spec/stubs/responses/wmi_error_v2.xml +0 -41
  113. data/tests/spec/wsmv/cleanup_command_spec.rb +0 -22
  114. data/tests/spec/wsmv/close_shell_spec.rb +0 -17
  115. data/tests/spec/wsmv/command_output_decoder_spec.rb +0 -37
  116. data/tests/spec/wsmv/command_output_spec.rb +0 -45
  117. data/tests/spec/wsmv/command_spec.rb +0 -19
  118. data/tests/spec/wsmv/configuration_spec.rb +0 -17
  119. data/tests/spec/wsmv/create_pipeline_spec.rb +0 -31
  120. data/tests/spec/wsmv/create_shell_spec.rb +0 -38
  121. data/tests/spec/wsmv/init_runspace_pool_spec.rb +0 -36
  122. data/tests/spec/wsmv/keep_alive_spec.rb +0 -21
  123. data/tests/spec/wsmv/receive_response_reader_spec.rb +0 -123
  124. data/tests/spec/wsmv/send_data_spec.rb +0 -30
  125. data/tests/spec/wsmv/wql_query_spec.rb +0 -13
  126. data/tests/spec/wsmv/write_stdin_spec.rb +0 -22
  127. data/winrm.gemspec +0 -47
@@ -1,88 +0,0 @@
1
- <?xml version="1.0"?>
2
- <Obj RefId="0">
3
- <MS>
4
- <I32 N="PipelineState"><%= pipeline_state %></I32>
5
- <Obj N="ExceptionAsErrorRecord" RefId="1">
6
- <TN RefId="0">
7
- <T>System.Management.Automation.ErrorRecord</T>
8
- <T>System.Object</T>
9
- </TN>
10
- <ToString><%= error_message %></ToString>
11
- <MS>
12
- <Obj N="Exception" RefId="2">
13
- <TN RefId="1">
14
- <T>System.Management.Automation.RuntimeException</T>
15
- <T>Microsoft.PowerShell.CoreClr.Stubs.SystemException</T>
16
- <T>System.Exception</T>
17
- <T>System.Object</T>
18
- </TN>
19
- <ToString>System.Management.Automation.RuntimeException: <%= error_message %></ToString>
20
- <Props>
21
- <S N="ErrorRecord"><%= error_message %></S>
22
- <B N="WasThrownFromThrowStatement">true</B>
23
- <S N="Message"><%= error_message %></S>
24
- <Obj N="Data" RefId="3">
25
- <TN RefId="2">
26
- <T>System.Collections.ListDictionaryInternal</T>
27
- <T>System.Object</T>
28
- </TN>
29
- <DCT />
30
- </Obj>
31
- <Nil N="InnerException" />
32
- <Nil N="StackTrace" />
33
- <Nil N="HelpLink" />
34
- <Nil N="Source" />
35
- <I32 N="HResult">-2146233088</I32>
36
- </Props>
37
- </Obj>
38
- <S N="TargetObject"><%= error_message %></S>
39
- <S N="FullyQualifiedErrorId"><%= error_id %></S>
40
- <Obj N="InvocationInfo" RefId="4">
41
- <TN RefId="3">
42
- <T>System.Management.Automation.InvocationInfo</T>
43
- <T>System.Object</T>
44
- </TN>
45
- <ToString>System.Management.Automation.InvocationInfo</ToString>
46
- <Props>
47
- <Nil N="MyCommand" />
48
- <Obj N="BoundParameters" RefId="5">
49
- <TN RefId="4">
50
- <T>System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]</T>
51
- <T>System.Object</T>
52
- </TN>
53
- <DCT />
54
- </Obj>
55
- <Obj N="UnboundArguments" RefId="6">
56
- <TN RefId="5">
57
- <T>System.Collections.Generic.List`1[[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]</T>
58
- <T>System.Object</T>
59
- </TN>
60
- <LST />
61
- </Obj>
62
- <I32 N="ScriptLineNumber">1</I32>
63
- <I32 N="OffsetInLine">1</I32>
64
- <I64 N="HistoryId">-1</I64>
65
- <S N="ScriptName"></S>
66
- <S N="Line">throw '<%= error_message %>'</S>
67
- <S N="PositionMessage">At line:1 char:1_x000D__x000A_+ throw '<%= error_message %>'_x000D__x000A_+ ~~~~~~~~~~~~~~~~~~~~~~~~</S>
68
- <S N="PSScriptRoot"></S>
69
- <Nil N="PSCommandPath" />
70
- <S N="InvocationName"></S>
71
- <I32 N="PipelineLength">0</I32>
72
- <I32 N="PipelinePosition">0</I32>
73
- <B N="ExpectingInput">false</B>
74
- <S N="CommandOrigin">Internal</S>
75
- <Nil N="DisplayScriptPosition" />
76
- </Props>
77
- </Obj>
78
- <I32 N="ErrorCategory_Category">14</I32>
79
- <S N="ErrorCategory_Activity"></S>
80
- <S N="ErrorCategory_Reason">RuntimeException</S>
81
- <S N="ErrorCategory_TargetName"><%= error_message %></S><S N="ErrorCategory_TargetType">String</S>
82
- <S N="ErrorCategory_Message"><%= category_message %></S>
83
- <B N="SerializeExtendedInfo">false</B>
84
- <S N="ErrorDetails_ScriptStackTrace">at &lt;ScriptBlock&gt;, &lt;No file&gt;: line 1</S>
85
- </MS>
86
- </Obj>
87
- </MS>
88
- </Obj>
@@ -1,13 +0,0 @@
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,10 +0,0 @@
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:ReceiveResponse>
9
- </s:Body>
10
- </s:Envelope>
@@ -1,10 +0,0 @@
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 Name='stdout'><%= test_data_stdout1 %></rsp:Stream>
7
- <rsp:Stream Name='stdout'><%= test_data_stdout2 %></rsp:Stream>
8
- </rsp:ReceiveResponse>
9
- </s:Body>
10
- </s:Envelope>
@@ -1,12 +0,0 @@
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:CommandState CommandId='<%= command_id %>' State='http://schemas.microsoft.com/wbem/wsman/1/windows/shell/CommandState/Done'>
8
- <rsp:ExitCode>0</rsp:ExitCode>
9
- </rsp:CommandState>
10
- </rsp:ReceiveResponse>
11
- </s:Body>
12
- </s:Envelope>
@@ -1,9 +0,0 @@
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:ReceiveResponse>
8
- </s:Body>
9
- </s:Envelope>
@@ -1,19 +0,0 @@
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 +0,0 @@
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 +0,0 @@
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 +0,0 @@
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 +0,0 @@
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,22 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'winrm/wsmv/cleanup_command'
4
-
5
- describe WinRM::WSMV::CleanupCommand do
6
- context 'default session options' do
7
- let(:cmd_opts) do
8
- {
9
- shell_id: 'F4A2622B-B842-4EB8-8A78-0225C8A993DF',
10
- command_id: 'A2A2622B-B842-4EB8-8A78-0225C8A993DF'
11
- }
12
- end
13
- subject { described_class.new(default_connection_opts, cmd_opts) }
14
- let(:xml) { subject.build }
15
- it 'creates a well formed message' do
16
- expect(xml).to include('<w:OperationTimeout>PT60S</w:OperationTimeout>')
17
- expect(xml).to include('<rsp:Signal CommandId="A2A2622B-B842-4EB8-8A78-0225C8A993DF">' \
18
- '<rsp:Code>http://schemas.microsoft.com/wbem/wsman/1/windows/shell/signal/terminate' \
19
- '</rsp:Code></rsp:Signal>')
20
- end
21
- end
22
- end
@@ -1,17 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'winrm/wsmv/close_shell'
4
-
5
- describe WinRM::WSMV::CloseShell do
6
- context 'default session options' do
7
- subject do
8
- described_class.new(default_connection_opts, shell_id: 'F4A2622B-B842-4EB8-8A78-0225C8A993DF')
9
- end
10
- let(:xml) { subject.build }
11
- it 'creates a well formed message' do
12
- expect(xml).to include('<w:OperationTimeout>PT60S</w:OperationTimeout>')
13
- expect(xml).to include('<a:Action mustUnderstand="true">' \
14
- 'http://schemas.xmlsoap.org/ws/2004/09/transfer/Delete</a:Action>')
15
- end
16
- end
17
- end
@@ -1,37 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'winrm/wsmv/command_output_decoder'
4
-
5
- describe WinRM::WSMV::CommandOutputDecoder do
6
- let(:raw_output_with_bom) do
7
- '77u/' \
8
- 'ICAgQ29ubmVjdGlvbi1zcGVjaWZpYyBETlMgU3VmZml4ICAuIDogDQogICBMaW5rLWxvY2FsIElQdjYgQWRkcmVzcyA' \
9
- 'uIC4gLiAuIC4gOiBmZTgwOjo5MTFkOjE2OTQ6NTcwNDo1YjI5JTEyDQogICBJUHY0IEFkZHJlc3MuIC4gLiAuIC4gLi' \
10
- 'AuIC4gLiAuIC4gOiAxMC4wLjIuMTUNCiAgIFN1Ym5ldCBNYXNrIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA6IDI1NS4yN' \
11
- 'TUuMjU1LjANCiAgIERlZmF1bHQgR2F0ZXdheSAuIC4gLiAuIC4gLiAuIC4gLiA6IDEwLjAuMi4yDQoNClR1bm5lbCBh' \
12
- 'ZGFwdGVyIGlzYXRhcC57RjBENTY2RDgtNzlCMS00QUYwLUJENUQtMkM5RkVEOEI3MTE3fToNCg0KICAgTWVkaWEgU3R' \
13
- 'hdGUgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDogTWVkaWEgZGlzY29ubmVjdGVkDQogICBDb25uZWN0aW9uLXNwZWNpZm' \
14
- 'ljIEROUyBTdWZmaXggIC4gOiANCg0KVHVubmVsIGFkYXB0ZXIgVGVyZWRvIFR1bm5lbGluZyBQc2V1ZG8tSW50ZXJmY' \
15
- 'WNlOg0KDQogICBDb25uZWN0aW9uLXNwZWNpZmljIEROUyBTdWZmaXggIC4gOiANCiAgIElQdjYgQWRkcmVzcy4gLiAu' \
16
- 'IC4gLiAuIC4gLiAuIC4gLiA6IDIwMDE6MDo5ZDM4OjZhYmQ6NGJiOjI4YjU6ZjVmZjpmZGYwDQogICBMaW5rLWxvY2F' \
17
- 'sIElQdjYgQWRkcmVzcyAuIC4gLiAuIC4gOiBmZTgwOjo0YmI6MjhiNTpmNWZmOmZkZjAlMTQNCiAgIERlZmF1bHQgR2' \
18
- 'F0ZXdheSAuIC4gLiAuIC4gLiAuIC4gLiA6IDo6DQo='
19
- end
20
- let(:expected) do
21
- " Connection-specific DNS Suffix . : \r\n Link-local IPv6 Address . . . . . : fe80::911" \
22
- "d:1694:5704:5b29%12\r\n IPv4 Address. . . . . . . . . . . : 10.0.2.15\r\n Subnet Mask ." \
23
- " . . . . . . . . . . : 255.255.255.0\r\n Default Gateway . . . . . . . . . : 10.0.2.2\r\n" \
24
- "\r\nTunnel adapter isatap.{F0D566D8-79B1-4AF0-BD5D-2C9FED8B7117}:\r\n\r\n Media State . ." \
25
- " . . . . . . . . . : Media disconnected\r\n Connection-specific DNS Suffix . : \r\n\r\nT" \
26
- "unnel adapter Teredo Tunneling Pseudo-Interface:\r\n\r\n Connection-specific DNS Suffix " \
27
- ". : \r\n IPv6 Address. . . . . . . . . . . : 2001:0:9d38:6abd:4bb:28b5:f5ff:fdf0\r\n Li" \
28
- "nk-local IPv6 Address . . . . . : fe80::4bb:28b5:f5ff:fdf0%14\r\n Default Gateway . . . ." \
29
- " . . . . . : ::\r\n"
30
- end
31
- subject { described_class.new }
32
- context 'valid UTF-8 raw output' do
33
- it 'decodes' do
34
- expect(subject.decode(raw_output_with_bom)).to eq(expected)
35
- end
36
- end
37
- end
@@ -1,45 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'winrm/wsmv/command_output'
4
- require 'winrm/wsmv/header'
5
-
6
- describe WinRM::WSMV::CommandOutput do
7
- context 'default session options' do
8
- let(:cmd_out_opts) do
9
- {
10
- shell_id: 'F4A2622B-B842-4EB8-8A78-0225C8A993DF',
11
- command_id: 'A2A2622B-B842-4EB8-8A78-0225C8A993DF'
12
- }
13
- end
14
- subject { described_class.new(default_connection_opts, cmd_out_opts) }
15
- let(:xml) { subject.build }
16
- it 'creates a well formed message' do
17
- expect(xml).to include('<w:OperationTimeout>PT60S</w:OperationTimeout>')
18
- expect(xml).to include('<w:Option Name="WSMAN_CMDSHELL_OPTION_KEEPALIVE">TRUE</w:Option>')
19
- expect(xml).to include('w:ResourceURI mustUnderstand="true">' \
20
- 'http://schemas.microsoft.com/wbem/wsman/1/windows/shell/cmd</w:ResourceURI>')
21
- expect(xml).to include('<rsp:DesiredStream ' \
22
- 'CommandId="A2A2622B-B842-4EB8-8A78-0225C8A993DF">stdout stderr</rsp:DesiredStream>')
23
- end
24
- end
25
- context 'powershell' do
26
- let(:cmd_out_opts) do
27
- {
28
- shell_id: 'F4A2622B-B842-4EB8-8A78-0225C8A993DF',
29
- command_id: 'A2A2622B-B842-4EB8-8A78-0225C8A993DF',
30
- shell_uri: WinRM::WSMV::Header::RESOURCE_URI_POWERSHELL,
31
- out_streams: %w(stdout)
32
- }
33
- end
34
- subject { described_class.new(default_connection_opts, cmd_out_opts) }
35
- let(:xml) { subject.build }
36
- it 'creates a well formed message' do
37
- expect(xml).to include('<w:OperationTimeout>PT60S</w:OperationTimeout>')
38
- expect(xml).to include('<w:Option Name="WSMAN_CMDSHELL_OPTION_KEEPALIVE">TRUE</w:Option>')
39
- expect(xml).to include('w:ResourceURI mustUnderstand="true">' \
40
- 'http://schemas.microsoft.com/powershell/Microsoft.PowerShell</w:ResourceURI>')
41
- expect(xml).to include('<rsp:DesiredStream ' \
42
- 'CommandId="A2A2622B-B842-4EB8-8A78-0225C8A993DF">stdout</rsp:DesiredStream>')
43
- end
44
- end
45
- end
@@ -1,19 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'winrm/wsmv/command'
4
-
5
- describe WinRM::WSMV::Command do
6
- context 'default session options' do
7
- let(:cmd_opts) do
8
- {
9
- shell_id: 'D5A2622B-B842-4EB8-8A78-0225C8A993DF',
10
- command: 'ipconfig'
11
- }
12
- end
13
- subject { described_class.new(default_connection_opts, cmd_opts) }
14
- let(:xml) { subject.build }
15
- it 'creates a well formed message' do
16
- expect(xml).to include('<w:OperationTimeout>PT60S</w:OperationTimeout>')
17
- end
18
- end
19
- end
@@ -1,17 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'winrm/wsmv/configuration'
4
-
5
- describe WinRM::WSMV::Configuration do
6
- subject do
7
- described_class.new(default_connection_opts)
8
- end
9
- let(:xml) { subject.build }
10
- it 'creates a well formed message' do
11
- expect(xml).to include('<w:OperationTimeout>PT60S</w:OperationTimeout>')
12
- expect(xml).to include('<a:Action mustUnderstand="true">' \
13
- 'http://schemas.xmlsoap.org/ws/2004/09/transfer/Get</a:Action>')
14
- expect(xml).to include('w:ResourceURI mustUnderstand="true">' \
15
- 'http://schemas.microsoft.com/wbem/wsman/1/config</w:ResourceURI>')
16
- end
17
- end
@@ -1,31 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'winrm/wsmv/create_pipeline'
4
-
5
- describe WinRM::WSMV::CreatePipeline do
6
- context 'default session options' do
7
- let(:shell_id) { 'D5A2622B-B842-4EB8-8A78-0225C8A993DF' }
8
- let(:command_id) { 'D5A2622B-B842-4EB8-8A78-0225C8A993DF' }
9
- let(:fragment) { WinRM::PSRP::Fragment.new(0, [1, 2, 3]) }
10
- let(:pipeline) { Base64.strict_encode64(fragment.bytes.pack('C*')) }
11
-
12
- subject do
13
- WinRM::WSMV::CreatePipeline.new(
14
- default_connection_opts,
15
- shell_id,
16
- command_id,
17
- fragment
18
- )
19
- end
20
- let(:xml) { subject.build }
21
- it 'creates a well formed message' do
22
- expect(xml).to include('<w:OperationTimeout>PT60S</w:OperationTimeout>')
23
- expect(xml).to include(
24
- '<w:SelectorSet><w:Selector Name="ShellId">' \
25
- "#{shell_id}</w:Selector></w:SelectorSet>")
26
- expect(xml).to include("<rsp:CommandLine CommandId=\"#{command_id}\">")
27
- expect(xml).to include('<rsp:Command>Invoke-Expression</rsp:Command>')
28
- expect(xml).to include("<rsp:Arguments>#{pipeline}</rsp:Arguments>")
29
- end
30
- end
31
- end
@@ -1,38 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'winrm/wsmv/create_shell'
4
-
5
- describe WinRM::WSMV::CreateShell do
6
- context 'default session options' do
7
- subject { described_class.new(default_connection_opts) }
8
- let(:xml) { subject.build }
9
- it 'creates a well formed message' do
10
- expect(xml).to include('<w:OperationTimeout>PT60S</w:OperationTimeout>')
11
- expect(xml).to include('<w:Locale xml:lang="en-US" mustUnderstand="false"/>')
12
- expect(xml).to include('<p:DataLocale xml:lang="en-US" mustUnderstand="false"/>')
13
- expect(xml).to include(
14
- '<p:SessionId mustUnderstand="false">' \
15
- 'uuid:05A2622B-B842-4EB8-8A78-0225C8A993DF</p:SessionId>')
16
- expect(xml).to include('<w:MaxEnvelopeSize mustUnderstand="true">153600</w:MaxEnvelopeSize>')
17
- expect(xml).to include('<a:To>http://localhost:5985/wsman</a:To>')
18
- expect(xml).to include('<rsp:InputStreams>stdin</rsp:InputStreams>')
19
- expect(xml).to include('<rsp:OutputStreams>stdout stderr</rsp:OutputStreams>')
20
- expect(xml).to include(
21
- '<w:ResourceURI mustUnderstand="true">' \
22
- 'http://schemas.microsoft.com/wbem/wsman/1/windows/shell/cmd</w:ResourceURI>')
23
- end
24
- context 'shell options w/env vars' do
25
- let(:shell_opts) do
26
- {
27
- env_vars: { 'FOO' => 'BAR' }
28
- }
29
- end
30
- subject { described_class.new(default_connection_opts, shell_opts) }
31
- let(:xml) { subject.build }
32
- it 'includes environemt vars' do
33
- expect(xml).to include(
34
- '<rsp:Environment><rsp:Variable Name="FOO">BAR</rsp:Variable></rsp:Environment>')
35
- end
36
- end
37
- end
38
- end
@@ -1,36 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'winrm/wsmv/init_runspace_pool'
4
-
5
- describe WinRM::WSMV::InitRunspacePool do
6
- context 'default session options' do
7
- let(:shell_id) { SecureRandom.uuid.to_s.upcase }
8
- let(:payload) { 'blah'.bytes }
9
-
10
- subject { described_class.new(default_connection_opts, shell_id, payload) }
11
-
12
- it 'creates a well formed message' do
13
- xml = subject.build
14
- expect(xml).to include('<w:OperationTimeout>PT60S</w:OperationTimeout>')
15
- expect(xml).to include('<w:Locale xml:lang="en-US" mustUnderstand="false"/>')
16
- expect(xml).to include('<p:DataLocale xml:lang="en-US" mustUnderstand="false"/>')
17
- expect(xml).to include(
18
- '<p:SessionId mustUnderstand="false">' \
19
- 'uuid:05A2622B-B842-4EB8-8A78-0225C8A993DF</p:SessionId>')
20
- expect(xml).to include('<w:MaxEnvelopeSize mustUnderstand="true">153600</w:MaxEnvelopeSize>')
21
- expect(xml).to include('<a:To>http://localhost:5985/wsman</a:To>')
22
- expect(xml).to include(
23
- '<w:OptionSet env:mustUnderstand="true">' \
24
- '<w:Option Name="protocolversion" MustComply="true">2.3</w:Option></w:OptionSet>')
25
- expect(xml).to include('<rsp:InputStreams>stdin pr</rsp:InputStreams>')
26
- expect(xml).to include('<rsp:OutputStreams>stdout</rsp:OutputStreams>')
27
- expect(xml).to include("<rsp:Shell ShellId=\"#{subject.shell_id}\">")
28
- expect(xml).to include(
29
- '<w:ResourceURI mustUnderstand="true">' \
30
- 'http://schemas.microsoft.com/powershell/Microsoft.PowerShell')
31
- expect(xml).to include(
32
- '<creationXml xmlns="http://schemas.microsoft.com/powershell">' \
33
- "#{Base64.strict_encode64(payload.pack('C*'))}</creationXml>")
34
- end
35
- end
36
- end
@@ -1,21 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'winrm/wsmv/keep_alive'
4
-
5
- describe WinRM::WSMV::KeepAlive do
6
- context 'default session options' do
7
- let(:shell_id) { 'F4A2622B-B842-4EB8-8A78-0225C8A993DF' }
8
- subject { described_class.new(default_connection_opts, shell_id) }
9
- let(:xml) { subject.build }
10
- it 'creates a well formed message' do
11
- expect(xml).to include('<w:OperationTimeout>PT60S</w:OperationTimeout>')
12
- expect(xml).to include(
13
- '<w:OptionSet><w:Option Name="WSMAN_CMDSHELL_OPTION_KEEPALIVE">' \
14
- 'TRUE</w:Option></w:OptionSet>')
15
- expect(xml).to include(
16
- '<w:SelectorSet><w:Selector Name="ShellId">' \
17
- "#{shell_id}</w:Selector></w:SelectorSet>")
18
- expect(xml).to include('<rsp:DesiredStream>stdout</rsp:DesiredStream>')
19
- end
20
- end
21
- end