winrm 2.1.0 → 2.1.1

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 +263 -260
  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 +107 -104
  12. data/lib/winrm.rb +39 -39
  13. data/lib/winrm/connection.rb +83 -83
  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 +54 -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 +144 -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 -180
  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 -58
  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 -131
  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 +47 -42
  127. metadata +7 -3
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,104 +1,107 @@
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
1
+ # WinRM Gem Changelog
2
+
3
+ # 2.1.1
4
+ - Fix rendering of powershell output with non ascii UTF-8 characters emitted from executables
5
+
6
+ # 2.1.0
7
+ - Expose shell options when creating a winrm shell
8
+
9
+ # 2.0.3
10
+ - Do not swallow exit codes from executables
11
+
12
+ # 2.0.2
13
+ - Constrain to rubyntlm `>= 0.6.1` to avoid mutating frozen strings
14
+ - When using certificate authentication, do not validate presense of user and password
15
+ - Handle failed `PIPELINE_STATE` messages so that `throw` errors are not swallowed
16
+
17
+ # 2.0.1
18
+ - Fixed Powershell shell leakage when not explicitly closed
19
+ - Fixed cmd commands with responses that extend beyond one stream
20
+
21
+ # 2.0.0
22
+ - Cleaned up API and implemented Powershell Remoting Protocol (PSRP) for all powershell calls.
23
+
24
+ # 1.8.1
25
+ - Http receive timeout should always be equal to 10 seconds greater than the winrm operation timeout and not default to one hour
26
+
27
+ # 1.8.0
28
+ - Add certificate authentication
29
+
30
+ # 1.7.3
31
+ - Open a new shell if the current shell has been deleted
32
+
33
+ # 1.7.2
34
+ - Fix regression where BOM appears in 2008R2 output and is not stripped
35
+
36
+ # 1.7.1
37
+ - Fix OS version comparisons for Windows 10 using `Gem::Version` instead of strings
38
+
39
+ # 1.7.0
40
+ - Bump rubyntlm gem to 0.6.0 to get channel binding support for HTTPS fixing connections to endoints with `CbtHardeningLevel` set to `Strict`
41
+ - Fix for parsing binary data in command output
42
+
43
+ # 1.6.1
44
+ - Use codepage 437 by default on os versions older than Windows 7 and Windows Server 2008 R2
45
+
46
+ # 1.6.0
47
+ - Adding `:negotiate` transport providing NTLM/Negotiate encryption of WinRM requests and responses
48
+ - Removed dependency on UUIDTools gem
49
+ - Extending accepted error codes for retry behavior to include `Errno::ETIMEDOUT`
50
+ - Correct deprecation warning for WinRMWebService.run_powershell_script
51
+
52
+ # 1.5.0
53
+ - 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.
54
+ - Added an `:ssl_peer_fingerprint` option to be used instead of `:no_ssl_peer_verification` and allows a specific certificate to be verified.
55
+ - Opening a winrm shell is retriable with configurable delay and retry limit.
56
+ - Logging apends to `stdout` by default and can be replaced with a logger from a consuming application.
57
+
58
+ # 1.4.0
59
+ - Added WinRM::Version so the gem version is available at runtime for consumers.
60
+
61
+ # 1.3.6
62
+ - Remove BOM from response (Issue #159) added by Windows 2008R2
63
+
64
+ # 1.3.5
65
+ - Widen logging version constraints to include 2.0
66
+ - Use codepage 65001 (UTF-8)
67
+
68
+ # 1.3.4
69
+ - Relaxed version pins on dev dependencies
70
+
71
+ # 1.3.3
72
+ - Fixed issue 133, rwinrm allow hostnames with dashes
73
+ - Use duck typing for powershell script read
74
+
75
+ # 1.3.2
76
+ - Add spec.license attribute to gemspec
77
+ - Bump RSpec dependency 3.0 to 3.2
78
+
79
+ # 1.3.1
80
+ - Fixed issue 129, long running commands could cause a stackoverflow exception
81
+ - Fixed use of sub! in run_command results in spurious capture/replacement of \& sequences
82
+ - Fixed issue 124 rwinrm won't take '.' characters in username
83
+
84
+ # 1.3.0
85
+ - Fixed multiple issues with WinRMHTTPTransportError incorrectly being raised
86
+ - Refactored and added more unit and integration tests
87
+ - Added ability to write to stdin
88
+ - Added rwinrm binary to launch remote shell
89
+ - Added WINRM_LOG env var to set log level
90
+ - Retry Kerberos auth once if 401 response is received
91
+ - Remove Savon dependency and use newer versions of underlying dependencies
92
+ - Remove Nokogiri dependency and replace with native Ruby XML
93
+ - Fixed issue 85, ensure WQL response is not nil
94
+ - All WinRM library errors inherit from base class WinRMError
95
+ - Integrations tests should now pass on Windows Server 2008+
96
+ - Bump Ruby NTLM gem version dependency
97
+ - HTTP client receive timeout is now configurable via set_timeout
98
+ - Added backwards compatible Output class to make it easier to collect output
99
+ - Bumped gssapi dependency from 1.0 to 1.2 and fixed issue 54
100
+ - Added Rubocop to build
101
+ - Fixed error when commands contain a newline character
102
+
103
+ # 1.2.0
104
+ - Allow user to disable SSL peer ceritifcate validation #44
105
+ - Allow commands with "'" chars on Ruby 2.x, fixes #69
106
+ - Fixed uninitialized constant Module::Kconv in Ruby 2.x, fixes #65
107
+ - Commands with non-ASCII chars should work, #70