Windows Setup Automation Overview

You can automate Windows installation in several different ways. You can use the methods described below together or individually to accomplish the level of automation that your deployment needs.

Setupconfig.ini

Create a Setupconfig.ini file

A Setupconfig.ini file is a file that:

  • Starts with [SetupConfig] as a header
  • Includes one or more parameters or parameters and value pairs
    • Each parameter or parameter and value pair is on its own line
    • Parameter and value pairs include = between the two, with no spaces.

See Windows Setup command-line options to see the different parameters that can be used in a Setupconfig.ini file.

Example Setupconfig.ini

Here is an example setupconfig.ini file:

[SetupConfig]
NoReboot
ShowOobe=None
Telemetry=Enable

This command is equivalent to running Setup /NoReboot /ShowOobe None /Telemetry Enable from the command line.

See the next section to learn how to use a Setupconfig.ini file

Use Setupconfig.ini with Windows Setup

Using media/ISO file

If you are running Windows setup from media or an ISO file, you must include the location to the setupconfig file on the command line (/ConfigFile <path>) when running setup.exe. For example:

Setup.exe /ConfigFile <path to Setupconfig.ini>

If you include a parameter on the command line and the same parameter in the setupconfig file, the setupconfig file parameter and value has precedence.

Using Windows Update

If the update is delivered through Windows Update, Windows Setup searches in a default location for a setupconfig file. You can include the setupconfig file at %systemdrive%\Users\Default\AppData\Local\Microsoft\Windows\WSUS\SetupConfig.ini

Use an answer file while installing Windows

You can automate Windows installation by using an answer file:

Servicing with Setup: Start with a new device with a USB that contains Windows Setup, your Windows image file, and an unattend.xml customization file. Apply it to new devices.

Use a USB flash drive

  1. Use a sample answer file or create your own with Windows System Image Manager (Windows SIM).

  2. Save the file as Autounattend.xml on the root of a USB flash drive.

  3. On a new PC, put in the Windows product DVD and the USB flash drive, and then boot the PC. When no other answer file is selected, Windows Setup searches for this file.

Select an answer file

  • You can select a specific answer file during installation by booting to the Windows Preinstallation Environment, and running Windows Setup with the /unattend:<filename> option. For more information, see Windows Setup command-line options.

For sample answer files and a list of settings used to automate installation, see Automate Windows Setup.

Modify an existing installation

Because reboots are required during Setup, a copy of the answer file is cached to the %WINDIR%\Panther directory of the Windows installation. You can modify this file to do any of the following:

  • Update system and control panel settings without booting the image.

  • Update an image by preparing the PC to boot to audit mode. See Boot Windows into Audit mode or OOBE.

  • Update the order in which drivers or packages are installed. (Packages with dependencies may require installation in a certain order.)

Replace the answer file in an offline image

  1. Create a custom answer file in Windows System Image Manager (Windows SIM).

  2. Open an elevated command prompt.

  3. Mount the Windows image.

    Dism /Mount-Image /ImageFile:"C:\images\CustomImage.wim" /Index:1 /MountDir:C:\mount
    
  4. Modify or replace the file: \Windows\Panther\unattend.xml in the mounted image.

    Copy CustomAnswerFile.xml C:\mount\Windows\Panther\unattend.xml
    

    Note

    The answer file in the image may contain settings that have not yet been processed. If you want these settings to get processed, edit the existing file rather than replacing it.

  5. Unmount the image, committing changes

    Dism /Unmount-Image /MountDir:C:\mount /Commit
    
  6. Test the image by deploying it to a new PC, without specifying an answer file. When Windows Setup runs, it finds and uses this answer file.

Implicit Answer File Search Order

Windows Setup searches for answer files at the beginning of each configuration pass, including the initial installation and after applying and booting an image. If an answer file is found, and it contains settings for the given configuration pass, it processes those settings.

Windows Setup identifies and logs all available answer files, depending on the search order. The answer file that has the highest precedence is used. The answer file is validated and then cached to the computer. Valid answer files are cached to the $Windows.~BT\Sources\Panther directory during the windowsPE and offlineServicing configuration passes. After the Windows installation is extracted to the hard disk, the answer file is cached to %WINDIR%\panther.

The following table shows the implicit answer file search order.

Search Order Location Description

1

Registry

HKEY_LOCAL_MACHINE\System\Setup\UnattendFile

Specifies a pointer in the registry to an answer file. The answer file is not required to be named Unattend.xml.

2

%WINDIR%\Panther\Unattend

The name of the answer file must be either Unattend.xml or Autounattend.xml.

Note

Windows Setup searches this directory only on downlevel installations. If Windows Setup starts from Windows PE, the %WINDIR%\Panther\Unattend directory is not searched.

3

%WINDIR%\Panther

Windows Setup caches answer files to this location for use in subsequent stages of installation. For example, when a computer reboots, Setup can continue to apply the settings in an answer file. If you explicitly specify an answer file by using Windows Setup or Sysprep, the answer file cached to this directory is overwritten with the explicitly specified answer file.

Important

Do not use, modify, or overwrite the answer file in this directory. The answer file in this directory is annotated by Windows Setup during installation. This answer file cannot be reused in Windows SIM or any other Windows installations.

4

Removable read/write media in order of drive letter, at the root of the drive.

Removable read/write media in order of drive letter, at the root of the drive.

The name of the answer file must be Autounattend.xml, and the answer file must be located at the root of the drive.

5

Removable read-only media in order of drive letter, at the root of the drive.

Removable read-only media in order of drive letter, at the root of the drive.

The name of the answer file must be Autounattend.xml, and must be located at the root of the drive.

6

windowsPE and offlineServicing configuration passes:

  • \Sources directory in a Windows distribution

All other passes:

  • %WINDIR%\System32\Sysprep

In the windowsPE and offlineServicing configuration passes, the name of the answer file must be Autounattend.xml.

For all other configuration passes, the file name must be Unattend.xml.

7

%SYSTEMDRIVE%

The answer file name must be Unattend.xml or Autounattend.xml

8

Drive from where Windows Setup (setup.exe) is running, at the root of the drive.

The name of the answer file must be Unattend.xml or Autounattend.xml, and must be located at the root of the Windows Setup folder path.

Sensitive Data in Answer Files

Setup removes sensitive data in the cached answer file at the end of each configuration pass.

Because answer files are cached to the computer during Windows Setup, your answer files will persist on the computer between reboots. Before you deliver the computer to a customer, you must delete the cached answer file in the %WINDIR%\panther directory. There might be potential security issues if you include domain passwords, product keys, or other sensitive data in your answer file.

If you have unprocessed settings in the oobeSystem configuration pass that you intend to run when an end user starts the computer, consider deleting the sections of the answer file that have already been processed. One option when you run the sysprep /oobe command might be to use a separate answer file that only contains settings in the oobeSystem configuration pass.

If an answer file is embedded in a higher precedence location than the cached answer file, then the cached answer may be overwritten at the beginning of each subsequent configuration pass, if the embedded answer file matches the implicit search criteria.

For example, if an answer file is embedded at %WINDIR%\Panther\Unattend\Unattend.xml, the embedded answer file will replace the cached answer file at the beginning of each configuration pass. For example, if the embedded answer file specifies both the specialize and oobeSystem configuration passes, then the embedded answer file is discovered for the specialize configuration pass, cached, processed, and sensitive data is cleared. The embedded answer file is discovered again during the oobeSystem configuration pass and cached again. As a result, the sensitive data for the specialize configuration pass is no longer cleared. Sensitive data for previously processed configuration passes will not be cleared again. Unless the cached answer file must be overridden, embed the answer files at a location that has a lower precedence.

Because answer files are cached to the computer during Windows Setup, your answer files will persist on the computer between reboots. Before you deliver the computer to a customer, you must delete the cached answer file in the %WINDIR%\panther directory. There might be potential security issues if you include domain passwords, product keys, or other sensitive data in your answer file. However, if you have unprocessed settings in the oobeSystem configuration pass that you intend to run when an end user starts the computer, consider deleting the sections of the answer file that have already been processed. One option when you run the sysprep /oobe command might be to use a separate answer file that only contains settings in the oobeSystem configuration pass.

You can add a command to the Setupcomplete.cmd command script that deletes any cached or embedded answer files on the computer. For more information, see Add a Custom Script to Windows Setup.

Windows Setup Annotates Configuration Passes in an Answer File

After a configuration pass is processed, Windows Setup annotates the cached answer file to indicate that the pass has been processed. If the configuration pass is run again and the cached answer file has not been replaced or updated in the interim, the answer file settings are not processed again. Instead, Windows Setup will search for implicit Unattend.xml files that are at a lower precedence location than the cached Unattend.xml file.

For example, you can install Windows with an answer file that contains Microsoft-Windows-Deployment/RunSynchronous commands in the specialize configuration pass. During installation, the specialize configuration pass runs and the RunSynchronous commands execute. After installation, run the sysprep command with the /generalize option. If there is no answer file in a higher precedence than the cached answer file or an answer file was not explicitly passed to the Sysprep tool, Setup runs the specialize configuration pass the next time that the computer boots. Because the cached answer file contains an annotation that the settings for that configuration pass were already applied, the RunSynchronous commands do not execute.

Implicit Answer File Search Examples

The following examples help describe the behavior of implicit answer file searches.

Answer Files Named Autounattend.xml are Automatically Discovered by Windows Setup

  1. Create an answer file that is named Autounattend.xml that includes settings in the windowsPE configuration pass.

  2. Copy Autounattend.xml to a removable media device.

  3. Boot the Windows installation media.

  4. Insert the removable media device when Windows is booting. This example assumes that the removable media is assigned the drive letter D:\.

    Windows Setup starts and automatically identifies Autounattend.xml as a valid answer file. Because the answer file uses a valid file name (Autounattend.xml), is located in one of the valid search paths (the root of D), and includes valid settings for the current configuration pass (windowsPE), this answer file is used.

    The answer file is cached to the computer. If there are no additional answer files discovered in later passes, the cached answer file is used throughout Windows Setup.

Answer Files are Discovered in Order of Precedence in Predefined Search Paths

  1. Install Windows with an answer file by using the steps in the previous scenario. The answer file that is used to install Windows is cached to the system in the %WINDIR%\Panther directory.

  2. Copy an Unattend.xml file to the %WINDIR%\System32\Sysprep directory.

    This answer file has settings in the generalize configuration pass.

  3. Run the sysprep command with the /generalize option to create a reference image.

    Because the %WINDIR%\System32\Sysprep directory is in the implicit search paths, the answer file copied to this directory is found. However, an answer file that was used to install Windows is still cached on the computer and contains settings for the generalize configuration pass. This cached answer file has a higher precedence than the one copied to the Sysprep directory. The cached answer file is used.

To use the new answer file, you can copy it to a directory of a higher precedence than the cached answer file, or you can specify the answer file by using the /unattend option. For example:

sysprep /generalize /unattend:C:\MyAnswerFile.xml

Answer Files Must Include a Valid Configuration Pass

  1. Copy an Unattend.xml file to a removable media device.

    The Unattend.xml file has settings only for the auditSystem and auditUser configuration passes.

  2. On an installed Windows operating system, run the sysprep /generalize /oobe command.

    Even though the answer file is available in one of the implicit search paths, the Unattend.xml file is ignored because it does not contain a valid pass for the generalize configuration pass.

Additional Resources

See the following topics for more information about answer files and configuration passes:

Windows Setup Scenarios and Best Practices

Windows Setup Installation Process

Automate Windows Setup

Audit Mode Overview

Windows Setup Configuration Passes

Windows Setup Supported Platforms and Cross-Platform Deployments