操作系统版本控制

受影响的平台

客户端 - Windows 7
服务器 - Windows Server 2008 R2

功能影响

严重性 - 高
频率 - 高

说明

Windows 7 和 Windows Server 2008 R2 的内部版本号为 6.1。 查询时,GetVersion 函数现在会将此版本号返回到应用程序。 这对于防病毒、备份、实用工具应用程序和复制保护尤其重要。

影响的表现

此更改的表现形式特定于应用程序。 这意味着,任何专门检查操作系统版本的应用程序都将获得更高的版本号,这可能导致以下一种或多种情况:

  • 应用程序安装程序可能无法安装应用程序,并且应用程序可能无法启动
  • 应用程序可能会变得不稳定或崩溃
  • 应用程序可能会生成错误消息,但继续正常运行

缓解措施

大多数应用程序将在 Windows 7 和 Windows Server 2008 R2 上正常运行,因为 Windows 7 和 Windows Server 2008 R2 中的应用程序兼容性非常高。 但是,Windows 7 和 Windows Server 2008 R2 包含适用于检查操作系统版本的安装程序和应用程序的兼容性视图。

若要启用兼容性视图,用户可以右键单击快捷方式或可执行文件,然后从“兼容性”选项卡应用 Windows XP SP2 或 Windows Vista 兼容性视图。在大多数情况下,这应该使应用程序能够正常运行,而无需对应用程序进行任何更改。

IT 专业人员还可以使用兼容性管理员工具应用任何适用的 VersionLie 兼容性修补程序,该工具随应用程序兼容性工具包 (ACT) 一起安装。 例如,如果应用程序由于正在检查但未找到具有 Service Pack 2 的 Windows XP® (SP2) 版本信息而无法正常运行,则可以应用 WinXPSP2VersionLie 以将正确的版本号信息返回到应用程序,而不考虑计算机上运行的实际操作系统版本。 可用的 VersionLie 兼容性修补程序包括:

  • Win95VersionLie
  • Win98VersionLie
  • WinNT4SP5VersionLie
  • Win2000VersionLie
  • Win2000SP1VersionLie
  • Win2000SP2VersionLie
  • Win2000SP3VersionLie
  • WinXPVersionLie
  • WinXPSP1VersionLie
  • WinXPSP2VersionLie
  • VistaRTMVersionLie
  • VistaSP1VersionLie
  • VistaSP2VersionLie
  • Win2K3RTMVersionLie
  • Win2K3SP1VersionLie

解决方案

通常,应用程序不应执行操作系统版本检查。 如果应用程序需要特定功能,最好尝试查找该功能,并且仅当缺少所需的功能时才会失败。 应用程序至少应始终接受大于或等于受支持的最低操作系统版本的版本号。 仅当存在特定的法律、业务或系统组件要求时,才发生异常。