Microsoft KB Archive/322042

= Input Language of Terminal Server Client Does Not Match That of Terminal Server Session =

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.



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:

http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

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:
 * 1) Open the Regional Options tool in Control Panel.
 * 2) 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.
 * 3) 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

<div class="workaround_section">

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'''

</li> 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.</li> Locate and then click the following key in the registry:

HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client

</li> 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)

</li> Quit Registry Editor.</li></ol> </li> Configure the Terminal Server profile for the user to match the Terminal Server client:  Open the Regional Options tool in Control Panel.</li> 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.</li> In the Input Locale Properties dialog box, click the keyboard layout or input method editor that you want to use, and then click OK.</li></ol> </li></ol>

<div class="status_section">

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.

<div class="moreinformation_section">

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

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.