Article ID: 322042
Article Last Modified on 10/30/2006
APPLIES TO
- Microsoft Windows 2000 Service Pack 1
- Microsoft Windows 2000 Service Pack 3
- Microsoft Windows 2000 Service Pack 2
This article was previously published under Q322042
IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:
256986 Description of the Microsoft Windows Registry
SYMPTOMS
When a Terminal Server client connects to a Terminal Server computer, the keyboard layout is retained but the input-language setting may not match that of the client.
For example, if your client is configured with an input-language setting of French and a keyboard layout setting of French (Canada), the Terminal Server session defaults to an input-language setting of English and a keyboard layout setting of French (Canada).
CAUSE
The Terminal Server client determines the keyboard layout and input language of the Terminal Server session by sending the current keyboard layout. However, substituted keyboard layouts do not properly maintain their input-language settings.
RESOLUTION
Service Pack Information
To resolve this problem, obtain the latest service pack for Microsoft Windows 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
260910 How to Obtain the Latest Windows 2000 Service Pack
Hotfix Information
A supported fix is now available from Microsoft, but it is only intended to correct the problem that is described in this article. Apply it only to computers that are experiencing this specific problem. This fix may receive additional testing. Therefore, if you are not severely affected by this problem, Microsoft recommends that you wait for the next that contains this fix.
To resolve this problem immediately, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information about support costs, visit the following Microsoft Web site:
NOTE: In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The typical support costs will apply to additional support questions and issues that do not qualify for the specific update in question.
After you install the hotfix, the following registry key will permit different behavior on the server. After the user logs on to the Terminal Server computer, the session uses the default keyboard layout stored in the user profile instead of the layout provided by the Terminal Server client.
WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.
- Start Registry Editor.
- Locate and then click the following key in the registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
- On the Edit menu, click Add Value, and then add the following registry value:
Value name: IgnoreRemoteKeyboardLayout
Data type: REG_DWORD
Value data: 1 - Quit Registry Editor.
After you first connect to the Terminal Server computer, configure the default keyboard layout and input language that you want, and then log off. All later user logons will use the default keyboard layout and input language from the profile.
To change the keyboard layout for an installed input locale, follow these steps:
- Open the Regional Options tool in Control Panel.
- Click the Input Locales tab, click the language whose keyboard layout or input method editor that you want to change under Input language, and then click Properties.
- In the Input Locale Properties dialog box, click the keyboard layout or input method editor that you want to use, and then click OK.
The English-language version of this fix should have the following file attributes or later:
Date Time Version Size File name ------------------------------------------------------------------------ 26-Jul-2002 10:27 5.0.2195.5781 123,664 adsldp.dll 26-Jul-2002 10:27 5.0.2195.5781 131,344 adsldpc.dll 26-Jul-2002 10:27 5.0.2195.5781 62,736 adsmsext.dll 26-Jul-2002 10:27 5.0.2195.5940 358,160 advapi32.dll 26-Jul-2002 10:27 5.0.2195.5265 42,256 basesrv.dll 26-Jul-2002 10:27 5.0.2195.5855 49,424 browser.dll 26-Jul-2002 10:27 5.0.2195.5943 135,952 dnsapi.dll 26-Jul-2002 10:27 5.0.2195.5595 96,016 dnsrslvr.dll 26-Jul-2002 10:27 5.0.2195.5722 45,328 eventlog.dll 26-Jul-2002 10:27 5.0.2195.5907 222,992 gdi32.dll 26-Jul-2002 10:27 5.0.2195.5859 145,680 kdcsvc.dll 04-Jun-2002 10:31 5.0.2195.5859 199,952 kerberos.dll 26-Jul-2002 10:27 5.0.2195.4928 708,880 kernel32.dll 15-Jul-2002 04:52 5.0.2195.5940 71,024 ksecdd.sys 22-Jul-2002 12:54 5.0.2195.5960 507,152 lsasrv.dll 22-Jul-2002 12:54 5.0.2195.5960 33,552 lsass.exe 26-Jul-2002 10:27 5.0.2195.4733 332,560 msgina.dll 23-Jul-2002 10:27 5.0.2195.5966 108,304 msv1_0.dll 26-Jul-2002 10:27 5.0.2195.5979 307,472 netapi32.dll 26-Jul-2002 10:27 5.0.2195.5966 360,720 netlogon.dll 26-Jul-2002 10:27 5.0.2195.5979 916,752 ntdsa.dll 26-Jul-2002 10:27 5.0.2195.5966 387,344 samsrv.dll 26-Jul-2002 10:27 5.0.2195.5951 129,296 scecli.dll 26-Jul-2002 10:27 5.0.2195.5951 302,864 scesrv.dll 18-Jul-2002 13:45 5.0.2195.5950 64,000 sp3res.dll 25-Jun-2001 15:17 3.10.0.103 47,808 user.exe 26-Jul-2002 10:27 5.0.2195.5931 379,664 user32.dll 26-Jul-2002 10:27 5.0.2195.5968 369,936 userenv.dll 26-Jul-2002 10:27 5.0.2195.5859 48,912 w32time.dll 04-Jun-2002 10:32 5.0.2195.5859 57,104 w32tm.exe 17-Jul-2002 07:45 5.0.2195.5948 1,642,416 win32k.sys 03-May-2002 07:31 5.0.2195.5731 178,960 winlogon.exe 26-Jul-2002 10:27 5.0.2195.5935 243,472 winsrv.dll 26-Jul-2002 10:27 5.0.2195.5944 125,712 wldap32.dll 26-Jul-2002 10:27 5.0.2195.5774 72,976 wmicore.dll
WORKAROUND
You can configure Terminal Server RDP clients to work around this issue without installing the hotfix. To do so, set the following registry key for the keyboard layout before the substitution occurs. You can also configure clients to set the profile of the session to substitute back to the keyboard layout. To do so, follow these steps:
- Retrieve the locale ID from the Substitutes key.
For example, the following key will hold the substituted value of the keyboard. The 00000c0c value is being substituted to the Canadian keyboard layout of 00001009:HKEY_CURRENT_USER\Keyboard Layout\Substitutes
00000c0c REG_SZ 00001009 - On the Terminal Server client, set the keyboard layout value (REG_SZ) in the following registry key to the value retrieved in step 1.
In this example, set the value to 00000c0c.- Start Registry Editor.
- Locate and then click the following key in the registry:
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client
- On the Edit menu, click Add Value, and then add the following registry value:
Value name: Keyboard Layout
Data type: REG_SZ
Value data: 00000c0c (or Locale ID that you want from the Substitute key) - Quit Registry Editor.
- Configure the Terminal Server profile for the user to match the Terminal Server client:
- Open the Regional Options tool in Control Panel.
- Click the Input Locales tab, click the language whose keyboard layout or input method editor that you want to change under Input language, and then click Properties.
- In the Input Locale Properties dialog box, click the keyboard layout or input method editor that you want to use, and then click OK.
STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Microsoft Windows 2000 Service Pack 4.
MORE INFORMATION
If the Terminal Server client is configured to use the keyboard layout from the profile, this takes effect as soon as the user logs on. Therefore, the keyboard layout is determined by the client at the logon screen. This means that the user must select the appropriate keyboard type each time before connecting to Terminal Server.
Keywords: kbqfe kbhotfixserver kbshell kbwin2ksp4fix kbbug kbfix KB322042