2

We previously used just WDS to deploy our images. WDS was setup to request approval for new machines. We used the "Name and Approve" option to name the machines as we added them. If it was pre-existing, it would just use the existing computer name from AD. Then in our unattend.xml file we had Computername=%MACHINENAME%. This picked up the name we gave it during approval and set the computer name accordingly.

We are now implementing MDT to manage our images and drivers. But upon testing, we noticed it would assign random computer names. I went into the Unattend.xml for the deploy task sequence and added that value under Specialize > amd64_Microsoft-Windows-Shell-Setup_neutral > Computername=%MACHINENAME%. But when we try applying the image, it errors out at that point of the install.

How can an MDT deployment be configured to leverage the pre-staged computer names?

Some additional info:

Error message during the imaging process:

Windows could not parse or process the unattend answer file for pass [specialize]. The settings specified in the answer file cannot be applied. The error was detected while processing settings for component [Microsoft-Windows-Shell-Setup].?

setuperr.log:

2014-07-22 14:02:13, Error [setup.exe] [Action Queue] : Unattend action failed with exit code 4 2014-07-22 14:02:13, Error [setup.exe] Execution of unattend GCs failed; hr = 0x0; pResults->hrResult = 0x8030000b

SamErde
  • 3,324
  • 3
  • 23
  • 42
MSCF
  • 135
  • 1
  • 3
  • 11
  • 1
    You forgot to ask an actual question. I edited one in based on what I thought you wanted to know, but please feel free to edit if you want to know something different. – MDMarra Jul 22 '14 at 17:52

2 Answers2

1

To name a computer with MDT you need to edit the custom properties ini (Customsettings.ini found in the control folder).

The property for the computer name is: OSDComputerName=<PC NAME HERE>

You can use any of these variables to automatically fill in the computer's name:

ARCHITECTURE=<detected architecture> (x86 or x64)
SERIALNUMBER=<detected computer serial number>
MAKE=<detected manufacture>
MODEL=<detected Model of computer>
PRODUCT=<I do not know what this relates to>
ASSETTAG=<if available on your system>

For more examples and ideas please visit: http://scriptimus.wordpress.com/2011/04/19/mdt-2010-setting-the-default-computername/.
Even though it says MDT 2010 the above variables are present in 2013.

Here is an example of my setup:
OSDComputerName=Elliot-%SERIALNUMBER%
It puts "elliot-" in front of the system's serial number which is essentially unique.

Elliot Huffman
  • 1,169
  • 1
  • 10
  • 22
0

You might look into setting up an MDT Database. I have ours setup this way. It matches on the Serial Number or the UUID of the device and then assigns the designated matching computer name from the DB record.

This was helpful when I set it up: https://technet.microsoft.com/en-us/library/dn759415.aspx#PerformingDeploymentsUsingtheMDTDB

Scroll down to the "Performing Deployments Using the MDT DB" section.

It was something of a bear to get the DB populated to begin with, but I was able to put together a powershell script to grab the data from WMI as each device came online and dump it into the DB.

https://blogs.technet.microsoft.com/mniehaus/2009/05/14/manipulating-the-microsoft-deployment-toolkit-database-using-powershell/

Hope this helps.

lightwing
  • 11
  • 5