Official FAQ
Ventoy Version
1.1.10
What about latest release
Yes. I have tried the latest release, but the bug still exist.
Try alternative boot mode
Yes. I have tried them, but the bug still exist.
BIOS Mode
Both
Partition Style
GPT
Disk Capacity
128gb
Disk Manufacturer
Kingston
Image file checksum (if applicable)
None
Image file download link (if applicable)
No response
What happened?
Description
After extensive testing and research, I have identified a limitation in the current implementation of the auto_install plugin. Although the control plugin is designed to create interactive menus for variable selection, it does not currently function when nested within auto_install configurations.
I have tested various approaches, from simple variable injections to advanced configurations, and confirmed that variables defined via a menu are not expanded inside the unattended templates (such as Windows autounattend.xml or Linux answer files).
The Goal
The objective is to allow the control menu to act as a "pre-flight" selection tool for automated installations. This would enable a single ISO and a single Template file to serve multiple deployment scenarios by dynamically injecting user-selected values into the installation script.
Real-World Use Case
This feature would allow for:
- Dynamic Edition Selection: Choosing between different Windows Product Keys (Home, Pro, Enterprise) without having multiple XML files.
- Software Profile Presets: Selecting a post-install profile (e.g., "Gamer", "Developer", "Basic") directly from the Ventoy interface.
- Structural Variable Expansion: Support for replacing custom tags (e.g.,
VNTY_SERIAL_WIN_KEYTAG) not just with simple values, but with entire XML nodes, properties, or multi-line code blocks. This is essential for scenarios like switching between a generic Product Key and an OEM activation, where the entire <ProductKey> segment must be either injected or completely stripped (using Regex or block-level substitution) to prevent XML schema errors.
Detailed Configuration Example (Current Non-Working Scenario)
Below is the exact structure I am trying to achieve. Currently, Ventoy ignores the control block inside auto_install:
"auto_install": [
{
"parent": "/boot/ISOs/Installs/Windows",
"template": "/boot/autonome/windows/Instalar/Automatizado.xml",
"control": [
{
"item": "VNTY_SERIAL_WIN_PRODUCTKEYTAG",
"value": "",
"menu": [
"<!-- OEM: empty, using BIOS value-->|OEM - Original Equipment Manufacturer",
"<ProductKey><Key>YTMG3-N6DKC-DKB77-7M9GH-8HVX7</Key></ProductKey>|Home",
"<ProductKey><Key>4CPRK-NM3K3-X6XXQ-RXX86-MTFDY</Key></ProductKey>|Home N",
"<ProductKey><Key>VK7JG-NPHTM-C97JM-9MPGT-3V66T</Key></ProductKey>|Pro",
"<ProductKey><Key>2B87N-8KFHP-DKV6R-Y2C8J-PKCKT</Key></ProductKey>|Pro N",
"<ProductKey><Key>BT79Q-G7N6G-PGBYW-4YWX6-6F4BT</Key></ProductKey>|Home Single Language",
"<ProductKey><Key>NPPR9-FWDCX-D2C8J-H872K-2YT43</Key></ProductKey>|Enterprise",
"<ProductKey><Key>XQQYW-N6F4Q-V3BT8-YBWK2-PTPBT</Key></ProductKey>|IoT Enterprise",
"<ProductKey><Key>XGVPP-NMH47-7TTHJ-W3FW7-8HV2C</Key></ProductKey>|IoT Enterprise Subscription",
"<ProductKey><Key>CPWHC-NT2C7-VYW78-WH8QH-889MM</Key></ProductKey>|Enterprise multi-session",
"<ProductKey><Key>NW6C2-QMPVW-D7KKK-3GKT6-VCFB2</Key></ProductKey>|Education",
"<ProductKey><Key>6TP4R-GNPTD-KYYHQ-7B7DP-J447Y</Key></ProductKey>|Pro Education",
"<ProductKey><Key>DXG7C-N36C4-C4HTG-X4T3X-2YV77</Key></ProductKey>|Pro for Workstations",
"<ProductKey><Key>DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4</Key></ProductKey>|Enterprise N",
"<ProductKey><Key>2WH4N-8QGBV-H22JP-CT43Q-MDWWJ</Key></ProductKey>|Education N",
"<ProductKey><Key>YVWGF-BXNMC-HTVAY-H9Y97-G9PPH</Key></ProductKey>|Pro Education N",
"<ProductKey><Key>WYPNQ-8C467-V2W6J-TX4WX-WT2RQ</Key></ProductKey>|Pro N for Workstations"
]
},
{
"item": "VNTY_PERFIL_CONFIG_INSTALL_CRU",
"value": "Basic",
"menu": [
" |Clean System (No extras)",
"Essentials|Essentials: Codecs and base utilities",
"Basic|Daily use: Browsers, LibreOffice, etc.",
"Designer|Creative: Creative tools only",
"Designer+|Daily use + Creative",
"Gamer|Gamer: Steam, Epic and dependencies only",
"Gamer+|Daily use + Gamer",
"Gamer++|Daily use + Creative + Gaming",
"Dev|Developer: Programming tools only",
"Dev+|Daily use + Developer",
"Dev++|Daily use + Creative + Developer",
"Full|Full Package (All-in-one)"
]
}
]
}
]
Official FAQ
Ventoy Version
1.1.10
What about latest release
Yes. I have tried the latest release, but the bug still exist.
Try alternative boot mode
Yes. I have tried them, but the bug still exist.
BIOS Mode
Both
Partition Style
GPT
Disk Capacity
128gb
Disk Manufacturer
Kingston
Image file checksum (if applicable)
None
Image file download link (if applicable)
No response
What happened?
Description
After extensive testing and research, I have identified a limitation in the current implementation of the
auto_installplugin. Although thecontrolplugin is designed to create interactive menus for variable selection, it does not currently function when nested withinauto_installconfigurations.I have tested various approaches, from simple variable injections to advanced configurations, and confirmed that variables defined via a menu are not expanded inside the unattended templates (such as Windows
autounattend.xmlor Linux answer files).The Goal
The objective is to allow the
controlmenu to act as a "pre-flight" selection tool for automated installations. This would enable a single ISO and a single Template file to serve multiple deployment scenarios by dynamically injecting user-selected values into the installation script.Real-World Use Case
This feature would allow for:
VNTY_SERIAL_WIN_KEYTAG) not just with simple values, but with entire XML nodes, properties, or multi-line code blocks. This is essential for scenarios like switching between a generic Product Key and an OEM activation, where the entire<ProductKey>segment must be either injected or completely stripped (using Regex or block-level substitution) to prevent XML schema errors.Detailed Configuration Example (Current Non-Working Scenario)
Below is the exact structure I am trying to achieve. Currently, Ventoy ignores the
controlblock insideauto_install: