Share via


Customsettings.ini with MDT and SCCM Integration

Question

Tuesday, July 25, 2017 5:37 PM

I have MDT 2013 integrated with sccm 2012 (1606), I have been able to Deploy the OS fine.

I am not able to figure out, which customsettings.ini file gets used, in this process.

I did change few settings in   customsettings.ini in MDT share  gets created after MDT integration, but that seems to be not getting used.

I looked in to the my SCCM package of boot image , getting copied during deployment in WinPE mode for scripts (for ztigather etc) and check the customsettings.ini there, it is present, but not in readable format (attached ).

I want to control the deployment rules via customsettings.ini , with sccm and MDT integration, but cant figure out, please help.

All replies (16)

Tuesday, July 25, 2017 8:15 PM ✅Answered

When using MDT within a ConfigMgr task sequence nothing in the deployment share is used because, it's not MDT. Also, what's in the boot image is not used during the TS.

The MDT TS wizard within the ConfigMgr console creates a couple of default packages for you:

- An MDT package

- An MDT setting package

The MDT package is more or less the equivalent to the deployment share just delivered to the target system as part of the TS instead of accessed from a share.

The MDT setting package is where you put a custom unattend.xml and a custom cs.ini file. You can also create multiple MDT settings packages for different OSes or for whatever differences you may have.

The gather tasks within the task sequence then reference a specific settings package.

Thus, if you want to update a cs.ini, you need to edit the cs.ini in the source location of the MDT custom settings package that your TS references in the Gather task.

Jason | http://blog.configmgrftw.com | @jasonsandys


Wednesday, July 26, 2017 3:48 PM ✅Answered

> "not sure if customsettings.ini getting picked from here ?"

As noted, that's set in your Gather task(s) so you'll have to review them to find out which is being used.

Jason | http://blog.configmgrftw.com | @jasonsandys


Thursday, July 27, 2017 8:42 AM ✅Answered

Jason has already mentioned to you that you need to check your gather item in the TS


Wednesday, July 26, 2017 10:09 AM

Also, what do you mean by this? Can you elaborate on exactly what you want to achieve in customsettings.ini?

" I want to control the deployment rules via customsettings.ini "


Wednesday, July 26, 2017 1:43 PM

Jason,

I can see the packages, and I am using the MDT-Local here, when I check in WinPE, this package is getting copied in my C:\SMSTaskSequence\Packages\P0100014 folder all scripts running from there

also my Use Toolkit Package is pointing to MDT-Local in my TS.

also , I do see a package, (below screenshot) MDT-USMT, where customsettings.ini and Unattended.xml exists.

not sure if customsettings.ini getting picked from here ?


Wednesday, July 26, 2017 1:46 PM

Would like to create dynamic rule, for computername , domain join, in specific OU etc.


Wednesday, July 26, 2017 6:38 PM

This can be easily done by setting variables in your task sequence rather than using customsettings.ini

In the section Post Install, insert "Set Task Sequence Variable" for each of the following

Variable: OSDComputerName

Value : your desired computer name

Variable: OSDDomainOUName

Value: Canonical path of the OU you wish to have the computer name joined to

This works perfectly for me and is easier than using customsettings.ini.   Every time you wish to change something in customsettings.ini you need to re-deploy to your DP's.


Wednesday, July 26, 2017 6:47 PM

There are pros and cons to both methods.

Hardcoding everything in a task sequence is not very flexible or dynamic is a high-level statement of why folks use cs.ini.

Jason | http://blog.configmgrftw.com | @jasonsandys


Wednesday, July 26, 2017 6:51 PM

Fair enough. To me, it seems easier to edit a task sequence variable which takes effect immediately rather than a customsetting.ini file which has to be re-deployed every time.  Its also easier for someone else to pickup if starting from scratch, as its all visible in the TS, rather than inside a .ini file somewhere.

But as you said there are pros and cons and lots of different ways to achieve the same goals in sccm which makes it so interesting/frustrating ... as you prefer

As for dynamic, then use dynamic variables :)


Wednesday, July 26, 2017 7:03 PM

Ultimately, cs.ini can be swapped out though by simply changing the package referenced in the Gather tasks.

Alternatively, cs.ini is just a static replacement for the MDT database which can add a whole additional level of being dynamic.

There's no one path.

Jason | http://blog.configmgrftw.com | @jasonsandys


Thursday, July 27, 2017 8:08 AM

so do I need to dig into ztigather.wsf script to find out, where it points to for cs.ini ?

or can it be figured out from TS or TS variable ?

please suggest.


Thursday, July 27, 2017 8:09 AM

so do I need to dig into ztigather.wsf script to find out, where it points to for cs.ini ?

or can it be figured out from TS or TS variable ?

please suggest.


Saturday, July 29, 2017 3:26 AM

Thanks , i can figure out now.


Friday, February 2, 2018 4:57 PM

Hello,

please show me an example of this

Value: Canonical path of the OU you wish to have the computer name joined to


Monday, March 5, 2018 5:32 PM

You can put something like this 

MachineObjectOU=OU=A,OU=B,OU=C,OU=D,DC=TEST,DC=com

in your customesettings.ini


Monday, May 6, 2019 5:16 PM

Ultimately, cs.ini can be swapped out though by simply changing the package referenced in the Gather tasks.

Alternatively, cs.ini is just a static replacement for the MDT database which can add a whole additional level of being dynamic.

There's no one path.

Jason | http://blog.configmgrftw.com | @jasonsandys

CS.ini is definitely a much more slick method to streamline Deployments of Windows OS. Lite Touch really is the best option IMO!