Skip to content

[issue]: [feature] Support for "control" (menu) inside "auto_install" plugin #3549

@JeanCarloEM

Description

@JeanCarloEM

Official FAQ

  • I have checked the 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:

  1. Dynamic Edition Selection: Choosing between different Windows Product Keys (Home, Pro, Enterprise) without having multiple XML files.
  2. Software Profile Presets: Selecting a post-install profile (e.g., "Gamer", "Developer", "Basic") directly from the Ventoy interface.
  3. 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)"
          ]
        }
      ]
    }
]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions