Unnecessary display languages can use a huge chunk of disk space. According to Microsoft, “Having too many affects disk space, and can affect performance, especially while updating and servicing Windows.” In my own experience, language packs can take as much as 20-25GB of disk space.
There are a lot of resources about installing and removing language packs but I’m not interested in rehashing that information. These are the two objectives of this article:
- Easily list installed language packs from a command-line
- Remove unneeded language packs using the command-line
There’s more I’d like to add when I can find time to put the information together…
Identify Installed Languages from the Command-line
The following command can be used to list installed language packs:
wmic os get muilanguages
The output will look something like this (but will only show installed packs):
C:\>wmic os get muilanguages
MUILanguages
{"en-US", "he-IL", "ro-RO", "ru-RU", "ja-JP ", "sk-SK", "da-DK", "zh-CN", "ko-KR"}
The following can also be used to view the installed packs:
$OSInfo = Get-WmiObject -Class Win32_OperatingSystem
$languagePacks = $OSInfo.MUILanguages
$languagePacks
For my purposes, I wanted to get the list from a single, simple command and I didn’t like this method as much.
Uninstall the Language Packs from the Command-line
For our example, we’ll assume the default language is “en-US”. To remove all other language packs, I would use the following command:
lpksetup.exe /r /s /u he-IL ro-RO ru-RU ja-JP sk-SK da-DK zh-CN ko-KR
In this example, the specified language packs will be uninstalled (/u) silently (/s) and restarting will be supressed (/r).
If you want to ensure that the machine reboots if necessary, change /r to /f.
Also, the location of the switches matters. The languages need to immediately follow the /u switch.
If you’re hungry for more information about language packs and command-line options, you can check out these links: