Changing MUI settings from MUISETUP command line?

by Michael S. Kaplan, published on 2006/12/28 03:01 -05:00, original URI: http://blogs.msdn.com/b/michkap/archive/2006/12/28/1371979.aspx


The other day Paul asked me:

Hi Michael,

Been playing around with MUISETUP from XP SP2 (with just Australian English installed), trying to get Japanese installed as the default language. I'm running the following from the command line:

muisetup /i 0411 /d 0411 /l /f /r /s

Followed by a reboot, which changes the logoff/logon screens to Japanese, but when I log back on as the same user I ran MUISETUP as, the menus are in English.

I'm sure I'm missing something, but how do I change this for that user so all the menus etc change to Japanese from the command line?

Rgds

Paul

Paul, you aren't missing anything -- the documented MUISETUP.EXE command line parameters do not support setting the user default UI language of the user in whose context the code is run. Per the documentation, here are all the supported command line parameters for Windows 2000/XP/Server 2003:

Command Prompt Setup

To enable quiet mode installations, Muisetup.exe accepts parameters entered at the command line. This can be useful either during an unattended installation of the Windows 2000 MultiLanguage Version or simply during the addition and/or removal of user interface languages.
To use the command line parameters, use the command prompt to navigate to the directory containing the Muisetup program, and then type:

    muisetup.exe

followed by any of the following switches:

    /i (specifies the user interface language(s) to be installed)
    /d (specifies the default user interface language that will be applied to all new user accounts)
    /u (specifies the user interface language(s) to be uninstalled)
    /r (specifies that the reboot message should not be displayed)
    /s (specifies that the installation complete message should not be displayed)

When using the /i, /d, and /u switches, the languages must be entered using their four-digit hexadecimal Language ID values. Language IDs should be separated by a space, as in the following example:

    muisetup.exe /i 0411 0409 0c0a /d 0411 /u 0414 040c

Kind of says it all -- you can install/uninstall UI languages and you can change the UI language for new accounts (which also handles .DEFAULT which does the logon screen UI language). No integrated logon user UI language changing. 

For that setting Paul is looking for, you have to go the route of the unattend file and intl.cpl....

Now of course in Vista there must be a whole lot of changes -- I'll have to cover those changes soon!

 

This post brought to you by М (U+041c, a.k.a. CYRILLIC CAPITAL LETTER EM)


# Paul on 28 Dec 2006 5:03 PM:

Since sending my email, I found the references to regopts.txt and intl.cpl (support.microsoft.com/kb/289125 if anyone else is looking) but struggled to get this working. I did find that that adding the following registry keys did the job though:

[HKEY_CURRENT_USER\Control Panel\Desktop]

"MUILanguagePending"="00000411"

[HKEY_CURRENT_USER\Keyboard Layout\Preload]

"4"="e0010411"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\MUILanguages\FileVersions\0411\comdlg32.dll]

"000600000b540884"=dword:00000001

"MUIVer"=hex(b):00,00,28,0a,00,00,06,00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\MUILanguages\FileVersions\0411\CRYPTUI.dll]

"000500830a280884"=dword:00000001

"MUIVer"=hex(b):00,00,28,0a,83,00,05,00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\MUILanguages\FileVersions\0411\MPR.dll]

"000500010a280884"=dword:00000001

"MUIVer"=hex(b):00,00,28,0a,01,00,05,00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\MUILanguages\FileVersions\0411\MSCTF.dll]

"000500010a280884"=dword:00000001

"MUIVer"=hex(b):00,00,28,0a,01,00,05,00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\MUILanguages\FileVersions\0411\SHLWAPI.dll]

"000600000b540a99"=dword:00000001

"MUIVer"=hex(b):00,00,28,0a,00,00,06,00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\MUILanguages\FileVersions\0411\USER32.dll]

"000500010a280a3e"=dword:00000001

"MUIVer"=hex(b):00,00,28,0a,01,00,05,00

Though I'm sure thats not exactly the best way to get it done :) I'll continue plugging away with regopts.txt - currently my regopts.txt file has:

[RegionalSettings]

MUILanguage=0411

but its not taking.

# Michael S. Kaplan on 28 Dec 2006 9:08 PM:

I highly reccomend against adding registry keys/values -- please dump to a log file so you can find out exactly what is failing when you use intl.cpl to do the job here....

# Paul on 28 Dec 2006 9:38 PM:

I thought you might recommend against that :) The client no longer wants the Japanese dialogs/menus for the user that is running the changes, but I had a look at the log file and realised (naturally) I had a typographic error, so I did get it working. Sorry about wasting your time with that last post!


Please consider a donation to keep this archive running, maintained and free of advertising.
Donate €20 or more to receive an offline copy of the whole archive including all images.

go to newer or older post, or back to index or month or day