winrm

package
v2.0.0-beta.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2026 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Package winrm provides a rig protocol implementation for WinRM connections

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	log.LoggerInjectable `yaml:"-" json:"-"`
	Address              string      `` /* 130-byte string literal not displayed */
	User                 string      `` /* 166-byte string literal not displayed */
	Port                 int         `` /* 177-byte string literal not displayed */
	Password             string      `yaml:"password,omitempty" json:"password,omitempty" jsonschema:"minLength=1,description=Password for WinRM authentication"`
	UseHTTPS             bool        `yaml:"useHTTPS" json:"useHTTPS,omitempty" default:"false" jsonschema:"default=false,description=Use HTTPS for WinRM"`
	Insecure             bool        `` /* 128-byte string literal not displayed */
	UseNTLM              bool        `yaml:"useNTLM" json:"useNTLM,omitempty" default:"false" jsonschema:"default=false,description=Use NTLM authentication"`
	CACertPath           string      `` /* 129-byte string literal not displayed */
	CertPath             string      `` /* 141-byte string literal not displayed */
	KeyPath              string      `` /* 131-byte string literal not displayed */
	TLSServerName        string      `` /* 152-byte string literal not displayed */
	Bastion              *ssh.Config `yaml:"bastion,omitempty" json:"bastion,omitempty" jsonschema:"description=Optional SSH bastion"`
}

Config describes the configuration options for a WinRM connection.

func (*Config) Connection

func (c *Config) Connection() (protocol.Connection, error)

Connection returns a new WinRM Connection based on the configuration.

func (*Config) SetDefaults

func (c *Config) SetDefaults()

SetDefaults sets various default values.

func (*Config) String

func (c *Config) String() string

String returns a string representation of the configuration.

func (*Config) Validate

func (c *Config) Validate() error

Validate checks the configuration for any invalid values.

type Connection

type Connection struct {
	log.LoggerInjectable `yaml:"-"`
	Config               `yaml:",inline"`
	// contains filtered or unexported fields
}

Connection describes a Connection connection with its configuration options.

func NewConnection

func NewConnection(cfg Config, opts ...Option) (*Connection, error)

NewConnection creates a new WinRM connection. Error is currently always nil.

func (*Connection) Connect

func (c *Connection) Connect(ctx context.Context) error

Connect opens the WinRM connection. Any existing connection is torn down first.

func (*Connection) Disconnect

func (c *Connection) Disconnect()

Disconnect closes the WinRM connection.

func (*Connection) ExecInteractive

func (c *Connection) ExecInteractive(ctx context.Context, cmd string, stdin io.Reader, stdout, stderr io.Writer) error

ExecInteractive executes a command on the host and passes stdin/stdout/stderr as-is to the session. The session is terminated when ctx is cancelled.

func (*Connection) IPAddress

func (c *Connection) IPAddress() string

IPAddress returns the connection address.

func (*Connection) IsConnected

func (c *Connection) IsConnected() bool

IsConnected returns true if the WinRM connection is alive by running a no-op command. WinRM is stateless HTTP so the only real liveness test is a probe.

func (*Connection) IsWindows

func (c *Connection) IsWindows() bool

IsWindows always returns true on winrm.

func (*Connection) Protocol

func (c *Connection) Protocol() string

Protocol returns the protocol family, "WinRM".

func (*Connection) ProtocolName

func (c *Connection) ProtocolName() string

ProtocolName returns the implementation name, "WinRM".

func (*Connection) StartProcess

func (c *Connection) StartProcess(ctx context.Context, cmd string, stdin io.Reader, stdout, stderr io.Writer) (protocol.Waiter, error)

StartProcess executes a command on the remote host and uses the passed in streams for stdin, stdout and stderr. It returns a Waiter with a .Wait() function that blocks until the command finishes and returns an error if the exit code is not zero.

func (*Connection) String

func (c *Connection) String() string

String returns the connection's printable name.

type Option

type Option func(*Options)

Option is a functional option for WinRM Options.

func WithLogger

func WithLogger(l log.Logger) Option

WithLogger sets the logger for the WinRM client.

type Options

type Options struct {
	log.LoggerInjectable
}

Options for WinRM connetion.

func NewOptions

func NewOptions(opts ...Option) *Options

NewOptions creates a new Options struct with the provided options.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL