<?xml version="1.0" encoding="UTF-8"?>
<!--
    manpage, user manual, usage: VBoxManage unattended
-->
<!--
    Copyright (C) 2006-2023 Oracle and/or its affiliates.

    This file is part of VirtualBox base platform packages, as
    available from https://www.virtualbox.org.

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    as published by the Free Software Foundation, in version 3 of the
    License.

    This program is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, see <https://www.gnu.org/licenses>.

    SPDX-License-Identifier: GPL-3.0-only
-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[
<!ENTITY % all.entities SYSTEM "all-entities.ent">
%all.entities;
]>
<refentry id="vboxmanage-unattended" lang="en">
  <refentryinfo>
    <pubdate>$Date: 2023-01-17 15:15:46 +0100 (Tue, 17 Jan 2023) $</pubdate>
    <title>VBoxManage unattended</title>
  </refentryinfo>

  <refmeta>
    <refentrytitle>VBoxManage-unattended</refentrytitle>
    <manvolnum>1</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>VBoxManage-unattended</refname>
    <refpurpose>unattended guest OS installation</refpurpose>
    <refclass>&product-name;</refclass>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis id="synopsis-vboxmanage-unattended-detect"> <!-- The 'id' is mandatory and must start with 'synopsis-'. -->
      <command>VBoxManage unattended detect</command>
      <arg choice="req">--iso=<replaceable>install-iso</replaceable></arg>
      <arg>--machine-readable</arg>
    </cmdsynopsis>
    <cmdsynopsis id="synopsis-vboxmanage-unattended-install"> <!-- The 'id' is mandatory and must start with 'synopsis-'. -->
      <command>VBoxManage unattended install</command>
      <arg choice="req"><replaceable>uuid|vmname</replaceable></arg>
      <arg choice="req">--iso=<replaceable>install-iso</replaceable></arg>
      <arg>--user=<replaceable>login</replaceable></arg>
      <arg>--password=<replaceable>password</replaceable></arg>
      <arg>--password-file=<replaceable>file</replaceable></arg>
      <arg>--full-user-name=<replaceable>name</replaceable></arg>
      <arg>--key=<replaceable>product-key</replaceable></arg>
      <arg>--install-additions</arg>
      <arg>--no-install-additions</arg>
      <arg>--additions-iso=<replaceable>add-iso</replaceable></arg>
      <arg>--install-txs</arg>
      <arg>--no-install-txs</arg>
      <arg>--validation-kit-iso=<replaceable>testing-iso</replaceable></arg>
      <arg>--locale=<replaceable>ll_CC</replaceable></arg>
      <arg>--country=<replaceable>CC</replaceable></arg>
      <arg>--time-zone=<replaceable>tz</replaceable></arg>
      <arg>--hostname=<replaceable>fqdn</replaceable></arg>
      <arg>--package-selection-adjustment=<replaceable>keyword</replaceable></arg>
      <arg>--dry-run</arg>
      <arg>--auxiliary-base-path=<replaceable>path</replaceable></arg>
      <arg>--image-index=<replaceable>number</replaceable></arg>
      <arg>--script-template=<replaceable>file</replaceable></arg>
      <arg>--post-install-template=<replaceable>file</replaceable></arg>
      <arg>--post-install-command=<replaceable>command</replaceable></arg>
      <arg>--extra-install-kernel-parameters=<replaceable>params</replaceable></arg>
      <arg>--language=<replaceable>lang</replaceable></arg>
      <arg>--start-vm=<replaceable>session-type</replaceable></arg>
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <refsect2 id="vboxmanage-unattended-detect">
      <title>unattended detect</title>
      <remark role="help-copy-synopsis"/>
      <para>
        Detects the guest operating system (OS) on the specified installation ISO
        and displays the result.  This can be used as input when creating a VM for
        the ISO to be installed in.
      </para>
      <variablelist>
        <varlistentry>
          <term><option>--iso=<replaceable>install-iso</replaceable></option></term>
          <listitem><para>The installation ISO to run the detection on.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--machine-readable</option></term>
          <listitem><para>Produce output that is simpler to parse from a script.</para></listitem>
        </varlistentry>
      </variablelist>
    </refsect2>

    <refsect2 id="vboxmanage-unattended-install">
      <title>unattended install</title>
      <remark role="help-copy-synopsis"/>
      <para>
        Reconfigures the specified VM for installation and optionally starts it up.
      </para>
      <variablelist>
        <varlistentry>
          <term><replaceable>uuid|vmname</replaceable></term>
          <listitem><para>Either the UUID or the name (case sensitive) of a VM.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--iso=<replaceable>install-iso</replaceable></option></term>
          <listitem><para>The installation ISO to run the detection on.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--user=<replaceable>login</replaceable></option></term>
          <listitem><para>The login name. (default: vboxuser)</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--password=<replaceable>password</replaceable></option></term>
          <listitem>
            <para>The login password.  This is used for the user given by <option>--user</option> as well as the
              root/administrator user.  (default: changeme)</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--password-file=<replaceable>file</replaceable></option></term>
          <listitem>
            <para>Alternative to <option>--password</option> for providing the password.  Special filename
              <computeroutput>stdin</computeroutput> can be used to read the password from standard input.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--full-user-name=<replaceable>name</replaceable></option></term>
          <listitem><para>The full user name.  (default: --user)</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--key=<replaceable>product-key</replaceable></option></term>
          <listitem><para>The guest OS product key.  Not all guest OSes requires this.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--install-additions</option>, <option>--no-install-additions</option></term>
          <listitem><para>Whether to install the VirtualBox guest additions.  (default: --no-install-addations)</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--additions-iso=<replaceable>add-iso</replaceable></option></term>
          <listitem>
            <para>Path to the VirtualBox guest additions ISO.  (default: installed/downloaded GAs)</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--install-txs</option>, <option>--no-install-txs</option></term>
          <listitem>
            <para>Whether to install the test execution service (TXS) from the VirtualBox ValidationKit.
              This is useful when preparing VMs for testing or similar.  (default: --no-install-txs)</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--validation-kit-iso=<replaceable>testing-iso</replaceable></option></term>
          <listitem>
            <para>Path to the VirtualBox ValidationKit ISO.  This is required if <option>--install-txs</option>
              is specified. </para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--locale=<replaceable>ll_CC</replaceable></option></term>
          <listitem>
            <para>The base locale specification for the guest, like en_US, de_CH, or nn_NO.  (default: host or en_US)</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--country=<replaceable>CC</replaceable></option></term>
          <listitem><para>The two letter country code if it differs from the specified by <option>--location</option>.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--time-zone=<replaceable>tz</replaceable></option></term>
          <listitem><para>The time zone to set up the guest OS with. (default: host time zone or UTC)</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--hostname=<replaceable>fqdn</replaceable></option></term>
          <listitem>
            <para>The fully qualified domain name of the guest machine.
              (default: <replaceable>vmname</replaceable>.myguest.virtualbox.org)</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--package-selection-adjustment=<replaceable>keyword</replaceable></option></term>
          <listitem>
            <para>Adjustments to the guest OS packages/components selection.  This can be specfied more than once.  Currently
              the only recognized keyword is <computeroutput>minimal</computeroutput> which triggers a minimal installation for
              some of the guest OSes.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--dry-run</option></term>
          <listitem><para>Do not create any files or make any changes to the VM configuration.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--start-vm=<replaceable>session-type</replaceable></option></term>
          <listitem>
            <para>Start the VM using the front end given by <replaceable>session-type</replaceable>. This is the same as
              the <option>--type</option> option for the <computeroutput>startvm</computeroutput> command, but we have add
              <computeroutput>none</computeroutput> for indicating that the VM should not be started.
              (default: <computeroutput>none</computeroutput>)</para></listitem>
        </varlistentry>
      </variablelist>

      <para>Advanced options:</para>
      <variablelist>
        <varlistentry>
          <term><option>--auxiliary-base-path=<replaceable>path</replaceable></option></term>
          <listitem>
            <para>The path prefix to the media related files generated for the installation.
              (default: <replaceable>vm-config-dir</replaceable>/Unattended-<replaceable>vm-uuid</replaceable>-)</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--image-index=<replaceable>number</replaceable></option></term>
          <listitem><para>Windows installation image index. (default: 1)</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--script-template=<replaceable>file</replaceable></option></term>
          <listitem><para>The unattended installation script template.  (default: IMachine::OSTypeId dependent)</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--post-install-template=<replaceable>file</replaceable></option></term>
          <listitem><para>The post installation script template.  (default: IMachine::OSTypeId dependent)</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--post-install-command=<replaceable>command</replaceable></option></term>
          <listitem>
            <para>A single command to run after the installation is completed.  The exact format and exactly
              when this is run is guest OS installer dependent.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--extra-install-kernel-parameters=<replaceable>params</replaceable></option></term>
          <listitem>
            <para>
              List of extra linux kernel parameters to use during the installation. (default: IMachine::OSTypeId dependent)
            </para></listitem>
        </varlistentry>
        <varlistentry>
          <term><option>--language=<replaceable>lang</replaceable></option></term>
          <listitem>
            <para>
              Specifies the UI language for a Windows installation.  The <replaceable>lang</replaceable> is
              generally on the form {ll}-{CC}.  See detectedOSLanguages results from <command>VBoxManage unattended detect</command>.
              (default: detectedOSLanguages[0])</para></listitem>
        </varlistentry>

      </variablelist>
    </refsect2>

  </refsect1>
</refentry>

