Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
hashicorp avatar

Windows Builder

  • 1.8k installs
  • 781 repo stars
  • Updated August 4, 2026
  • hashicorp/agent-skills

Build Windows images with Packer using WinRM communicator and PowerShell provisioners. Use when creating Windows AMIs, Azure images, or VMware templates.

About

The windows builder skill Build Windows images with Packer using WinRM communicator and PowerShell provisioners. Use when creating Windows AMIs, Azure images, or VMware templates. Documentation covers workflows, commands, and guardrails agents should follow when users invoke this capability. Key documented areas include Increase `winrm_timeout` to 15m or more; Verify security group allows ports 5985/5986; Check user data script completed successfully; Windows Updates can take 1-2 hours. Reference commands include source "amazon-ebs" "windows" {; region = "us-west-2". Use when developers or agents need structured guidance for windows builder tasks with evidence grounded in the bundled SKILL.md rather than generic advice. Increase `winrm_timeout` to 15m or more Verify security group allows ports 5985/5986 Check user data script completed successfully Windows Updates can take 1-2 hours Use pre-patched base images when available Set provisioner `timeout = "2h"` [Packer Windows Builders](https://developer.hashicorp.com/packer/guides/windows) [WinRM Communicator](https://developer.hashicorp.com/packer/docs/communicators/winrm) Build Windows images with Packer using WinRM communic.

  • Increase `winrm_timeout` to 15m or more
  • Verify security group allows ports 5985/5986
  • Check user data script completed successfully
  • Windows Updates can take 1-2 hours
  • Use pre-patched base images when available

Windows Builder by the numbers

  • 1,819 all-time installs (skills.sh)
  • +97 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #122 of 1,435 DevOps & CI/CD skills by installs in the Skillselion catalog
  • Security screen: HIGH risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

windows-builder capabilities & compatibility

Capabilities
increase `winrm_timeout` to 15m or more · verify security group allows ports 5985/5986 · check user data script completed successfully · windows updates can take 1 2 hours · use pre patched base images when available
npx skills add https://github.com/hashicorp/agent-skills --skill windows-builder

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.8k
repo stars781
Security audit1 / 3 scanners passed
Last updatedAugust 4, 2026
Repositoryhashicorp/agent-skills

How do I handle windows builder tasks with agent guidance?

Build Windows images with Packer using WinRM communicator and PowerShell provisioners. Use when creating Windows AMIs, Azure images, or VMware templates.

Who is it for?

Teams needing documented windows builder workflows.

Skip if: Linux image builds, quick local VMs, or teams unwilling to accept 45–120 minute Windows Update build times and cloud costs.

When should I use this skill?

Build Windows images with Packer using WinRM communicator and PowerShell provisioners. Use when creating Windows AMIs, Azure images, or VMware templates.

What you get

Structured workflow from windows builder documentation applied to the user request.

  • Packer HCL source configurations
  • WinRM bootstrap blocks

By the numbers

  • Expects 45–120 minutes per Windows image build due to Windows Updates

Files

SKILL.mdMarkdownGitHub ↗

Windows Builder

Platform-agnostic patterns for building Windows images with Packer.

Reference: Windows Builders

Note: Windows builds incur significant costs and time. Expect 45-120 minutes per build due to Windows Updates. Failed builds may leave resources running - always verify cleanup.

WinRM Communicator Setup

Windows requires WinRM for Packer communication.

AWS Example

source "amazon-ebs" "windows" {
  region        = "us-west-2"
  instance_type = "t3.medium"

  source_ami_filter {
    filters = {
      name = "Windows_Server-2022-English-Full-Base-*"
    }
    most_recent = true
    owners      = ["amazon"]
  }

  ami_name = "windows-server-2022-${local.timestamp}"

  communicator   = "winrm"
  winrm_username = "Administrator"
  winrm_use_ssl  = true
  winrm_insecure = true
  winrm_timeout  = "15m"

  user_data_file = "scripts/setup-winrm.ps1"
}

WinRM Setup Script (scripts/setup-winrm.ps1)

<powershell>
# Configure WinRM
winrm quickconfig -q
winrm set winrm/config '@{MaxTimeoutms="1800000"}'
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
winrm set winrm/config/service/auth '@{Basic="true"}'

# Configure firewall
netsh advfirewall firewall add rule name="WinRM 5985" protocol=TCP dir=in localport=5985 action=allow
netsh advfirewall firewall add rule name="WinRM 5986" protocol=TCP dir=in localport=5986 action=allow

# Restart WinRM
net stop winrm
net start winrm
</powershell>

Azure Example

source "azure-arm" "windows" {
  client_id       = var.client_id
  client_secret   = var.client_secret
  subscription_id = var.subscription_id
  tenant_id       = var.tenant_id

  managed_image_resource_group_name = "images-rg"
  managed_image_name                = "windows-${local.timestamp}"

  os_type         = "Windows"
  image_publisher = "MicrosoftWindowsServer"
  image_offer     = "WindowsServer"
  image_sku       = "2022-datacenter-g2"

  location = "East US"
  vm_size  = "Standard_D2s_v3"

  # Azure auto-configures WinRM
  communicator   = "winrm"
  winrm_use_ssl  = true
  winrm_insecure = true
  winrm_timeout  = "15m"
  winrm_username = "packer"
}

PowerShell Provisioners

Install Software

build {
  sources = ["source.amazon-ebs.windows"]

  # Install Chocolatey
  provisioner "powershell" {
    inline = [
      "Set-ExecutionPolicy Bypass -Scope Process -Force",
      "iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))"
    ]
  }

  # Install applications
  provisioner "powershell" {
    inline = [
      "choco install -y googlechrome",
      "choco install -y 7zip",
    ]
  }

  # Install IIS
  provisioner "powershell" {
    inline = [
      "Install-WindowsFeature -Name Web-Server -IncludeManagementTools"
    ]
  }
}

Windows Updates

provisioner "powershell" {
  inline = [
    "Install-PackageProvider -Name NuGet -Force",
    "Install-Module -Name PSWindowsUpdate -Force",
    "Import-Module PSWindowsUpdate",
    "Get-WindowsUpdate -Install -AcceptAll -AutoReboot",
  ]
  timeout = "2h"
}

# Wait for reboots
provisioner "windows-restart" {
  restart_timeout = "30m"
}

Cleanup

provisioner "powershell" {
  inline = [
    "# Clear temp files",
    "Remove-Item -Path 'C:\\Windows\\Temp\\*' -Recurse -Force -ErrorAction SilentlyContinue",
    "# Clear Windows Update cache",
    "Stop-Service -Name wuauserv -Force",
    "Remove-Item -Path 'C:\\Windows\\SoftwareDistribution\\*' -Recurse -Force -ErrorAction SilentlyContinue",
    "Start-Service -Name wuauserv",
  ]
}

Common Issues

WinRM Timeout

  • Increase winrm_timeout to 15m or more
  • Verify security group allows ports 5985/5986
  • Check user data script completed successfully

PowerShell Execution Policy

provisioner "powershell" {
  inline = [
    "Set-ExecutionPolicy Bypass -Scope Process -Force",
    "# Your commands here",
  ]
}

Long Build Times

  • Windows Updates can take 1-2 hours
  • Use pre-patched base images when available
  • Set provisioner timeout = "2h"

References

Related skills

Forks & variants (1)

Windows Builder has 1 known copy in the catalog totaling 24 installs. They canonicalize to this original listing.

How it compares

Use for Windows-specific Packer and WinRM patterns rather than Linux container or Dockerfile workflows.

FAQ

What does windows builder do?

Build Windows images with Packer using WinRM communicator and PowerShell provisioners. Use when creating Windows AMIs, Azure images, or VMware templates.

When should I invoke windows builder?

Build Windows images with Packer using WinRM communicator and PowerShell provisioners. Use when creating Windows AMIs, Azure images, or VMware templates.

What are key capabilities?

Increase `winrm_timeout` to 15m or more

Is Windows Builder safe to install?

skills.sh reports 1 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.