winrm 2.0.3 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +10 -10
  3. data/.rubocop.yml +26 -26
  4. data/.travis.yml +11 -11
  5. data/Gemfile +3 -3
  6. data/README.md +260 -233
  7. data/Rakefile +34 -34
  8. data/Vagrantfile +6 -6
  9. data/WinrmAppveyor.psm1 +31 -31
  10. data/appveyor.yml +51 -51
  11. data/changelog.md +104 -101
  12. data/lib/winrm.rb +39 -39
  13. data/lib/winrm/connection.rb +83 -82
  14. data/lib/winrm/connection_opts.rb +91 -91
  15. data/lib/winrm/exceptions.rb +76 -76
  16. data/lib/winrm/http/response_handler.rb +96 -96
  17. data/lib/winrm/http/transport.rb +424 -424
  18. data/lib/winrm/http/transport_factory.rb +68 -68
  19. data/lib/winrm/output.rb +59 -59
  20. data/lib/winrm/psrp/create_pipeline.xml.erb +167 -167
  21. data/lib/winrm/psrp/fragment.rb +70 -70
  22. data/lib/winrm/psrp/init_runspace_pool.xml.erb +224 -224
  23. data/lib/winrm/psrp/message.rb +130 -130
  24. data/lib/winrm/psrp/message_data.rb +42 -42
  25. data/lib/winrm/psrp/message_data/base.rb +49 -49
  26. data/lib/winrm/psrp/message_data/error_record.rb +68 -68
  27. data/lib/winrm/psrp/message_data/pipeline_host_call.rb +32 -32
  28. data/lib/winrm/psrp/message_data/pipeline_output.rb +49 -49
  29. data/lib/winrm/psrp/message_data/pipeline_state.rb +40 -40
  30. data/lib/winrm/psrp/message_data/runspacepool_host_call.rb +32 -32
  31. data/lib/winrm/psrp/message_data/runspacepool_state.rb +39 -39
  32. data/lib/winrm/psrp/message_data/session_capability.rb +36 -36
  33. data/lib/winrm/psrp/message_defragmenter.rb +62 -62
  34. data/lib/winrm/psrp/message_factory.rb +75 -75
  35. data/lib/winrm/psrp/message_fragmenter.rb +60 -60
  36. data/lib/winrm/psrp/powershell_output_decoder.rb +139 -139
  37. data/lib/winrm/psrp/receive_response_reader.rb +97 -97
  38. data/lib/winrm/psrp/session_capability.xml.erb +7 -7
  39. data/lib/winrm/psrp/uuid.rb +40 -40
  40. data/lib/winrm/shells/base.rb +180 -175
  41. data/lib/winrm/shells/cmd.rb +65 -65
  42. data/lib/winrm/shells/power_shell.rb +202 -202
  43. data/lib/winrm/shells/retryable.rb +45 -45
  44. data/lib/winrm/shells/shell_factory.rb +58 -50
  45. data/lib/winrm/version.rb +7 -7
  46. data/lib/winrm/wsmv/base.rb +59 -59
  47. data/lib/winrm/wsmv/cleanup_command.rb +61 -61
  48. data/lib/winrm/wsmv/close_shell.rb +50 -50
  49. data/lib/winrm/wsmv/command.rb +101 -101
  50. data/lib/winrm/wsmv/command_output.rb +76 -76
  51. data/lib/winrm/wsmv/command_output_decoder.rb +55 -55
  52. data/lib/winrm/wsmv/configuration.rb +46 -46
  53. data/lib/winrm/wsmv/create_pipeline.rb +66 -66
  54. data/lib/winrm/wsmv/create_shell.rb +119 -119
  55. data/lib/winrm/wsmv/header.rb +203 -203
  56. data/lib/winrm/wsmv/init_runspace_pool.rb +95 -95
  57. data/lib/winrm/wsmv/iso8601_duration.rb +60 -60
  58. data/lib/winrm/wsmv/keep_alive.rb +68 -68
  59. data/lib/winrm/wsmv/receive_response_reader.rb +126 -126
  60. data/lib/winrm/wsmv/send_data.rb +68 -68
  61. data/lib/winrm/wsmv/soap.rb +51 -51
  62. data/lib/winrm/wsmv/wql_query.rb +79 -79
  63. data/lib/winrm/wsmv/write_stdin.rb +88 -88
  64. data/tests/integration/auth_timeout_spec.rb +18 -18
  65. data/tests/integration/cmd_spec.rb +131 -110
  66. data/tests/integration/config-example.yml +16 -16
  67. data/tests/integration/issue_59_spec.rb +26 -26
  68. data/tests/integration/powershell_spec.rb +165 -165
  69. data/tests/integration/spec_helper.rb +65 -65
  70. data/tests/integration/transport_spec.rb +99 -99
  71. data/tests/integration/wql_spec.rb +16 -16
  72. data/tests/matchers.rb +60 -60
  73. data/tests/spec/configuration_spec.rb +184 -184
  74. data/tests/spec/connection_spec.rb +39 -39
  75. data/tests/spec/exception_spec.rb +50 -50
  76. data/tests/spec/http/transport_factory_spec.rb +68 -68
  77. data/tests/spec/http/transport_spec.rb +44 -44
  78. data/tests/spec/output_spec.rb +127 -127
  79. data/tests/spec/psrp/fragment_spec.rb +62 -62
  80. data/tests/spec/psrp/message_data/base_spec.rb +13 -13
  81. data/tests/spec/psrp/message_data/error_record_spec.rb +41 -41
  82. data/tests/spec/psrp/message_data/pipeline_host_call_spec.rb +25 -25
  83. data/tests/spec/psrp/message_data/pipeline_output_spec.rb +32 -32
  84. data/tests/spec/psrp/message_data/pipeline_state_spec.rb +40 -40
  85. data/tests/spec/psrp/message_data/runspace_pool_host_call_spec.rb +25 -25
  86. data/tests/spec/psrp/message_data/runspacepool_state_spec.rb +16 -16
  87. data/tests/spec/psrp/message_data/session_capability_spec.rb +30 -30
  88. data/tests/spec/psrp/message_data_spec.rb +35 -35
  89. data/tests/spec/psrp/message_defragmenter_spec.rb +47 -47
  90. data/tests/spec/psrp/message_fragmenter_spec.rb +105 -105
  91. data/tests/spec/psrp/powershell_output_decoder_spec.rb +100 -100
  92. data/tests/spec/psrp/psrp_message_spec.rb +70 -70
  93. data/tests/spec/psrp/recieve_response_reader_spec.rb +172 -172
  94. data/tests/spec/psrp/uuid_spec.rb +28 -28
  95. data/tests/spec/response_handler_spec.rb +61 -61
  96. data/tests/spec/shells/base_spec.rb +202 -202
  97. data/tests/spec/shells/cmd_spec.rb +75 -75
  98. data/tests/spec/shells/powershell_spec.rb +175 -175
  99. data/tests/spec/spec_helper.rb +47 -47
  100. data/tests/spec/stubs/clixml/error_record.xml.erb +84 -84
  101. data/tests/spec/stubs/clixml/pipeline_state.xml.erb +88 -88
  102. data/tests/spec/stubs/responses/get_command_output_response.xml.erb +13 -13
  103. data/tests/spec/stubs/responses/get_command_output_response_not_done.xml.erb +10 -10
  104. data/tests/spec/stubs/responses/get_powershell_keepalive_response.xml.erb +10 -10
  105. data/tests/spec/stubs/responses/get_powershell_output_response.xml.erb +12 -12
  106. data/tests/spec/stubs/responses/get_powershell_output_response_not_done.xml.erb +9 -9
  107. data/tests/spec/stubs/responses/open_shell_v1.xml +19 -19
  108. data/tests/spec/stubs/responses/open_shell_v2.xml +20 -20
  109. data/tests/spec/stubs/responses/soap_fault_v1.xml +36 -36
  110. data/tests/spec/stubs/responses/soap_fault_v2.xml +42 -42
  111. data/tests/spec/stubs/responses/wmi_error_v2.xml +41 -41
  112. data/tests/spec/wsmv/cleanup_command_spec.rb +22 -22
  113. data/tests/spec/wsmv/close_shell_spec.rb +17 -17
  114. data/tests/spec/wsmv/command_output_decoder_spec.rb +37 -37
  115. data/tests/spec/wsmv/command_output_spec.rb +45 -45
  116. data/tests/spec/wsmv/command_spec.rb +19 -19
  117. data/tests/spec/wsmv/configuration_spec.rb +17 -17
  118. data/tests/spec/wsmv/create_pipeline_spec.rb +31 -31
  119. data/tests/spec/wsmv/create_shell_spec.rb +38 -38
  120. data/tests/spec/wsmv/init_runspace_pool_spec.rb +36 -36
  121. data/tests/spec/wsmv/keep_alive_spec.rb +21 -21
  122. data/tests/spec/wsmv/receive_response_reader_spec.rb +123 -123
  123. data/tests/spec/wsmv/send_data_spec.rb +30 -30
  124. data/tests/spec/wsmv/wql_query_spec.rb +13 -13
  125. data/tests/spec/wsmv/write_stdin_spec.rb +22 -22
  126. data/winrm.gemspec +42 -42
  127. metadata +2 -2
data/Rakefile CHANGED
@@ -1,34 +1,34 @@
1
- # encoding: UTF-8
2
- require 'rubygems'
3
- require 'bundler/setup'
4
- require 'rspec/core/rake_task'
5
- require 'rubocop/rake_task'
6
- require 'bundler/gem_tasks'
7
-
8
- # Change to the directory of this file.
9
- Dir.chdir(File.expand_path('../', __FILE__))
10
-
11
- desc 'Open a Pry console for this library'
12
- task :console do
13
- require 'pry'
14
- require 'winrm'
15
- ARGV.clear
16
- Pry.start
17
- end
18
-
19
- RSpec::Core::RakeTask.new(:spec) do |task|
20
- task.pattern = 'tests/spec/**/*_spec.rb'
21
- task.rspec_opts = ['--color', '-f documentation', '-r ./tests/spec/spec_helper']
22
- end
23
-
24
- # Run the integration test suite
25
- RSpec::Core::RakeTask.new(:integration) do |task|
26
- task.pattern = 'tests/integration/*_spec.rb'
27
- task.rspec_opts = ['--color', '-f documentation', '-r ./tests/integration/spec_helper']
28
- end
29
-
30
- RuboCop::RakeTask.new
31
-
32
- task default: [:spec, :rubocop]
33
-
34
- task all: [:default, :integration]
1
+ # encoding: UTF-8
2
+ require 'rubygems'
3
+ require 'bundler/setup'
4
+ require 'rspec/core/rake_task'
5
+ require 'rubocop/rake_task'
6
+ require 'bundler/gem_tasks'
7
+
8
+ # Change to the directory of this file.
9
+ Dir.chdir(File.expand_path('../', __FILE__))
10
+
11
+ desc 'Open a Pry console for this library'
12
+ task :console do
13
+ require 'pry'
14
+ require 'winrm'
15
+ ARGV.clear
16
+ Pry.start
17
+ end
18
+
19
+ RSpec::Core::RakeTask.new(:spec) do |task|
20
+ task.pattern = 'tests/spec/**/*_spec.rb'
21
+ task.rspec_opts = ['--color', '-f documentation', '-r ./tests/spec/spec_helper']
22
+ end
23
+
24
+ # Run the integration test suite
25
+ RSpec::Core::RakeTask.new(:integration) do |task|
26
+ task.pattern = 'tests/integration/*_spec.rb'
27
+ task.rspec_opts = ['--color', '-f documentation', '-r ./tests/integration/spec_helper']
28
+ end
29
+
30
+ RuboCop::RakeTask.new
31
+
32
+ task default: [:spec, :rubocop]
33
+
34
+ task all: [:default, :integration]
@@ -1,6 +1,6 @@
1
- # -*- mode: ruby -*-
2
- # vi: set ft=ruby :
3
-
4
- Vagrant.configure("2") do |config|
5
- config.vm.box = "mwrock/WindowsNano"
6
- end
1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+
4
+ Vagrant.configure("2") do |config|
5
+ config.vm.box = "mwrock/WindowsNano"
6
+ end
@@ -1,32 +1,32 @@
1
- function New-ClientCertificate {
2
- param([String]$username, [String]$basePath = ((Resolve-Path .).Path))
3
-
4
- $env:OPENSSL_CONF=[System.IO.Path]::GetTempFileName()
5
-
6
- Set-Content -Path $env:OPENSSL_CONF -Value @"
7
- distinguished_name = req_distinguished_name
8
- [req_distinguished_name]
9
- [v3_req_client]
10
- extendedKeyUsage = clientAuth
11
- subjectAltName = otherName:1.3.6.1.4.1.311.20.2.3;UTF8:$username@localhost
12
- "@
13
-
14
- $user_path = Join-Path $basePath user.pem
15
- $key_path = Join-Path $basePath key.pem
16
- $pfx_path = Join-Path $basePath user.pfx
17
-
18
- openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -out $user_path -outform PEM -keyout $key_path -subj "/CN=$username" -extensions v3_req_client 2>&1
19
-
20
- openssl pkcs12 -export -in $user_path -inkey $key_path -out $pfx_path -passout pass: 2>&1
21
-
22
- del $env:OPENSSL_CONF
23
- }
24
-
25
- function New-WinrmUserCertificateMapping {
26
- param([String]$issuer)
27
- $secure_pass = ConvertTo-SecureString $env:winrm_password -AsPlainText -Force
28
- $cred = New-Object System.Management.Automation.PSCredential ($env:winrm_user, $secure_pass)
29
- New-Item -Path WSMan:\localhost\ClientCertificate -Subject "$env:winrm_user@localhost" -URI * -Issuer $issuer -Credential $cred -Force
30
- }
31
-
1
+ function New-ClientCertificate {
2
+ param([String]$username, [String]$basePath = ((Resolve-Path .).Path))
3
+
4
+ $env:OPENSSL_CONF=[System.IO.Path]::GetTempFileName()
5
+
6
+ Set-Content -Path $env:OPENSSL_CONF -Value @"
7
+ distinguished_name = req_distinguished_name
8
+ [req_distinguished_name]
9
+ [v3_req_client]
10
+ extendedKeyUsage = clientAuth
11
+ subjectAltName = otherName:1.3.6.1.4.1.311.20.2.3;UTF8:$username@localhost
12
+ "@
13
+
14
+ $user_path = Join-Path $basePath user.pem
15
+ $key_path = Join-Path $basePath key.pem
16
+ $pfx_path = Join-Path $basePath user.pfx
17
+
18
+ openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -out $user_path -outform PEM -keyout $key_path -subj "/CN=$username" -extensions v3_req_client 2>&1
19
+
20
+ openssl pkcs12 -export -in $user_path -inkey $key_path -out $pfx_path -passout pass: 2>&1
21
+
22
+ del $env:OPENSSL_CONF
23
+ }
24
+
25
+ function New-WinrmUserCertificateMapping {
26
+ param([String]$issuer)
27
+ $secure_pass = ConvertTo-SecureString $env:winrm_password -AsPlainText -Force
28
+ $cred = New-Object System.Management.Automation.PSCredential ($env:winrm_user, $secure_pass)
29
+ New-Item -Path WSMan:\localhost\ClientCertificate -Subject "$env:winrm_user@localhost" -URI * -Issuer $issuer -Credential $cred -Force
30
+ }
31
+
32
32
  Export-ModuleMember New-ClientCertificate, New-WinrmUserCertificateMapping
@@ -1,51 +1,51 @@
1
- version: "master-{build}"
2
-
3
- os: Windows Server 2012 R2
4
- platform:
5
- - x64
6
-
7
- environment:
8
- winrm_user: test_user
9
- winrm_password: Pass@word1
10
- user_cert: c:\projects\winrm\user.pem
11
- user_key: c:\projects\winrm\key.pem
12
-
13
- matrix:
14
- - ruby_version: "21"
15
- winrm_endpoint: http://localhost:5985/wsman
16
-
17
- clone_folder: c:\projects\winrm
18
- clone_depth: 1
19
- branches:
20
- only:
21
- - master
22
-
23
- install:
24
- - ps: net user /add $env:winrm_user $env:winrm_password
25
- - ps: net localgroup administrators $env:winrm_user /add
26
- - ps: $env:PATH="C:\OpenSSL-Win64\bin;$env:PATH"
27
- - ps: Import-Module c:\projects\winrm\WinrmAppveyor.psm1
28
- - ps: New-ClientCertificate $env:winrm_user c:\projects\winrm
29
- - ps: $env:user_cert_thumb = (Import-pfxCertificate -FilePath c:\projects\winrm\user.pfx -CertStoreLocation Cert:\LocalMachine\root).Thumbprint
30
- - ps: Import-pfxCertificate -FilePath c:\projects\winrm\user.pfx -CertStoreLocation Cert:\LocalMachine\TrustedPeople
31
- - ps: $env:winrm_cert = (New-SelfSignedCertificate -DnsName localhost -CertStoreLocation cert:\localmachine\my).Thumbprint
32
- - ps: winrm create winrm/config/Listener?Address=*+Transport=HTTPS "@{Hostname=`"localhost`";CertificateThumbprint=`"$($env:winrm_cert)`"}"
33
- - ps: winrm set winrm/config/client/auth '@{Basic="true"}'
34
- - ps: winrm set winrm/config/service/auth '@{Basic="true"}'
35
- - ps: winrm set winrm/config/service/auth '@{Certificate="true"}'
36
- - ps: winrm set winrm/config/service/auth '@{CbtHardeningLevel="Strict"}'
37
- - ps: winrm set winrm/config/service '@{AllowUnencrypted="true"}'
38
- - ps: New-WinrmUserCertificateMapping $env:user_cert_thumb
39
- - ps: $env:PATH="C:\Ruby$env:ruby_version\bin;$env:PATH"
40
- - ps: Write-Host $env:PATH
41
- - ps: ruby --version
42
- - ps: gem --version
43
- - ps: gem install bundler --quiet --no-ri --no-rdoc
44
- - ps: bundler --version
45
-
46
- build_script:
47
- - bundle install || bundle install || bundle install
48
-
49
- test_script:
50
- - SET SPEC_OPTS=--format progress
51
- - bundle exec rake integration
1
+ version: "master-{build}"
2
+
3
+ os: Windows Server 2012 R2
4
+ platform:
5
+ - x64
6
+
7
+ environment:
8
+ winrm_user: test_user
9
+ winrm_password: Pass@word1
10
+ user_cert: c:\projects\winrm\user.pem
11
+ user_key: c:\projects\winrm\key.pem
12
+
13
+ matrix:
14
+ - ruby_version: "21"
15
+ winrm_endpoint: http://localhost:5985/wsman
16
+
17
+ clone_folder: c:\projects\winrm
18
+ clone_depth: 1
19
+ branches:
20
+ only:
21
+ - master
22
+
23
+ install:
24
+ - ps: net user /add $env:winrm_user $env:winrm_password
25
+ - ps: net localgroup administrators $env:winrm_user /add
26
+ - ps: $env:PATH="C:\OpenSSL-Win64\bin;$env:PATH"
27
+ - ps: Import-Module c:\projects\winrm\WinrmAppveyor.psm1
28
+ - ps: New-ClientCertificate $env:winrm_user c:\projects\winrm
29
+ - ps: $env:user_cert_thumb = (Import-pfxCertificate -FilePath c:\projects\winrm\user.pfx -CertStoreLocation Cert:\LocalMachine\root).Thumbprint
30
+ - ps: Import-pfxCertificate -FilePath c:\projects\winrm\user.pfx -CertStoreLocation Cert:\LocalMachine\TrustedPeople
31
+ - ps: $env:winrm_cert = (New-SelfSignedCertificate -DnsName localhost -CertStoreLocation cert:\localmachine\my).Thumbprint
32
+ - ps: winrm create winrm/config/Listener?Address=*+Transport=HTTPS "@{Hostname=`"localhost`";CertificateThumbprint=`"$($env:winrm_cert)`"}"
33
+ - ps: winrm set winrm/config/client/auth '@{Basic="true"}'
34
+ - ps: winrm set winrm/config/service/auth '@{Basic="true"}'
35
+ - ps: winrm set winrm/config/service/auth '@{Certificate="true"}'
36
+ - ps: winrm set winrm/config/service/auth '@{CbtHardeningLevel="Strict"}'
37
+ - ps: winrm set winrm/config/service '@{AllowUnencrypted="true"}'
38
+ - ps: New-WinrmUserCertificateMapping $env:user_cert_thumb
39
+ - ps: $env:PATH="C:\Ruby$env:ruby_version\bin;$env:PATH"
40
+ - ps: Write-Host $env:PATH
41
+ - ps: ruby --version
42
+ - ps: gem --version
43
+ - ps: gem install bundler --quiet --no-ri --no-rdoc
44
+ - ps: bundler --version
45
+
46
+ build_script:
47
+ - bundle install || bundle install || bundle install
48
+
49
+ test_script:
50
+ - SET SPEC_OPTS=--format progress
51
+ - bundle exec rake integration
@@ -1,101 +1,104 @@
1
- # WinRM Gem Changelog
2
-
3
- # 2.0.3
4
- - Do not swallow exit codes from executables
5
-
6
- # 2.0.2
7
- - Constrain to rubyntlm `>= 0.6.1` to avoid mutating frozen strings
8
- - When using certificate authentication, do not validate presense of user and password
9
- - Handle failed `PIPELINE_STATE` messages so that `throw` errors are not swallowed
10
-
11
- # 2.0.1
12
- - Fixed Powershell shell leakage when not explicitly closed
13
- - Fixed cmd commands with responses that extend beyond one stream
14
-
15
- # 2.0.0
16
- - Cleaned up API and implemented Powershell Remoting Protocol (PSRP) for all powershell calls.
17
-
18
- # 1.8.1
19
- - Http receive timeout should always be equal to 10 seconds greater than the winrm operation timeout and not default to one hour
20
-
21
- # 1.8.0
22
- - Add certificate authentication
23
-
24
- # 1.7.3
25
- - Open a new shell if the current shell has been deleted
26
-
27
- # 1.7.2
28
- - Fix regression where BOM appears in 2008R2 output and is not stripped
29
-
30
- # 1.7.1
31
- - Fix OS version comparisons for Windows 10 using `Gem::Version` instead of strings
32
-
33
- # 1.7.0
34
- - Bump rubyntlm gem to 0.6.0 to get channel binding support for HTTPS fixing connections to endoints with `CbtHardeningLevel` set to `Strict`
35
- - Fix for parsing binary data in command output
36
-
37
- # 1.6.1
38
- - Use codepage 437 by default on os versions older than Windows 7 and Windows Server 2008 R2
39
-
40
- # 1.6.0
41
- - Adding `:negotiate` transport providing NTLM/Negotiate encryption of WinRM requests and responses
42
- - Removed dependency on UUIDTools gem
43
- - Extending accepted error codes for retry behavior to include `Errno::ETIMEDOUT`
44
- - Correct deprecation warning for WinRMWebService.run_powershell_script
45
-
46
- # 1.5.0
47
- - Deprecating `WinRM::WinRMWebService` methods `cmd`, `run_cmd`, `powershell`, and `run_powershell_script` in favor of the `run_cmd` and `run_powershell_script` methods of the `WinRM::CommandExecutor` class. The `CommandExecutor` allows multiple commands to be run from the same WinRM shell providing a significant performance improvement when issuing multiple calls.
48
- - Added an `:ssl_peer_fingerprint` option to be used instead of `:no_ssl_peer_verification` and allows a specific certificate to be verified.
49
- - Opening a winrm shell is retriable with configurable delay and retry limit.
50
- - Logging apends to `stdout` by default and can be replaced with a logger from a consuming application.
51
-
52
- # 1.4.0
53
- - Added WinRM::Version so the gem version is available at runtime for consumers.
54
-
55
- # 1.3.6
56
- - Remove BOM from response (Issue #159) added by Windows 2008R2
57
-
58
- # 1.3.5
59
- - Widen logging version constraints to include 2.0
60
- - Use codepage 65001 (UTF-8)
61
-
62
- # 1.3.4
63
- - Relaxed version pins on dev dependencies
64
-
65
- # 1.3.3
66
- - Fixed issue 133, rwinrm allow hostnames with dashes
67
- - Use duck typing for powershell script read
68
-
69
- # 1.3.2
70
- - Add spec.license attribute to gemspec
71
- - Bump RSpec dependency 3.0 to 3.2
72
-
73
- # 1.3.1
74
- - Fixed issue 129, long running commands could cause a stackoverflow exception
75
- - Fixed use of sub! in run_command results in spurious capture/replacement of \& sequences
76
- - Fixed issue 124 rwinrm won't take '.' characters in username
77
-
78
- # 1.3.0
79
- - Fixed multiple issues with WinRMHTTPTransportError incorrectly being raised
80
- - Refactored and added more unit and integration tests
81
- - Added ability to write to stdin
82
- - Added rwinrm binary to launch remote shell
83
- - Added WINRM_LOG env var to set log level
84
- - Retry Kerberos auth once if 401 response is received
85
- - Remove Savon dependency and use newer versions of underlying dependencies
86
- - Remove Nokogiri dependency and replace with native Ruby XML
87
- - Fixed issue 85, ensure WQL response is not nil
88
- - All WinRM library errors inherit from base class WinRMError
89
- - Integrations tests should now pass on Windows Server 2008+
90
- - Bump Ruby NTLM gem version dependency
91
- - HTTP client receive timeout is now configurable via set_timeout
92
- - Added backwards compatible Output class to make it easier to collect output
93
- - Bumped gssapi dependency from 1.0 to 1.2 and fixed issue 54
94
- - Added Rubocop to build
95
- - Fixed error when commands contain a newline character
96
-
97
- # 1.2.0
98
- - Allow user to disable SSL peer ceritifcate validation #44
99
- - Allow commands with "'" chars on Ruby 2.x, fixes #69
100
- - Fixed uninitialized constant Module::Kconv in Ruby 2.x, fixes #65
101
- - Commands with non-ASCII chars should work, #70
1
+ # WinRM Gem Changelog
2
+
3
+ # 2.1.0
4
+ - Expose shell options when creating a winrm shell
5
+
6
+ # 2.0.3
7
+ - Do not swallow exit codes from executables
8
+
9
+ # 2.0.2
10
+ - Constrain to rubyntlm `>= 0.6.1` to avoid mutating frozen strings
11
+ - When using certificate authentication, do not validate presense of user and password
12
+ - Handle failed `PIPELINE_STATE` messages so that `throw` errors are not swallowed
13
+
14
+ # 2.0.1
15
+ - Fixed Powershell shell leakage when not explicitly closed
16
+ - Fixed cmd commands with responses that extend beyond one stream
17
+
18
+ # 2.0.0
19
+ - Cleaned up API and implemented Powershell Remoting Protocol (PSRP) for all powershell calls.
20
+
21
+ # 1.8.1
22
+ - Http receive timeout should always be equal to 10 seconds greater than the winrm operation timeout and not default to one hour
23
+
24
+ # 1.8.0
25
+ - Add certificate authentication
26
+
27
+ # 1.7.3
28
+ - Open a new shell if the current shell has been deleted
29
+
30
+ # 1.7.2
31
+ - Fix regression where BOM appears in 2008R2 output and is not stripped
32
+
33
+ # 1.7.1
34
+ - Fix OS version comparisons for Windows 10 using `Gem::Version` instead of strings
35
+
36
+ # 1.7.0
37
+ - Bump rubyntlm gem to 0.6.0 to get channel binding support for HTTPS fixing connections to endoints with `CbtHardeningLevel` set to `Strict`
38
+ - Fix for parsing binary data in command output
39
+
40
+ # 1.6.1
41
+ - Use codepage 437 by default on os versions older than Windows 7 and Windows Server 2008 R2
42
+
43
+ # 1.6.0
44
+ - Adding `:negotiate` transport providing NTLM/Negotiate encryption of WinRM requests and responses
45
+ - Removed dependency on UUIDTools gem
46
+ - Extending accepted error codes for retry behavior to include `Errno::ETIMEDOUT`
47
+ - Correct deprecation warning for WinRMWebService.run_powershell_script
48
+
49
+ # 1.5.0
50
+ - Deprecating `WinRM::WinRMWebService` methods `cmd`, `run_cmd`, `powershell`, and `run_powershell_script` in favor of the `run_cmd` and `run_powershell_script` methods of the `WinRM::CommandExecutor` class. The `CommandExecutor` allows multiple commands to be run from the same WinRM shell providing a significant performance improvement when issuing multiple calls.
51
+ - Added an `:ssl_peer_fingerprint` option to be used instead of `:no_ssl_peer_verification` and allows a specific certificate to be verified.
52
+ - Opening a winrm shell is retriable with configurable delay and retry limit.
53
+ - Logging apends to `stdout` by default and can be replaced with a logger from a consuming application.
54
+
55
+ # 1.4.0
56
+ - Added WinRM::Version so the gem version is available at runtime for consumers.
57
+
58
+ # 1.3.6
59
+ - Remove BOM from response (Issue #159) added by Windows 2008R2
60
+
61
+ # 1.3.5
62
+ - Widen logging version constraints to include 2.0
63
+ - Use codepage 65001 (UTF-8)
64
+
65
+ # 1.3.4
66
+ - Relaxed version pins on dev dependencies
67
+
68
+ # 1.3.3
69
+ - Fixed issue 133, rwinrm allow hostnames with dashes
70
+ - Use duck typing for powershell script read
71
+
72
+ # 1.3.2
73
+ - Add spec.license attribute to gemspec
74
+ - Bump RSpec dependency 3.0 to 3.2
75
+
76
+ # 1.3.1
77
+ - Fixed issue 129, long running commands could cause a stackoverflow exception
78
+ - Fixed use of sub! in run_command results in spurious capture/replacement of \& sequences
79
+ - Fixed issue 124 rwinrm won't take '.' characters in username
80
+
81
+ # 1.3.0
82
+ - Fixed multiple issues with WinRMHTTPTransportError incorrectly being raised
83
+ - Refactored and added more unit and integration tests
84
+ - Added ability to write to stdin
85
+ - Added rwinrm binary to launch remote shell
86
+ - Added WINRM_LOG env var to set log level
87
+ - Retry Kerberos auth once if 401 response is received
88
+ - Remove Savon dependency and use newer versions of underlying dependencies
89
+ - Remove Nokogiri dependency and replace with native Ruby XML
90
+ - Fixed issue 85, ensure WQL response is not nil
91
+ - All WinRM library errors inherit from base class WinRMError
92
+ - Integrations tests should now pass on Windows Server 2008+
93
+ - Bump Ruby NTLM gem version dependency
94
+ - HTTP client receive timeout is now configurable via set_timeout
95
+ - Added backwards compatible Output class to make it easier to collect output
96
+ - Bumped gssapi dependency from 1.0 to 1.2 and fixed issue 54
97
+ - Added Rubocop to build
98
+ - Fixed error when commands contain a newline character
99
+
100
+ # 1.2.0
101
+ - Allow user to disable SSL peer ceritifcate validation #44
102
+ - Allow commands with "'" chars on Ruby 2.x, fixes #69
103
+ - Fixed uninitialized constant Module::Kconv in Ruby 2.x, fixes #65
104
+ - Commands with non-ASCII chars should work, #70