Customize Windows 10 Start , Taskbar, Language and Region Settings

When we use Immy for deployments, the language and region settings are set to US. We have to modify them manually, and Microsoft does not give a simple opportunity to do so. Also, I don’t see an option to customize the Start and taskbar layout for users. Provisioning packages or MDM might be one of the choices; however, integration as part of ImmyMDM is still pending.

Do we have any idea when this will be included on the Immy features list?

@DarrenDK
@DimitriRodis

I believe the “Region Settings (Beta)” or “Windows System Locale/Culture/Language/GeoID [Work in Progress]” tasks may achieve what you’re after - for your first one.
There is also then “Set Time Zone” too for settingtime.

I cant speak to start menu/task bar unfortunately

I second this - language selection from OOBE is a nightmare (Microsoft to blame), and at the time of writing basically require us to use an imaging tool alongside Immy.

Hopefully that changes wi the release of ImmyMDM

This was one that I did during a scripting call several months back. Honestly I don’t recall where we left off. I think I was waiting for some feedback after testing and never received any.

That said, if someone can test that out and give me feedback so I can fix what’s broken, or remove what may never work, and remove the [Work In Progress] tag, that would be great.

@DarrenDK , would it be difficult (or possible) to allow some alteration of the language and regional settings when Immy generates the PPKG?

Had a device go out today that we didnt realise was setup as English (UK) as opposed to English (AU) which meant the keyboard was wrong - admittedly I didnt have this script set to run at onboarding.

I will run this script next time i have a device go out, probably next week. Its only set to run at onboarding to test that experience.

I would love if we could set these as defaults at the MSP tenant level or customer level, or customise the PPKG for it!

The issue we are facing is that if we set up the region settings to English (UK) during the initial setup, Immy sets them back to English (US) after running the onboarding. I haven’t tested the “Region Settings (Beta)” or “Windows System Locale/Culture/Language/GeoID [Work in Progress]." But I will be during our next outing. Also, I will try to replicate these tasks, omit the onboarding, and test them out to see if that makes the desired change.

@DarrenDK had advised me earlier that this could be achieved using the MDM and that Immy MDM would be able to do so.

i too need this desperately

I ran the build and it was not working.

True
True
Get-InstalledLanguage : The term ‘Get-InstalledLanguage’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:10 char:14

  • … (Get-InstalledLanguage).LanguageId -contains $__using_Loca …
  •         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    

* CategoryInfo : ObjectNotFound: (Get-InstalledLanguage:String) , CommandNotFoundException
* FullyQualifiedErrorId : CommandNotFoundException

Get-SystemPreferredUILanguage : The term ‘Get-SystemPreferredUILanguage’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:12 char:14

* ```
        (Get-SystemPreferredUILanguage) -eq $__using_LocaleName
  •        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    

* CategoryInfo : ObjectNotFound: (Get-SystemPreferredUILanguage:String) , CommandNotFoundException
* FullyQualifiedErrorId : CommandNotFoundException

False
False
True
Invoke-Command : The term ‘Get-SystemPreferredUILanguage’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:113 char:4

* ```
        Invoke-Command -ScriptBlock ([ScriptBlock]::Create($__usi …
  •       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    

* CategoryInfo : ObjectNotFound: (Get-SystemPreferredUILanguage:String) [Invoke-Command], CommandNotFoundException
* FullyQualifiedErrorId : CommandNotFoundException,Microsoft.PowerShell.Commands.InvokeCommandCommand

I think Get-InstalledLanguage has some prerequisites. It seems to be reliably installed since 22H2 though (10 and 11)

Thank you @James_Harper

So, does it imply that if the OS version is pre-22H2, it won’t work and we have to wait for the Immy MDM integration?

I just took the time to check and Get-InstalledLanguage works on a Windows 10 21H1 machine I happen to be connected to right now.

So now I don’t know what to think. I’ve definitely seen this before though. Maybe it needs the powershell module installed, or maybe there is a windows feature required first?

It most likely just needs the module installed. I’ve done a similar thing using the new module for bcd info and importing it into Windows 10 21H2. If you can’t download it from the gallery, though, you can zip the folder at “C:\Windows\System32\WindowsPowerShell\v1.0\Modules\LanguagePackManagement” and extract it to the same location on the desired computer. (Really hacky, but works)

Thank you @Dakota_Lewis.

I tested and it again failed. I added to import and install the module. I also tried to download and execute and extract. Still failed to import.

I just had this on a new PC. It works now though. The difference is that updates have been installed…

Does the task only work on new PCs, or can we try it on already-onboarded ones?
Do we have to install windows language updates after the initial onboarding run or which updates were installed on your new PC @James_Harper .

I think my previous onboarding went like:
Set Language
Apply Updates

Set Language failed so then I retried it and it worked. I had assumed it was the updates that installed the required package.

But now I just did a wipe on a computer and tried again and Get-InstalledLanguage worked straight away so I’m really not sure…

Thank you @James_Harper . I will give this another shot with a newly built device.

We got mixed results, with some failures and some successes.

Failed ones:

@DimitriRodis Your thoughts on this?

configuring start bar and taskbar would be a big win. Just had a customer ask about it this week.

@DimitriRodis

I know you mentioned that you worked on the code, but it still shows Work In Progress. It seems to be working half the time and failing others. Can you please take a look into this as well? Many Thanks.