A Go library and CLI tool for executing remote commands on Windows machines via WinRM/WinRS protocol.
WinRM for Go is a library and command-line tool that enables remote command execution on Windows machines using the WinRM/WinRS protocol. It allows developers to programmatically run commands on Windows servers from Go applications, solving the problem of automating Windows server management in cloud environments and infrastructure-as-code workflows.
Go developers building automation tools, DevOps engineers managing Windows servers in cloud environments (especially EC2), and infrastructure teams needing remote Windows administration capabilities.
Developers choose WinRM for Go because it provides a pure-Go implementation of WinRM with flexible authentication (Basic, NTLM, Kerberos), extensible transport layers, and no external C dependencies, making it ideal for cross-platform automation tools that need to manage Windows infrastructure.
Command-line tool and library for Windows remote command execution in Go
No external C dependencies like libxml, making it cross-platform and easy to deploy in Go-based automation tools without runtime issues.
Supports Basic, NTLM, and Kerberos authentication with pluggable models, as shown in README examples for Azure VMs and domain accounts.
Allows custom transports such as SSH tunneling or custom HTTP clients via TransportDecorator, enabling secure connections through proxies or indirect routes.
Uses Go's context package for command cancellation and timeouts, providing better control over remote execution flows in concurrent applications.
Requires manual PowerShell commands run as administrator on Windows machines to enable WinRM and set authentication, which is error-prone and not automated.
README initially states no support for domain users or Kerberos, but later includes Kerberos examples, indicating inconsistent documentation or partial feature implementation.
The library usage section warns that the API might be subject to change, posing maintenance challenges for production code relying on current interfaces.
Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http
Pure Go implementation of the WebRTC API
Reliable UDP Transmission Optimizer based on KCP: Enhancing network efficiency in poor connectivity environments.
Cloudflare Tunnel client
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.