你目前正处于脱机状态,正在等待 Internet 重新连接

安装 .NET Framework 2.0 更新后区分大小写的文件系统变为不区分大小写

概要
在安装 Microsoft .NET Framework 2.0 更新后,文件系统从区分大小写变为不区分大小写。
症状
请考虑以下情况。您在 Microsoft Windows 文件系统中启用了区分大小写功能,以实现 Windows/UNIX 的互操作性。您安装了 Microsoft .NET Framework 2.0 更新,然后重新启动了计算机。在这种情况下,文件系统不再区分大小写。由于文件系统不再区分大小写,您可能会在依赖区分大小写功能的应用程序中收到错误消息。此外,意外的不区分大小写会无意中覆盖文件,从而可能导致数据丢失。
原因
如果 .NET Framework 2.0 原始安装将
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive
注册表项的值设为 1,则会出现此问题。
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive
注册表项决定文件系统是否区分大小写。如果将该项的值设为 1,则认为文件系统不区分大小写。如果将该项的值设为 0,则认为文件系统区分大小写。

因为 Windows Installer 更新工作方式的原因,每个更新都会在 .NET Framework 2.0 原始安装中再次执行注册表更改。因此,与 .NET Framework 安装类似,该注册表项的值会被设为 0。这样,此行为就可能会覆盖用户为该项配置的任何值。例如,如果将该注册表项的值设为 0 以使文件系统区分大小写,并且安装了 2006 年 11 月 27 日之前发布的 .NET Framework 2.0 更新,那么在安装该更新后,该注册表项的值将被设为 1。从而导致文件系统不区分大小写。

注意:在 2006 年 11 月 27 日之后发布的 .NET Framework 2.0 更新中不会出现此问题。
替代方法
如果因为必须使文件系统区分大小写而故意将
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive
注册表项的值设为 0,而 .NET Framework 2.0 更新又将该值重新设置为 1,则需要手动将该注册表项的值重新设置为 0。重新启动系统,以使更改生效。例如,如果服务器是异构环境中的 NFS 服务器,并且该注册表项的值设为 1,则可以手动将该值重新设置为 0。

注意:如果重新安装或修复 .NET Framework 2.0,或者重新安装 2006 年 11 月 27 日之前发布的任何 .NET Framework 2.0 更新,则必须再次应用该手动解决方法。
kbsecurity kbprb case insensitive insensitivity .NET Framework 2.0
属性

文章 ID:929110 - 上次审阅时间:12/03/2007 07:41:49 - 修订版本: 1.6

Microsoft .NET Framework 2.0, Microsoft .NET Framework 2.0 x64 Edition, Microsoft .NET Framework 2.0 IA64 Edition

  • kbtshoot kbsecurity kbprb KB929110
反馈