Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. winrm

winrm

Apache-2.0Go

A Go library and CLI tool for executing remote commands on Windows machines via WinRM/WinRS protocol.

GitHubGitHub
469 stars140 forks0 contributors

What is winrm?

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.

Target Audience

Go developers building automation tools, DevOps engineers managing Windows servers in cloud environments (especially EC2), and infrastructure teams needing remote Windows administration capabilities.

Value Proposition

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.

Overview

Command-line tool and library for Windows remote command execution in Go

Use Cases

Best For

  • Automating Windows server management in Go applications
  • Running remote commands on EC2 Windows instances
  • Building infrastructure-as-code tools for Windows environments
  • Creating cross-platform administration tools that include Windows support
  • Integrating Windows server management into DevOps pipelines
  • Developing custom Windows remote administration utilities

Not Ideal For

  • Projects requiring seamless Active Directory domain user authentication with full GSSAPI support
  • Environments where Windows servers are not pre-configured for WinRM with Basic or Kerberos auth
  • Applications needing real-time, interactive shell sessions with low latency over native protocols like SSH

Pros & Cons

Pros

Pure Go Implementation

No external C dependencies like libxml, making it cross-platform and easy to deploy in Go-based automation tools without runtime issues.

Flexible Authentication Options

Supports Basic, NTLM, and Kerberos authentication with pluggable models, as shown in README examples for Azure VMs and domain accounts.

Extensible Transport Layer

Allows custom transports such as SSH tunneling or custom HTTP clients via TransportDecorator, enabling secure connections through proxies or indirect routes.

Context Integration

Uses Go's context package for command cancellation and timeouts, providing better control over remote execution flows in concurrent applications.

Cons

Complex Remote Configuration

Requires manual PowerShell commands run as administrator on Windows machines to enable WinRM and set authentication, which is error-prone and not automated.

Confusing Domain Support

README initially states no support for domain users or Kerberos, but later includes Kerberos examples, indicating inconsistent documentation or partial feature implementation.

API Stability Risks

The library usage section warns that the API might be subject to change, posing maintenance challenges for production code relying on current interfaces.

Frequently Asked Questions

Quick Stats

Stars469
Forks140
Contributors0
Open Issues37
Last commit1 month ago
CreatedSince 2013

Tags

#windows-server#devops#winrm#go-library#command-execution#infrastructure#remote-administration#automation

Built With

G
Go

Included in

Go169.1k
Auto-fetched 15 hours ago

Related Projects

fasthttpfasthttp

Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http

Stars23,351
Forks1,817
Last commit18 hours ago
webrtcwebrtc

Pure Go implementation of the WebRTC API

Stars16,459
Forks1,842
Last commit2 days ago
kcptunkcptun

Reliable UDP Transmission Optimizer based on KCP: Enhancing network efficiency in poor connectivity environments.

Stars14,403
Forks2,631
Last commit1 month ago
cloudflaredcloudflared

Cloudflare Tunnel client

Stars14,214
Forks1,291
Last commit3 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub