当其他用户使用基于 Windows XP 的计算机时您在该计算机上的脱机文件夹中添加的文件被同步处理

Support for Windows XP has ended

Microsoft ended support for Windows XP on April 8, 2014. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

本文已归档。它按“原样”提供,并且不再更新。


重要说明:本文包含有关如何修改注册表的信息。修改注册表之前,一定要先对其进行备份,并且一定要知道在出现问题时如何还原注册表。有关如何备份、还原和修改注册表的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 Microsoft Windows 注册表说明
症状
如果基于 Microsoft Windows XP 的计算机上的脱机文件夹由多位用户共享并且您向其中添加了文件,则当其他用户登录到该计算机时,这些文件将发生脱机同步。需要安全凭据的网络共享和网站不能进行同步处理,而是将提示其他用户提交正确的凭据。
原因
向脱机文件夹中添加文件后,只要计算机连接到网络,就会同步处理这些文件。同步在计算机连接到网络时发生,而不是在用户登录到计算机时发生。

脱机文件夹缓存是网络文件系统的镜像。文件访问基于相同的管理凭据。如果网络文件系统上的文件向“所有人”授予访问权限,并且已有用户将其添加到脱机文件夹中,则无论哪位用户登录到该计算机上,都将同步处理这些文件。因此,当用户在一台共享计算机上连接到网络时,无论该用户是否希望同步脱机文件夹中的文件,都必须等待,直至其中的所有文件都得到同步处理。
解决方案

Service Pack 信息

要解决此问题,请获取最新的 Windows XP Service Pack。有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322389 如何获取最新的 Windows XP Service Pack

修补程序信息

Microsoft 目前提供了一个受支持的修补程序。但是,此修补程序仅用于修复本文所述的问题。请仅将此修补程序应用于出现这一特定问题的系统。此修补程序可能还会接受进一步的测试。因此,如果这个问题没有给您造成严重的影响,我们建议您等待包含此修补程序的下一个 Service Pack。

要解决此问题,请向 Microsoft 在线客户服务提交请求以获取该修补程序。要提交联机请求以获取该修补程序,请访问下面的 Microsoft 网站:注意:如果发生其他问题或需要进行任何疑难解答,则您可能需要创建单独的服务请求。对于此特定修补程序无法解决的其他支持问题和事项,将照常收取支持费用。要创建单独的服务请求,请访问下面的 Microsoft 网站:

此修补程序的英文版具有下表中列出的文件属性(或更新的文件属性)。这些文件的日期和时间按协调世界时 (UTC) 列出。当您查看文件信息时,相应的时间将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用“控制面板”中“日期和时间”项中的“时区”选项卡。

Windows XP
日期         时间   版本          大小     文件名----------------------------------------------------30-Dec-2002  08:20  5.1.2600.108  313,856  Cscui.dll

Windows XP Service Pack 1
日期         时间   版本           大小     文件名-----------------------------------------------------31-Dec-2002  07:23  5.1.2600.1152  312,832  Cscui.dll

更多信息
此修补程序为脱机文件增加了四项主要功能。要应用希望使用的新增功能,必须按照本文中描述特定添加项的部分的说明编辑注册表。 这四项主要的新增功能是:
  • 排除错误隐藏
  • 注销时清除非主要用户的文件
  • 防止对非主要用户的文件进行管理固定
  • 强制无提示自动重新连接
只有 Windows XP 的脱机文件功能才能使用这些新增功能。Microsoft 不支持或建议对这些新增功能进行任何其他方面的使用。

排除错误隐藏

脱机文件功能不允许缓存某些文件类型。此限制可防止损坏文件集并避免与竞争性同步技术发生冲突。当您尝试缓存这些文件类型之一时,可能会为每个文件收到以下错误消息:
该类型的文件无法脱机使用

对于不熟悉同步过程的用户,此消息非常有用。但是,当用户已了解某些文件类型不能被缓存时,此消息便会很烦人,因为它会阻止“同步进度”对话框在同步结束后自动关闭。此修补程序引入了一个新注册表项,可以防止这些文件的子集生成此特定的同步错误。应用了此修补程序后,必须编辑注册表并为以下注册表子项输入适当的文件规格:
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\NetCache\ExclusionErrorSuppressionList
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\NetCache\ExclusionErrorSuppressionList

这些注册表子项可包含零个或更多个值。这些值称为“文件规格”。

在运行时,这两个注册表子项下的列表将合并为一个列表。任何一个列表都不会优先于另一个列表。空注册表项和丢失注册表项将按同一情况处理,它们都会生成一个包含零个项目的列表。

文件规格

添加到新的
ExclusionErrorSuppressionList
注册表项的文件规格是通用命名约定 (UNC) 路径字符串。这些路径字符串可以使用通配符(星号)来指示与规格中该特定位置的任意内容匹配。

每个文件规格都使用以下格式:
\\Server\Share\Folder\Filename.extension
规格中可以包含环境变量,例如变量 %username%。在运行时,变量将扩展为等效文本值。

可以用通配符替代文件规格和文件夹名称中的任意部分。例如,
\\corpsvr\staff\%username%\documents\*\*.doc
但是,如果一个文件夹后还跟有另一个文件夹名称,则不能用通配符替代前者。例如,以下规格无效:
\\corpsvr\staff\%username%\documents\*\personal\*.doc
此规格将被拒绝,因为它在文件夹名称 %username% 和 personal 之间嵌入了通配符。

注意
:Windows XP 不识别无效规格,也不在系统中的任何位置记录无效规格。Window XP 在运行时将忽略无效规格。

文件规格的示例如下:
  • \\*\*\*\*.dbf
    此示例将隐藏任何文件夹、共享和服务器中扩展名为 .dbf 的任何文件的规格错误。
  • \\Server\*\*\*.dbf
    此示例将隐藏指定服务器上任何文件夹和共享中扩展名为 .dbf 的任何文件的规格错误。
  • \\Server\\*\*\*\Test.dbf
    此示例将隐藏任何文件夹、共享和服务器中名称为“Test.dbf”的任何文件的规格错误。
  • \\Server\Share\Folder\Test.dbf
    此示例将隐藏名称为“Test.dbf”的特定文件的规格错误。
  • \\Server\Share\*\*.*
    此示例将隐藏指定服务器的指定共享上任何文件夹中的任何文件。
  • \\Server\Share\%username%\*\Test.dbf
    此示例隐藏任何用户主文件夹(由环境变量 %username% 定义)中名为“Test.dbf”的文件。
要添加 ExclusionErrorSuppressionList 注册表项并输入所需的文件规格,请在应用了该修补程序后按照下列步骤操作。

警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能会出现严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证可以解决这些问题。修改注册表需要您自担风险。
  1. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
  2. 找到并单击下面的注册表子项:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\NetCache
  3. 单击“编辑”,指向“新建”,然后单击“项”。
  4. 键入 ExclusionErrorSuppressionList,然后按 Enter 以命名新项。
  5. 单击
    ExclusionErrorSuppressionList
    ,单击“编辑”,指向“新建”,然后单击“DWORD 值”。
  6. 键入要使用的文件规格,然后按 Enter 命名值。
  7. 对每个要使用的文件规格重复步骤 5 至步骤 6。

系统行为

当同步过程遇到排除列表中的文件时,将使用从注册表中读取的文件规格列表对该文件的完整路径进行测试。如果该文件的路径与任何一个规格匹配,则“同步进度”对话框中将不会显示“该类型的文件无法脱机使用”错误消息。Windows XP 不会记录此错误消息的隐藏。

注销时清除非主要用户的文件

当用户短暂地登录到非其常规工作场所的计算机时,如果该用户缓存了网络中的文件(无论通过自动缓存还是固定),如果不删除这些文件,它们将一直保留在该计算机的缓存中。

此修补程序中包含的功能更改引入了一个新注册表项,它可以将计算机的用户指定为主要非主要。通过这种指定,为非主要用户缓存的文件可在该用户注销时从缓存中删除。此注册表项包含零个或更多个值,每个数值名称都指定一个将由脱机文件功能视为“主要”的用户帐户。每个数值名称可采用以下形式之一:
  • 用户帐户名,例如“mydomain\username
  • 以文本形式表示的用户帐户安全 ID (SID),例如“S-1-5-21-397955417-626881126-188441444-2201386”
每个注册表项的数据值和值类型都将被忽略,而仅使用数值名称。

Windows XP 使用以下过程来确定计算机用户是主要用户还是非主要用户:
  1. 在运行时,Windows XP 将从当前用户的安全令牌中获取其 SID。
  2. 如果该注册表项以 SID 字符串的形式提供,Windows XP 会将该字符串转换为二进制 SID 并将该字符串与当前用户的 SID 进行比较。如果该注册表项以帐户名的形式提供,Win32 API LookupAccountName 函数将查询该帐户 SID 的安全机构。
  3. 然后将该 SID 与当前用户的 SID 进行比较。
  4. 如果在从注册表读取的主要用户列表中找到匹配项,则将当前用户视为主要用户。如果不存在注册表项或未找到匹配项,则将该用户视为非主要用户。 Windows XP 会忽略此注册表项中的无效项,而且不会创建系统日志项来标识无效项。
注意:此主要用户列表只影响脱机文件功能。其他任何 Windows 组件都不使用此列表,并且 Microsoft 不支持对此列表进行任何其他方面的使用。

要应用此项功能更改,请按下列步骤操作:
  1. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
  2. 找到并单击下面的注册表子项:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\NetCache
  3. 单击“编辑”,指向“新建”,然后单击“项”。
  4. 键入 PrimaryUsers,然后按 Enter 以命名新项。
  5. 单击
    PrimaryUsers
    ,单击“编辑”,指向“新建”,然后单击“DWORD 值”。
  6. 使用以下格式之一键入用户名:
    • domain\username
    • S-1-5-21-397955417-626881126-188441444-2201386
      这是以文本形式表示的用户帐户安全 ID (SID)。
  7. 单击
    NetCache
    ,单击“编辑”,指向“新建”,然后单击“DWORD 值”。
  8. 键入 PurgeNonPrimaryUserFilesAtLogoff,然后按 Enter 以命名该值。
  9. 双击
    PurgeNonPrimaryUserFilesAtLogoff
  10. 在“数值数据”框中,键入 1,然后单击“确定”。
警告:添加此注册表项时,必须与现有的 PurgeAtLogoff 系统策略进行协调。此策略通过以下路径在组策略中激活:
Computer Configuration\Administrative Templates\Network\Offline Files\。注销时,将删除用户脱机文件的本地副本。

如果启用此策略,将忽略 PurgeNonPrimaryUserFilesAtLogoff 注册表值,而且不会删除非主要用户的文件。

注意
  • 必须使用 AdminPinForPrimaryUsersOnly 注册表设置(请参阅“防止对非主要用户的文件进行管理固定”一节)。如果 AdminPinForPrimaryUsersOnly 注册表设置不存在,并且在非主要用户注销时正在进行管理固定,则会发生争用情况,而且管理固定将在从缓存中删除文件后继续运行。因此,在注销后可能会为非主要用户缓存文件。解决方案是使用 AdminPinForPrimaryUsersOnly 注册表项为非主要用户禁用管理固定。
  • 由于选择要删除的文件基于用户对这些文件的访问权限,并且客户端缓存 (CSC) 不缓存 Windows 2000 和 Windows XP 中文件夹项的安全信息,因此由其他用户固定的空文件夹项可能会从缓存中删除。但是,如果缓存的文件夹包含任何缓存的子目录或文件,则不会删除该文件夹。
  • 当计算机上的任何进程打开远程共享中标记为进行自动缓存的文件时,将发生自动缓存。在注销序列完成前,可能会替换要删除的文件。如果这是一个问题,则可能需要禁用承载这些已重定向外壳特殊文件夹的共享上的自动缓存。例如,可能要禁用“我的图片”、“我的音乐”和“我的视频”文件夹上的自动缓存。
  • 当启用
    PrimaryUsers
    注册表项并且有非主要用户登录时,如果该非主要用户对任何缓存的文件进行脱机更改,则在删除过程中不会从缓存中删除这些修改过的文件。此情况可保留任何潜在的重要脱机内容。因此,当非主要用户注销后,该用户缓存的某些文件可以保留在本地计算机上。

防止对非主要用户的文件进行管理固定

如果出于管理目的为某位用户分配了脱机文件,则该用户会在登录的每台计算机上都缓存该内容。此情况可能导致在某些计算机上缓存不需要的内容。 为了防止发生这种情况,此修补程序引入了一项对管理固定处理的修改。通过此修补程序,管理固定不会覆盖“注销时清除非主要用户的文件”一节中描述的主要用户列表。如果当前用户不在主要用户列表中,则不会为当前计算机上的该用户进行每用户管理固定。 若要防止对非主要用户进行每用户管理固定,请按照下列步骤操作:
  1. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
  2. 找到并单击下面的注册表子项:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\NetCache
  3. 单击“编辑”,指向“新建”,然后单击“DWORD 值”。
  4. 键入 AdminPinForPrimaryUsersOnly,然后按 Enter 以命名该值。
  5. 双击
    AdminPinForPrimaryUsersOnly
  6. 在“数值数据”框中,键入 1,然后单击“确定”。

强制无提示自动重新连接

当服务器从不可用(脱机模式)再次变为可进行连接时,如果满足下列所有条件,脱机文件客户端缓存就会尝试将服务器转换为联机模式:
  • 本地计算机未对该服务器进行脱机更改。
  • 本地计算机上没有打开该服务器的文件句柄。
  • 通过“快速”链接对服务器进行访问。使用“SlowLinkSpeed”脱机文件策略可以调整“缓慢”和“快速”的定义。
通过此修补程序,可以将脱机文件客户端缓存配置为忽略这些条件,并将服务器转换为联机模式,而无论这些条件是否存在。为此,请按照下列步骤操作:
  1. 单击“开始”,单击“运行”,键入 REGEDIT,然后单击“确定”。
  2. 找到并单击下面的注册表子项:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\NetCache
  3. 单击“编辑”,指向“新建”,然后单击“DWORD 值”。
  4. 键入 SilentForcedAutoReconnect,然后按 Enter 以命名该值。
  5. 双击
    SilentForcedAutoReconnect
  6. 在“数值数据”框中,键入 1,然后单击“确定”。
注意:应用了此修补程序后,可能会发生下面的行为:
  • 如果不在以后对任何脱机更改进行同步,则这些更改将一直保持未同步和不可用状态。此情况会导致脏缓存状态,它通过通知区域中脱机文件图标上的小警告重叠图像公布。
  • 关联服务器上缓存的任何打开的文件句柄都将自动关闭并失效。如果使用这些文件的程序无法用无效的文件句柄正常工作,此操作可能会导致出现问题。
  • 如果服务器可通过慢速网络链接(例如,卫星链接或电话线)使用,则仍将联机转换服务器。此情况可能导致在从本地计算机访问服务器上的远程文件系统时速度很慢。
状态
Microsoft 已经确认这是在“这篇文章的信息适用于:”部分中列出的 Microsoft 产品中存在的问题。 此问题最早在 Microsoft Windows XP Service Pack 2 中得到了解决。
属性

文章 ID:811660 - 上次审阅时间:12/08/2015 01:49:23 - 修订版本: 4.0

Microsoft Windows XP Professional Edition, Microsoft Windows XP Home Edition

  • kbnosurvey kbarchive kbbug kbfix kbqfe kbwinxpsp2fix kbwinxppresp2fix kbhotfixserver KB811660
反馈