{"id":18544763,"url":"https://github.com/131/autounattend","last_synced_at":"2026-02-13T14:13:16.983Z","repository":{"id":185997726,"uuid":"622527101","full_name":"131/autounattend","owner":"131","description":"A autounattend.xml helper for windows os deployments","archived":false,"fork":false,"pushed_at":"2025-01-21T12:12:55.000Z","size":65,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-29T17:41:32.816Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/131.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-04-02T11:38:38.000Z","updated_at":"2025-01-21T12:12:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"754bdbe0-7f66-4fa4-93d5-47d3d007133e","html_url":"https://github.com/131/autounattend","commit_stats":null,"previous_names":["131/autounattend"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/131/autounattend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/131%2Fautounattend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/131%2Fautounattend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/131%2Fautounattend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/131%2Fautounattend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/131","download_url":"https://codeload.github.com/131/autounattend/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/131%2Fautounattend/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260358685,"owners_count":22997091,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T20:17:32.742Z","updated_at":"2026-02-13T14:13:11.935Z","avatar_url":"https://github.com/131.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[autounattend](https://github.com/131/autounattend) is a CLI tool that help you build autounattend.xml files.\r\n\r\n\r\n[![NPM version](https://img.shields.io/npm/v/autounattend.svg)](https://www.npmjs.com/package/autounattend)\r\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](http://opensource.org/licenses/MIT)\r\n[![Code style](https://img.shields.io/badge/code%2fstyle-ivs-green.svg)](https://www.npmjs.com/package/eslint-plugin-ivs)\r\n\r\n\r\n# Motivation\r\n\r\nWriting dynamic autounattend.xml files can be tedious. This tool simplifies the process by requiring you to write a meta, simplified `config.yml` file that describes your needs. Additionally, anything but trivial scripting might require external `ps1/cmd` scripts that have to be referenced from your autounattend.xml. However, depending on your provisioning pattern (e.g., USB stick / Terraform `cd_contents` provisioner), finding the \"provisioning drive\" can be a complex task.\r\n\r\nThe simplest macro, \r\n`$drive=([System.IO.DriveInfo]::getdrives()  | Where-Object { Test-Path -Path ($_.Name+\"\\\\autounattend.xml\")} | Select-Object -first 1).Name;`, can make every command line complex. Furthermore, I wanted to have standalone and portable `autounattended.xml` files.\r\n\r\nThis script inlines all external script files you might want to reference into base64-encoded metadata and makes them available directly in the autounattended.xml. The script will use a simple xml query introspecting lookup and Invoke-Expression. Therefore, the generated autounattended.xml file is portable and *stanalone*.\r\n\r\n`config.yml` + scripts/folder =\u003e `cnyks autounattend` =\u003e :boom:*boom*:sparkles: standalone `autounattend.xml` :boom:*boom*:sparkles:\r\n\r\n\r\n## Advanced \r\nYou might want to use the `UseConfigurationSet` macro, which copies whatever file you have in your provisioning folder into a `%windows%` subfolder and makes it available behind the `%configurationset%` macro. Again, `autounattend.js` inlines any script you might want to use, so there should be no requirements for this.\r\n\r\n\r\n\r\n# Usage\r\n```\r\n# Write config.yml file.(see syntax template below)\r\nnpm install -g cnyks autounattend\r\n\r\ncnyks autounattend config.yml --ir://run=generate\r\n# Enjoy\r\n```\r\n\r\n## Example configuration\r\n```\r\nhostname: makeitshort\r\nwindows:\r\n  product_key: $PRODUCT_KEY\r\nadministrator:\r\n  password: $PASSWORD\r\n\r\nhostcommands:\r\n  - dism.exe /online /Enable-Feature /FeatureName:Containers /All /norestart\r\n\r\nusercommands:\r\n  - cmd.exe /c \"echo hi \u003e\u003e c:\\\\traces\"\r\n\r\n  - type: powershell\r\n    file: scripts/enable-rdp.ps1\r\n\r\n  - type: powershell\r\n    file: scripts/enable-winrm.ps1\r\n\r\n  - type: powershell\r\n    command: |\r\n      Set-MpPreference -DisableArchiveScanning 1 -ErrorAction SilentlyContinue;\r\n      Set-MpPreference -DisableArchiveScanning 1 -ErrorAction SilentlyContinue;\r\n      Set-MpPreference -DisableBehaviorMonitoring 1 -ErrorAction SilentlyContinue;\r\n      Set-MpPreference -DisableIntrusionPreventionSystem 1 -ErrorAction SilentlyContinue;\r\n      Set-MpPreference -DisableIOAVProtection 1 -ErrorAction SilentlyContinue;\r\n      Set-MpPreference -DisableRemovableDriveScanning 1 -ErrorAction SilentlyContinue;\r\n      Set-MpPreference -DisableBlockAtFirstSeen 1 -ErrorAction SilentlyContinue;\r\n      Set-MpPreference -DisableScanningMappedNetworkDrivesForFullScan 1 -ErrorAction SilentlyContinue;\r\n      Set-MpPreference -DisableScanningNetworkFiles 1 -ErrorAction SilentlyContinue;\r\n      Set-MpPreference -DisableScriptScanning 1 -ErrorAction SilentlyContinue;\r\n      Set-MpPreference -DisableRealtimeMonitoring 1 -ErrorAction SilentlyContinue;\r\n```\r\n\r\n# Credits\r\n* [131](https://github.com/131)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F131%2Fautounattend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F131%2Fautounattend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F131%2Fautounattend/lists"}