Date reviewed: 6/10/2015
Problem:
Your provisioning template is failing to inject the unattend.xml script correctly, or the unattend.xml is injecting but not being utilized by Windows. You may see a failure of the Inject Script action, or it may show as successful but CTOS is not able to complete successfully and your template does not resume after the device reboots to the OS.
Please note, it is beyond the scope of LANDesk technical support to build or troubleshoot the contents of your unattend.xml file. We will troubleshoot issues where the unattend.xml is not injected or used by the OS. See this Community document for more information:
LANDESK Support for Unattend.XML
For more information on troubleshooting CTOS, see this document:
How to troubleshoot the Configure Target OS (CTOS) action in Provisioning templates
Solution:
- Windows will look for unattend.xml files in several specific locations in a specific order. This technet article lists the locations in order:
Methods for Running Windows Setup - If multiple unattend.xml files exist, Windows will use the first unattend.xml it locates and any others will be ignored.
- When preparing a device for image capture, you should delete any existing unattend.xml files on the hard drive to prevent the "wrong" unattend.xml from being used
- If you have an existing image and it does contain an unattend.xml already, you can add a Delete File action to your template to delete it, prior to injecting the correct unattend.xml
- If an existing unattend is found by Windows first, according to the locations it searches first, Windows will never locate and use the unattend.xml injected by LANDesk
- WinPE does not always assign the C: volume label to your OS partition by default. This is a common point of failure. If the inject script action puts the unattend on a drive that does not exist in WinPE it will fail.
- In LDMS9.6 and later, you can add a Partition action to Auto assign partitions immediately after the Deploy Image action. This partition action detects your OS partition and assigns the C: volume label automatically
- In LDMS9.5 and lower, you will need to use individual partition actions to set the OS partition to the C: volume.
- Windows will search C:\Windows\Panther\ as one of the first locations. This is a good location to inject the unattend.xml as it will be found first, before any conflicting unattend.xml files (if they exist) are located. Configure this in the Inject Script action of your provisioning template
- To determine whether your unattend is injecting to the right location you can add a wait action to your Provisioning template right after the Inject Script action. During this wait, open a console and review the logs. This community document provides more information on reading WinPE logs:
OS Provisioning - How to copy log files from WinPE and troubleshoot failing template actions - The injectscripthandler.log will indicate which volume and file location the unattend.xml was injected to.
- From the console, run diskpart, and then list volume:
- Ensure the volume your unattend.xml is injecting to is the same as your OS volume. If it is not, you can change the drive letter you inject the script to, or you can add partition actions to change the volume letter of the OS partition.
- Navigate the file system of your OS partition and validate that your unattend.xml file exists in the right location, and that no other unattend.xml files exist. Running "dir /s unattend.xml" from the root of the OS partition will locate all unattend files that exist and show their location.