本文讨论可用于修改终端服务器计算机上的应用程序行为的注册表设置。
原始 KB 数: 186499
在执行模式下控制应用程序执行
可以为应用程序、注册表路径或.ini文件设置多个兼容性位,以更改当会话处于执行模式时,终端服务器计算机如何处理应用程序初始化数据的合并。 以下子项在注册表中设置这些兼容性位:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Compatibility
此注册表路径下的应用程序、.ini文件和注册表项有三个单独的键。
默认设置适用于大多数应用程序,但可以使用以下兼容性位进一步优化这些设置。
警告
仅当应用程序无法正常工作时,才应更改这些兼容性位。
第一组兼容性位指示设置所针对的应用程序版本。 并非所有组合都很有用(例如,MS-DOS 应用程序确实进行注册表调用)。 由于未指定文件的路径,并且多个应用程序可能使用相同的文件名(例如,Setup.exe和Install.exe现在定期用于安装程序),因此请指定应用程序类型以帮助确保兼容性设置不会影响具有相同文件名的其他应用程序。
若要确定字符串值,请添加要设置的位的值。 例如,若要返回用户名而不是 16 位版本和 32 位版本的Myapp.exe的计算机名称,请通过执行以下步骤在注册表中创建子项。
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,按以下步骤操作时请务必谨慎。 作为额外保护措施,请在修改注册表之前先将其备份。 如果之后出现问题,您就可以还原注册表。 有关如何备份和还原注册表的详细信息,请单击以下文章编号以查看Microsoft知识库中的文章: 322756 如何在 Windows 中备份和还原注册表
-
启动“注册表编辑器”。
-
找到以下注册表子项:
HKEY_LOCAL_MACHINE \Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Compatibility\Applications\Myapp -
在“编辑”菜单上,单击“添加值”,然后键入以下信息:
值名称:标志 类型:REG_DWORD
-
在 Data 框中,键入 11C 的十六进制值(为 16 位 Windows 应用程序添加0x00000004,为 32 位 Windows 应用程序添加0x00000008,添加0x00000010以返回用户名而不是计算机名称,并添加0x00000100以禁用注册表映射)。
应用程序
运行应用程序时,以下兼容性位会影响应用程序。 它们位于以下注册表子项中(其中 Appname 是应用程序的可执行文件的名称):
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Compatibility\Applications\\Appname
兼容性位
- MS-DOS 应用程序:0x00000001
- OS/2 应用程序:0x00000002
- Windows 16 位应用程序:0x00000004
- Windows 32 位应用程序:0x00000008
- 返回用户名而不是计算机名称:0x00000010
- 返回终端服务器内部版本号:0x00000020
- 禁用此应用程序的注册表映射:0x00000100
- 请勿替换用户 Windows 目录:0x00000400
- 限制报告的内存:0x00000800
对于使用计算机名称作为唯一标识符的应用程序,请使用“返回用户名而不是计算机名称”位。 这会将用户的名称返回到应用程序,并向应用程序的每个用户提供唯一标识符。
使用“禁用此应用程序的注册表映射”位仅保留应用程序使用的注册表变量的一个全局副本。
如果设置了“不要替换用户 Windows 目录”位,它将保留 GetWindowsDirectory API 调用的 SystemRoot 目录。 如果未设置此位,则 Windows 目录的所有路径将替换为用户 Windows 目录的路径。
.Ini 文件
以下兼容性位控制.ini文件传播。 它们位于以下注册表子项中(其中 Inifile 是.ini文件的名称):
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Compatibility\IniFiles\\Inifile
兼容性位
- Windows 16 位应用程序:0x00000004
- Windows 32 位应用程序:0x00000008
- 将用户.ini文件同步到系统版本:0x00000040
- 不要替换用户 Windows 目录:0x00000080
如果设置了“将用户.ini文件同步到系统版本”位,则会在启动应用程序时从系统主.ini文件添加新条目,但不会删除用户.ini文件中的任何现有数据。 如果未设置此位,则会覆盖用户的.ini文件(如果它早于系统主.ini文件)。
如果设置了“不要替换用户 Windows 目录”位,则在将.ini文件的系统主版本复制到用户的 Windows 目录时,它会保留 .ini 文件中的文件路径的 SystemRoot 目录。 如果未设置此位,它将将 Windows 目录的所有路径替换为用户 Windows 目录的路径。
注册表路径
以下兼容性位控制注册表传播。 它们位于以下注册表子项(其中 PathName 是密钥HKEY_CURRENT_USER\Software 下的注册表路径):
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Terminal Server\Compatibility\RegistryEntries\\PathName
兼容性位
- Windows 32 位应用程序:0x00000008
- 禁用应用程序的注册表映射:0x00000100
如果设置了“禁用应用程序的注册表映射”位,则不会将系统主注册表映像中的新条目添加到用户的注册表中。 此外,系统不会删除用户注册表中的任何现有数据。 如果未设置此位,则如果数据早于系统主注册表数据,系统会删除并覆盖用户的注册表数据。 如果未设置位,系统还会添加不在用户注册表中的任何新键。