Monday, September 8, 2014

SCCM 2012 OSD & Regional Settings: How To Remove Keyboard Layouts?!

Situation
Suppose you’ve got to roll out Windows 7 SP1 to a bunch of systems. And this version of Windows 7 SP1 is localized, e.g.the Dutch language. So you want these systems to run with the proper localization settings. On itself this isn’t difficult at all, and already many well known SCCM pro’s have blogged about it, like this posting from Kenny Buntinx.

I especially prefer his posting because he not only tells you how to go about it, but also how to use variables so – per Collection you can decide what localization settings are to be applied.

So this one was easy to solve. Even when you have to cover the two well known architectures, 32 and 64 bit. Per architecture the correct Unattended.xml is built and used in the related Task Sequences. Nothing special and almost a Next > Next > Finish experience.

HOWEVER… removing the unwanted keyboard layout and keeping the correct one turned out to be a lot harder to solve. This is what I am talking about, removing the keyboard layout Dutch (Netherlands) – Dutch:
image

So afterwards it has to look like this:
image

And NO! HACKING THE REGISTRY WON’T WORK AND EVEN WRECK HAVOC ON MANDATORY PROFILES!!! SO DON’T DO THAT!!!

Finally, after testing and searching on the internet, I found this MSDN article, all about Windows Vista Command Line Configuration of International Settings. And yes, even though this article is all about the long forgotten (at least Microsoft hopes so Smile), it still works on Windows 7 (I wasn’t too surprised I might add).

This MSDN article tells you how to parse an XML file to the INTL.cpl which controls Region and Language settings. This xml file enables you to configure it down to the smallest bit. Awesome!

So finally the means to an end were found. Now the next step was how to use it, or better WHEN. Because these settings are on a per user basis, so rolling this out while OSD is taking place won’t do the job.

Finally I ended up creating an Application for it (the XML file and a xyz.cmd file containing the syntax) which I deployed against a dedicated Device Collection.

It was a challenge to get it all working but I must say I’ve learned tons new things SmileSmileSmile

No comments: