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

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 hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem.

If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, submit a request to Microsoft Customer Service and Support to obtain the hotfix.

Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site: Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.
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.
  1. Start Registry Editor.
  2. Locate and then click the following key in the registry:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
  3. On the Edit menu, click Add Value, and then add the following registry value:
    Value name: IgnoreRemoteKeyboardLayout
    Data type: REG_DWORD
    Value data: 1
  4. 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

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:

  1. 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
  2. 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.
    1. Start Registry Editor.
    2. Locate and then click the following key in the registry:
      HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client
    3. 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)
    4. Quit Registry Editor.
  3. Configure the Terminal Server profile for the user to match the Terminal Server client:
    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.

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.
Propriedades

ID do Artigo: 322042 - Última Revisão: 14/06/2008 - Revisão: 1

Comentários