From 349a443f4bb8cbda1631338a37a63ac07366e734 Mon Sep 17 00:00:00 2001 From: Jerry Keselman Date: Thu, 25 Feb 2016 12:59:13 -0500 Subject: [PATCH] Support for WinRM 1.5+ Allow winrm-elevated elevated runners to work alongside WinRM 1.5+ (now 1.7) Executors. Only upload the wrapper shell winrm-elevated-shell.ps1 once per connection. No need to do so on every command request. Note that a TODO would be to more fully integrate the "elevated runner" with the "command-executor". --- lib/winrm-elevated/runner.rb | 3 +++ winrm-elevated.gemspec | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/winrm-elevated/runner.rb b/lib/winrm-elevated/runner.rb index 52ffaad..2f1e138 100644 --- a/lib/winrm-elevated/runner.rb +++ b/lib/winrm-elevated/runner.rb @@ -27,6 +27,7 @@ def initialize(winrm_service) @winrm_service = winrm_service @winrm_file_manager = WinRM::FS::FileManager.new(winrm_service) @elevated_shell_path = 'c:/windows/temp/winrm-elevated-shell.ps1' + @uploaded = nil end # Run a command or PowerShell script elevated without any of the @@ -49,12 +50,14 @@ def powershell_elevated(script, username, password, &block) private def upload_elevated_shell_wrapper_script + return if @uploaded file = Tempfile.new(['winrm-elevated-shell', 'ps1']) begin file.write(elevated_shell_script_content) file.fsync file.close @winrm_file_manager.upload(file.path, @elevated_shell_path) + @uploaded = true ensure file.close file.unlink diff --git a/winrm-elevated.gemspec b/winrm-elevated.gemspec index a7eed8f..8e0544d 100644 --- a/winrm-elevated.gemspec +++ b/winrm-elevated.gemspec @@ -25,8 +25,8 @@ Gem::Specification.new do |s| s.extra_rdoc_files = %w(README.md LICENSE) s.required_ruby_version = '>= 1.9.0' - s.add_runtime_dependency 'winrm', '~> 1.3' - s.add_runtime_dependency 'winrm-fs', '~> 0.2.2' + s.add_runtime_dependency 'winrm', '~> 1.7' + s.add_runtime_dependency 'winrm-fs', '~> 0.3.0' s.add_development_dependency 'rspec', '~> 3.2' s.add_development_dependency 'rake', '~> 10.3' s.add_development_dependency 'rubocop', '~> 0.28'