Project

winrm-s

0.01
Repository is archived
No commit activity in last 3 years
No release in over 3 years
Gem that extends the functionality of the WinRM gem to support the Microsoft Negotiate protocol when authenticating to a remote WinRM endpoint from a Windows system
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

>= 1.3.6, ~> 1.3
 Project Readme

winrm-s

winrm-s extends the functionality of the WinRM gem to support the Microsoft Negotiate protocol when authenticating to a remote WinRM endpoint from a Windows system.

This extended functionality is only supported when running on Microsoft Windows. This gem can still be used on other operating systems just like the WinRM gem, but the extended capabilities will not be available.

Deprecation Notice

The functionality provided by this library has been merged into winrm and rubyntlm. This library is no longer used or maintained.

Installation

To install it, run:

gem install winrm-s

Usage

winrm-s provides the same interface as the winrm gem -- see winrm documentation for winrm-s usage.

  • To use it, simply require winrm or winrm-s, depending on whether your code is running on Windows. The extended negotiate protocol is only available if you include winrm-s, which will only work on Windows.
  • When you use WinRM::WinRMWebService.new, be sure to specify the :sspinegotiate parameter, along with a user name in the form domain_name\user_name for the user name in order to make use of negotiate protocol. If the user account is local to the remote system, you can use . for the domain. The example further on demonstrates the negotiate use case.
  • All other use cases enabled by the winrm gem are also supported.

Example

Note the argument value of :sspinegotiate for transport option, and the explicit specification of a domain name, in this case ., in the user name:

if RUBY_PLATFORM =~ /mswin|mingw32|windows/
  require 'winrm-s' # only works on Windows, otherwise use require 'winrm'
  endpoint = http://mywinrmhost:5985/wsman
  winrm = WinRM::WinRMWebService.new(endpoint, :sspinegotiate, :user => ".\administrator", :pass => "adminpasswd")
  winrm.cmd('ipconfig /all') do |stdout, stderr|
    STDOUT.print stdout
    STDERR.print stderr
  end
end

License

Copyright:: Copyright (c) 2014 Chef Software, Inc. License:: Apache License, Version 2.0

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.