To follow-up on my earlier post “Deploying Windows 10 Enterprise Technical Preview with MDT 2012 Update 1 Preview” Let’s try to do a little automation to make the deployment experience a little smoother.
We just need to do a little configuration within the Microsoft Deployment Toolkit 2013 Update 1 Preview.
The first thing that comes to mind is, when we PXE/media boot our client.
We are shown the Microsoft Deployment Toolkit Welcome Wizard. We need to click Run the Deployment Wizard to install a new Operating System.
Note that in this picture is also the option to set Default Keyboard layout for Windows PE as well as a Static IP. I’m going to assume that we always have DHCP in place and accessible for our clients.
To skip the Welcome Wizard:
- Right Click your Deployment Share
- Click Properties
- Click Rules
- Click Edit Bootstrap.ini
- The bootstrap.ini contains configuration needed before we connect to our Deployment Share.
- Keep in mind that all changes here will not be reflected until a new media has been generated.
- in the [Default] section right under that path to your DeployRoot add: SkipBDDWelcome=YES
- Close the editor
- Click Ok to close Deployment Share Properties
- Right click your Deployment Share
- Click Update your deployment share
- Click Next
- Click Next
- Click Finish
- The ISO and WIM image within the Boot folder of your Deployment Share has now been updated – attached ISO media to VM or update WIM file on your Windows Deployment Server. I’m going to copy the Wim to my Hyper-V Host and mount it in my test VM.
- Boot your client to verify the changes
Next up – User Credentials Prompt
Specify credentials for connecting to network shares
This is where need to type in the credentials for the Deployment Share. This is the last prompt before we start processing data from the Deployment Share – so we need to edit bootstrap.ini again
- Right Click your Deployment Share
- Click Properties
- Click Rules
- Click Edit Bootstrap.ini
- in the [Default] section right under that path to your SkipBDDWelcome add: UserID=<someusername>
UserDomain=<domain or servername>
UserPassword=<somepassword>
- The UserID can we a local account on the server hosting our Deployment Share.
- UserDomain must reflect if the account is Domain based or local on our Deployment Share server
- We only need NTFS read rights (and of course read share permissions) for the Deployment Share
- Close the editor
- Click Ok to close Deployment Share Properties
- Right click your Deployment Share
- Click Update your Deployment Share
- Click Next
- Click Next
- Click Finish
- Update your ISO or PXE Media
- Boot your client to verify the changes
We are now taken directly to the Task Sequence wizard
Select a task sequence to execute on this computer
Let suppose that we only have and need one task sequence job – lets automate this step as well
Changes will be a bit easier this time, hence we don’t need to update the ISO or PXE media each time – we are now working with CustomSettings.ini
- Right Click your Deployment Share
- Click Properties
- Click Rules
- in the [Default] section right under the last line (In my case its SkipBitLocker=Yes) add:
- SkipTaskSequence=Yes
- TaskSequenceID=IW10ETPX64
- The Task Sequence ID can be found in Task Sequences tab under the Deployment Share
-
List of Task Sequences within your Deployment Share
- Click Ok
- Boot your client to verify the changes
You should now be brought directly to the Computer Details page
Domain or workgroup information
I’m going to keep this window visible for the computer naming part, but it can of course be skipped. It will require two skip options:
- SkipComputerName=Yes
- SkipDomainMembership=Yes
You could also just prepopulate the fields in CustomSettings.ini for either Domain or Group
Domain:
- JoinDomain=ClientGeeks.com
- MachineObjectOU=OU=Staging,DC=CLientgeeks,DC=com
Workgroup:
- JoinWorkgroup=SomeWorkGroup
It will automatically use the account used to connect the network share, you can for obviously reasons use a different account
- JoinDomain=ClientGeeks.local
- DomainAdmin=DomainJoinAccount
- DomainAdminDomain=Clientgeeks.com
- DomainAdminPassword=Pa$$w0rd1
The great part of working with CustomSettings.ini is that there is no need to rebuild boot media – changes are effective immediately – go ahead and give it a try
When you boot your client again with the latests additions, we have arrived at Move Data and Settings:
Move data and settings from a previous version of Windows
The default option for this step is: Do not move user data and settings, If we where to just skip this step, the outcome would be no data and settings backup
Some other configuration options are:
- USMTOfflineMigration=True
- DoNotFormatAndPartition=Yes
- OSDStateStorePath=\\MDT01\StateStore$
Configure CustomSettings.ini and boot the client again – you could also just click next, BUT we know that testing is good, and more testing is better! 😉
Next up is the Locale and Time Zone selection
Specify locale and time preferences
The valid skip options:
- SkipLocaleSelection=Yes
- SkipTimeZone=Yes
I’m going to configure the optional options just as default
- KeyboardLocale=0409:00000409
- UserLocale=0409:00000409
- UILanguage=en-us
- TimeZone=004
- TimeZoneName=Pacific Standard Time
If you ready and retry – you should now only be prompted with a “Ready to begin” and a blank details section, don’t see any need for this page, so let’s just skip this as well
Ready to begin
This can be skipped with the follwing option:
Let try it out! 🙂
Hopefully you have achieved an automated installation progress now
Installation Progress
The IT Organization and Running Package name can also we changed, here is an example that includes the current date and tasksequence ID using a variable – can of course just be static text.
- _SMSTSOrgName=ClientGeeks.com #day(date) & “-” & month(date) & “-” & year(date)#
- _SMSTSPackageName=%TaskSequenceID%
Customized Installation Progress Window
Here is a snip of my CusomSettings.ini and Bootstrap.ini – yours should look similar to this
CustomSettings.ini
[Settings]
Priority=Default
Properties=MyCustomProperty
[Default]
OSInstall=Y
SkipCapture=YES
SkipAdminPassword=YES
SkipProductKey=YES
SkipComputerBackup=YES
SkipBitLocker=YES
SkipTaskSequence=Yes
TaskSequenceID=IW10ETPX64
SkipComputerName=Yes
SkipDomainMembership=Yes
JoinDomain=ClientGeeks.com
MachineObjectOU=OU=Staging,DC=ClientGeeks,DC=com
SkipUserData=Yes
SkipLocaleSelection=Yes
SkipTimeZone=Yes
KeyboardLocale=0409:00000409
UserLocale=0409:00000409
UILanguage=en-us
TimeZone=004
TimeZoneName=Pacific Standard Time
SkipSummary=Yes
_SMSTSOrgName=ClientGeeks.com #day(date) & “-” & month(date) & “-” & year(date)#
_SMSTSPackageName=%TaskSequenceID%
Bootstrap.ini:
[Settings]
Priority=Default
[Default]
DeployRoot=\\MDT01\DeploymentShare$
SkipBDDWelcome=YES
UserID=svc-mdt-install
UserDomain=ClientGeeks.com
UserPassword=Password1
Have fun deploying! 🙂