
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)
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-builderAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1.8k |
|---|---|
| repo stars | ★ 781 |
| Security audit | 1 / 3 scanners passed |
| Last updated | August 4, 2026 |
| Repository | hashicorp/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
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_timeoutto 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.
- hashicorp - 24 installs
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.