I get a lot of requests for articles on various deployment techniques. One reader yesterday asked for an example of a customsettings.ini file.
samburattoSam said:
Hey, Thanks for the Blog. Alot of helpfull stuff.
Can you show us an example of a completed\demo customsettings.ini? Cheers
I certainly can, Sam!
I was going through my backups when I remembered that there were a few samples already in the built-in help file. The samples are designed for each of the various deployment scenarios REFRESH, REPLACE and NEW COMPUTER respectively.
The samples given are fully automated and I’ve highlighted in bold the wizard skip commands. In the upgrade customsettings.ini example the SkipWizard property is used eliminating the need for all the other panes. I’ve posted all 3 customsettings.ini samples below.
Fully Automated LTI Deployment for a Refresh Computer Scenario
[Settings] Priority=Default Properties=MyCustomProperty [Default] OSInstall=Y ScanStateArgs=/v:5 /o /c LoadStateArgs=/v:5 /c /lac /lae SkipAppsOnUpgrade=YES SkipCapture=YES SkipAdminPassword=YES SkipProductKey=YES SkipDeploymentType=YES DeploymentType=REFRESH SkipDomainMembership=YES JoinDomain=DomainName DomainAdmin=Administrator DomainAdminDomain=DomainName DomainAdminPassword=a_secure_password SkipUserData=YES UserDataLocation=AUTO UDShare=\\Servername\Sharename\Directory UDDir=%ComputerName% SkipComputerBackup=YES ComputerBackuplocation=AUTO BackupShare=\\Servername\Backupsharename BackupDir=%ComputerName% SkipTaskSequence=YES TaskSequenceID=Enterprise SkipComputerName=YES OSDComputerName=%ComputerName% SkipPackageDisplay=YES LanguagePacks001={3af4e3ce-8122-41a2-9cf9-892145521660} LanguagePacks002={84fc70d4-db4b-40dc-a660-d546a50bf226} SkipLocaleSelection=YES UILanguage=en-GB UserLocale=en-GB KeyboardLocale=0809:00000809 SkipTimeZone=YES TimeZoneName=GMT Standard Time SkipApplications=YES Applications001={a26c6358-8db9-4615-90ff-d4511dc2feff} Applications002={7e9d10a0-42ef-4a0a-9ee2-90eb2f4e4b98} UserID=Administrator UserDomain=DomainName UserPassword=Passw0rd SkipBitLocker=YES SkipSummary=YES Powerusers001=DomainName\ScriptimusPrime
Fully Automated LTI Deployment for an Upgrade Computer Scenario
[Settings] Priority=Default Properties=MyCustomProperty [Default] OSInstall=Y ScanStateArgs=/v:5 /o /c LoadStateArgs=/v:5 /c /lac /lae SkipWizard=YES DeploymentType=UPGRADE TaskSequenceID=Enterprise OSDComputerName=%ComputerName% LanguagePacks001={3af4e3ce-8122-41a2-9cf9-892145521660} LanguagePacks002={84fc70d4-db4b-40dc-a660-d546a50bf226} UILanguage=en-GB UserLocale=en-GB KeyboardLocale=0809:00000809 TimeZoneName=GMT Standard Time Applications001={a26c6358-8db9-4615-90ff-d4511dc2feff} Applications002={7e9d10a0-42ef-4a0a-9ee2-90eb2f4e4b98} UserID=Administrator UserDomain=DomainName UserPassword=a_secure_password Powerusers001=DomainName\ScriptimusPrime
Fully Automated LTI Deployment for a New Computer Scenario
[Settings] Priority=Default Properties=MyCustomProperty [Default] OSInstall=Y ScanStateArgs=/v:5 /o /c LoadStateArgs=/v:5 /c /lac /lae SkipAppsOnUpgrade=YES SkipCapture=YES ComputerBackupLocation=\\ServerName\Backup$\ BackupFile=MyCustomImage.wim SkipAdminPassword=YES SkipProductKey=YES SkipDeploymentType=YES SkipDomainMembership=YES JoinDomain=DomainName DomainAdmin=Administrator DomainAdminDomain=DomainName DomainAdminPassword=a_secure_password SkipUserData=YES UserDataLocation=\\ServerName\Sharename\Directory\usmtdata SkipTaskSequence=YES TaskSequenceID=Enterprise SkipComputerName=YES OSDComputerName=%SerialNumber% SkipPackageDisplay=YES LanguagePacks001={3af4e3ce-8122-41a2-9cf9-892145521660} LanguagePacks002={84fc70d4-db4b-40dc-a660-d546a50bf226} SkipLocaleSelection=YES UILanguage=en-GB UserLocale=en-GB KeyboardLocale=0809:00000809 SkipTimeZone=YES TimeZoneName=GMT Standard Time SkipApplications=YES Applications001={a26c6358-8db9-4615-90ff-d4511dc2feff} Applications002={7e9d10a0-42ef-4a0a-9ee2-90eb2f4e4b98} SkipBitLocker=YES SkipSummary=YES Powerusers001=DomainName\ScriptimusPrime CaptureGroups=YES SLShare=\\ServerName\Sharename\Logs Home_page=https://scriptimus.wordpress.com
Andrew,
Thanks for sharing this!! – it has certainly helped me with automating deployment…
Michael
LikeLike
Andrew, are the CustomSettings.ini values and properties the same for Windows 7 as they are for Windows XP? For example, if I use BackupFile=MYWIM.wim and it works for Windows XP, will that also work for Windows 7, or are there some values that don’t work the same between the two OSs?
I had all of the CustomSettings.ini values and properties to automate a Windows XP deployment, but when using them for Windows 7, I appear to get prompted for some property values despite my CustomSettings.ini entries.
In Windows XP I put this and it worked:
SkipCapture=NO
DoCapture=YES
ComputerBackupLocation=\\SERVERNAME\SHARE\PATH\MDT2010\Captures
BackupFile=Win7ProSP1x64.wim
That doesn’t appear to work for a Windows 7 deployment. It prompts me with the Specify whether to capture an image wizard window asking me for:
To capture the image or not
the location
The file name
As if I didn’t have anything in the CustomSettings.ini to begin with.
Thanks.
LikeLike
JUST after I posted above, I determined what I was doing incorrectly. I was thinking SkipCapture=YES meant don’t do the capture routine, instead of what it really means: don’t prompt me with the GUI and take my supplied values, so I had it set to NO instead of YES. Setting it to YES solved my problem.
Thanks.
LikeLiked by 1 person
How about one for a capture? Need to do a core server capture.
LikeLike
Andrew-
Excellent post. What I want to know is do you need to configure the MDT DB in order to use the CS.ini file and can you use the CS.ini/gather action in a non MDT-integrated TS? So to clarify a little bit, I’ve integrated MDT into SCCM already and created an MDT TS and in the process created a CS.ini package. However when I tried to use that TS to deploy the OS it failed on some models. So I went back and created a regualar TS (older version) without all the MDT scripts included. Can I still use the gather action (CS.ini) in the non-mdt TS and if so where would it go?
Thanks,
Zak
LikeLike
Hi Zak,
The MDT Database is a GUI alternative for the customsettings.ini – it’s one or the other. As for the gather, I’ve never tried to split the TS scripts up, not sure that would be a good idea.
I suggest checking through the logs and finding out why those particular models are failing. Might just be missing drivers.
/Andrew
LikeLike
I have a problem with MDT 2012, as I want to upgrade to Windows XP SP3 x86 x64 Windows 8, but with esenario Refresh, but to capture the user reach me the following error:
FAILURE (9704):USMT 4 cannot be used with destination OS 6.2.9200.16384
LiteTouch Deployment failed, Return Code = -2147467259 0×80004005
Failed to run the action: Capture User State.
Unknown error (Error: 000025E8; Source: Unknown)
LikeLike
To deploy Windows 8 you will need to uninstall the Windows Automated installation Kit(WAIK) and download and install the Assessment and Deployment Kit(ADK).
LikeLike
Hello Andrew, this post is awesome. Thank you.
Is there a way to create conditional rules? For example, prompt the user imaging the machine to select either New or Upgrade Deployment. Base on the choice selected, the Image would decide weather to do a data backup.
-David
LikeLike
Yes. Have a read of my skipping deployment wizard panes article. Here http://wp.me/p1v18I-wF
LikeLike
Andrew,
We have a couple thousand XP machines that we need to migrate to Windows 7, but we have a very diverse environment, with multiple domains, admin groups, etc… Currently, our techs are used to a highly customize able build process. Is there any way to use a unique customsettings.ini file for each migration?
That way each machine can join a different domain, have a different computer name, etc…
I can write the tool to generate a customsettings.ini file, but I don’t know how to tell each unique REFRESH deployment to use that file. It seems to be designed so that you use one customsettings.ini file for all deployments.
I hope that made sense, thank you!
LikeLike
Hi David,
Take a look at the ‘Gather local only’ task sequence step. There’s a button that says ‘Gather local data and process rules’. You can select a custom rules file that you place in your control folder. This rules file takes the same format as a customsettings.ini file. You can put in as much or as little as you want.
For a working example of this download my Testlab Hydration Kit from codeplex. I use different settings for each server.
/Andrew
LikeLike
Thanks for your blogging and your time helping noobs like myself understand cool stuff like this, automation is the future, and its what Im aming at Learning all i can about. I had a problem with you script that refreshes the computert though. IM not totally clear what tasksequence template im suposed to use with it. Also im not sure if this is initiated over the LAN (F12) or by clicking a script inside the operatingsystem to be refreshed. Thank you again for a great blog!
/David
LikeLike
The Standard Task sequence from within the running OS.
LikeLike
Hey Scriptimus Prime, I’m trying to capture and restore my local user setting to my Local C-Drive. But After the MDT 2012 finishes the process. I get the following Error:
ZTI ERROR – Non-zero return code from Loadstate, RC = 11
Moving state store directory C:\MININT\StateStore to %WINDDIR%\StateStore so that it does not get deleted.
ZTI ERROR – Non-zero return code by ZTIUserState, rc = 11
Litetouch deployment failed, Return code = -2147467259 0x80004005
Can you please help?
LikeLike
You would need to look through the USMT logs to see what’s happened there. The loadstate.log should hold the answers.
LikeLike
I also get this
“Hey Scriptimus Prime, I’m trying to capture and restore my local user setting to my Local C-Drive. But After the MDT 2012 finishes the process. I get the following Error:
ZTI ERROR – Non-zero return code from Loadstate, RC = 11
Moving state store directory C:\MININT\StateStore to %WINDDIR%\StateStore so that it does not get deleted.
ZTI ERROR – Non-zero return code by ZTIUserState, rc = 11
Litetouch deployment failed, Return code = -2147467259 0×80004005
Can you please help?
LikeLike
You’ll need to go through your loadstate log to see what caused the error. Usually, you need to capture and restore the user state in a similar manner.
LikeLike
Hi,Andrew
Please help me,how to “Upgrade”, if i use PXE, it shows the “NewComputer”,and if i run Litetouch.vbs ,it shows the “Refresh”, So please help me how to do it within existing OS, Thank you!
LikeLike
It all depends what OS you’re moving from. PXE boot is usually a clean install.
You can only REFRESH XP to Windows 7.
You can only upgrade XP to Vista
or Vista to Windows 7
or Windows 7 to Windows 8.
LikeLike
Hello Andrew,
You are right,my company have lots of Vista os,so i want to upgrade vista to Windows7.Of course,i also want to test how to upgrade win7 to win8, TKS
LikeLike
Three questions.
1. Is there a way to have all these scenarios in the customsettings.ini file and have only one TS and one .wim?
2. I have a .wsf file that I can run on win7 desktop and it created a local account just fine. If i create a application and add the .wsf file and try to install it then it fails with code 193 which means its not a valid win32 app. How can I make this install as an app on the list? I tired making a .bat with copy the wsf file to c:\users\public\desktop then run it but that did not work with mdt. same bat file works fine via windows explorer.
3. I have a scenario that sometimes i need to perform a new install of 7 on a laptop but yet have it join WORKGROUP and not Domain. Looking for a way to automate that. Using MDT2012 with WDS for Pxe. Thanks
LikeLike
I can’t answer this many questions quickly, sorry. Post these as separate questions in the MDT forum. I’ll help answer them there.
For your first question, read this post: MDT 2012: Targeting Lite-Touch Deployments
LikeLike
Is there a way to modify the CustomSettings.ini or any of the vbs/wsf files of an existing lite touch deployment to skip/omit the repartition task? I do not want the disk wiped (as I am storing migration data there)
I’ve tried setting the deploymentype to Refresh in the CustomSettings.ini, but that didn’t work.
any ideas?
LikeLike
If you start the Lite-Touch from within an OS by UNC(ing) to the deployment share and running litetouch.vbs then the machine will REFRESH and partitions will not be affected.
LikeLike
How do I create a 200GB partition on a 500GB harddrive?
I would like to bitlocker the 200GB partition and leave the 300 as empty space.
What can I use in CustomSettings.ini for this to be effective?
Thank you
LikeLike
Use the disk edit tool in the task sequence.
LikeLike
Hi Andrew,
I have a question in regards to copype.cmd command using windows 8 adk. I just recently installed ADK and make sure the Windows PE components is installed.
When I issued the command “copype.cmd amd64 “, I get the error message (see below)
copype.cmd’ is not recognized as an internal or external command,
perable program or batch file.
Please advise
LikeLike
There is another command prompt that is created when you install the ADK. It is called “Deployment and Imaging Tools Environment”. You should run this elevated as administrator. This has the path to the copype.cmd and other deployment tools.
LikeLike
Thanks but i did that and I ran it as an elevated account (administrator) but still i get the same error. I issue the command “dir” and copype.cmd is not listed there.
LikeLike
Try the same thing on another (clean)machine. Sounds like somethings very wrong there.
LikeLike
Thanks a lot Andrew.. I probably have to reinstall it again.
LikeLike