The Microsoft Teams desktop client has many configurable settings one of which is App language within the General tab > Language. So in this blog I'll show you how to manage Teams desktop client settings automatically with PowerShell.
If you're looking for a GPO/ADMX that provides easy control over Teams desktop client settings, at the time of writing you're out of luck.
Instead, we can configure the desired settings by modifying the desktop-config.json file which exists at the path $env:userprofile\\AppData\Roaming\Microsoft\Teams\.
Here's what a desktop-config.json file looks like in VSCode after I've run it through a JSON linter.
Note above that I've highlighted "currentWebLanguage":"en-us". This is the relevant key and value which aligns to the App language setting I mentioned at the start of this blog.
So to modify the desired Teams desktop client setting App language we can run the below PowerShell script through a GPO targeting your AD users.
- Parameter defaults are set but can be overriden.
- If Teams is not installed no action is taken.
- If the Teams desktop config file already contains the desired parameter value no action is taken.
- The Teams desktop process will be stopped (if running) to allow changes to be made.
- The Teams cookie file will be deleted (if exists) to allow changes to take effect on next Teams startup.
- The below script is idemptotent so multiple runs will not change the result or cause an error.
- Always test new scripts on test/dev environments first prior to running in production.
The above PowerShell script can be modified to cater for situations where you have multiple settings to manage - for example:
- General > Auto-start application
- General > Application > Disable GPU hardware acceleration
- General > Register Teams as the chat app for Office
In the example below I've updated the above PowerShell script to also modify the Disable GPU hardware acceleration setting which aligns to the disableGpu key/value within the Teams desktop-config.json file.
In the future I hope there'll be an GPO/ADMX for configuring these settings easily at scale, for now I'm happy to continue managing these settings with PowerShell.