admin 管理员组

文章数量: 887021

【问题描述】:

Windows 7 无法访问Windows2003共享,出现“系统错误 86。网络密码不正确”,但是这些问题都是正确的,经分析问题可能出现在用户身份验证上。

【解决方法】:

一、要解决此问题,请在Windows 2003 的或基于 Windows 9x 的计算机上,启用 NTLMv2 身份验证。请执行以下步骤:
  1. 启动注册表编辑器。若要执行此操作,请单击开始运行,键入Regedit,,然后按 ENTER 键。
  2. 找到并单击以下注册表子项 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA
  3. 找到LmCompatibilityLevel注册表值。

    如果该注册表值不存在,请按照下列步骤来创建它:
    1. 选择在步骤 2 中列出的注册表子项。
    2. 编辑菜单中,指向新建,然后单击DWORD 值
    3. 键入LmCompatibilityLevel,然后再按 ENTER。
  4. DWORD 值设置为 1。若要这样做,请单击编辑菜单上的修改、 在1框中,键入1 ,然后单击确定
  5. 退出注册表编辑器,然后重新启动计算机。

二、在windows7客户端上执行一下操作:

1.确认防火墙是否阻止网络共享,“控制面板-系统和安全-windows防火墙-允许的程序里打开了文件和打印机共享;”

    2.启用NTLMv2身份验证:

(1)、对于Windows 7的版本是RTM的:在“控制面板”-系统和安全-管理工具-“本地安全策略”,将“网络安全:LAN管理器身份验证级别”项的值“没有定义”改为“发送LM & NTLM响应”;

(2)、对于Windows 7 Home Premium版本,则执行和一中同样的操作。

  重新启动计算机,就一切OK。






背景知识:

NTLM是NT LAN Manager的缩写,这也说明了协议的来源。NTLM 是 Windows NT 早期版本的标准安全协议,Windows 2000 支持 NTLM 是为了保持向后兼容。Windows 2000内置三种基本安全协议之一。

早期SMB协议在网络上传输明文口令。后来出现 LAN Manager Challenge/Response 验证机制,简称LM,它是如此简单以至很容易就被破解。微软提出了WindowsNT挑战/响应验证机制,称之为NTLM。现在已经有了更新的NTLMv2以及Kerberos验证体系。NTLM是windows早期安全协议,因向后兼容性而保留下来。NTLM是NT LAN Manager的缩写,即NT LAN管理器。

  • LAN Manager (LM) 身份验证是用于验证 Windows 客户端以进行网络操作(包括域加入、访问网络资源以及用户或计算机身份验证)的协议。LM 身份验证级别可确定在客户端和服务器计算机之间协商哪个质询/响应身份验证协议。确切地说,LM 身份验证级别可确定客户端会尝试协商或服务器会接受哪些身份验证协议。设置的 LmCompatibilityLevel 值可确定将哪种质询/响应身份验证协议用于网络登录。该值会影响客户端使用的身份验证协议级别、协商的会话安全级别以及服务器接受的身份验证级别,具体请参见下表。

    可能的设置包括以下内容,见下表:
    值 设置 说明
    0发送 LM 和 NTLM 响应客户端使用 LM 和 NTLM 身份验证而从不使用 NTLMv2 会话安全;域控制器接受 LM、NTLM 和 NTLMv2 身份验证。
    1发送 LM 和 NTLM - 若协商使用 NTLMv2 会话安全客户端使用 LM 和 NTLM 身份验证并使用 NTLMv2 会话安全(如果服务器支持);域控制器接受 LM、NTLM 和 NTLMv2 身份验证。
    2仅发送 NTLM 响应客户端只使用 NTLM 身份验证并使用 NTLMv2 会话安全(如果服务器支持);域控制器接受 LM、NTLM 和 NTLMv2 身份验证。
    3仅发送 NTLMv2 响应客户端只使用 NTLMv2 身份验证并使用 NTLMv2 会话安全(如果服务器支持);域控制器接受 LM、NTLM 和 NTLMv2 身份验证。
    4仅发送 NTLMv2 响应/拒绝 LM客户端只使用 NTLMv2 身份验证并在服务器支持时使用 NTLMv2 会话安全。域控制器拒绝 LM,而只接受 NTLM 和 NTLMv2 身份验证。
    5仅发送 NTLMv2 响应/拒绝 LM 和 NTLM客户端只使用 NTLMv2 身份验证并使用 NTLMv2 会话安全(如果服务器支持);域控制器拒绝 LM 和 NTLM(它们只接受 NTLMv2 身份验证)。
    注意:在 Windows 95、Windows 98 和 Windows 98 Second Edition 中,目录服务客户端在通过 NTLM 身份验证向 Windows Server 2003 服务器验证身份时使用 SMB 签名。但是,目录服务客户端在通过 NTLMv2 身份验证向这些服务器验证身份时并不使用 SMB 签名。另外,Windows 2000 服务器不响应来自这些客户端的 SMB 签名请求。

    检查 LM 身份验证级别 必须更改服务器上的策略以允许使用 NTLM,或者必须配置客户端计算机以支持 NTLMv2。

    如果要连接到的目标计算机上的策略设置为“(5) 仅发送 NTLMv2 响应\拒绝 LM 和 NTLM”,那么必须降低该计算机上的设置,或者对安全性进行设置使其与要从中进行连接的源计算机的设置相同。

    找到可以更改 LAN Manager 身份验证级别的正确位置,以便将客户端和服务器设置为同一级别。找到设置 LAN Manager 身份验证级别的策略后,如果您希望与运行较早版本 Windows 的计算机建立连接,请将该值至少降低到“(1) 发送 LM 和 NTLM - 若协商则使用 NTLMv2 会话安全”。不兼容设置的一个结果便是:如果服务器需要 NTLMv2(值 5),但客户端配置为仅使用 LM 和 NTLMv1(值 0),则尝试身份验证的用户会因使用了无效密码而无法登录,同时会因此增加无效密码计数。如果配置了帐户锁定,则可能最终会锁定该用户。

    例如,您可能必须查看域控制器,或者查看域控制器的策略。

    查看域控制器
    注意
    :您可能必须在所有域控制器上重复以下过程。
    1. 单击“开始”,指向“程序”,然后单击“管理工具”。
    2. 在“本地安全设置”下,展开“本地策略”。
    3. 单击“安全选项”。
    4. 双击“网络安全:LAN Manager 身份验证级别”,然后单击列表中的适当值。
    如果“有效设置”与“本地设置”相同,则表明已在此级别上更改了策略。如果这两个设置不同,则必须检查域控制器的策略以确定是否在此处定义了“网络安全:LAN Manager 身份验证级别”设置。如果未在此处定义,请查看域控制器的策略。

    查看域控制器的策略
    1. 单击“开始”,指向“程序”,然后单击“管理工具”。
    2. 在“域控制器安全”策略中,展开“安全设置”,然后展开“本地策略”。
    3. 单击“安全选项”。
    4. 双击“网络安全:LAN Manager 身份验证级别”,然后单击列表中的适当值。
    注意
    • 您可能还必须检查在网站级别、域级别或组织单位 (OU) 级别链接的策略,以确定必须配置 LAN Manager 身份验证级别的位置。
    • 如果将某一组策略设置作为默认域策略来执行,则该策略将应用于域中的所有计算机。
    • 如果将某一组策略设置作为默认域控制器的策略来执行,则该策略仅适用于域控制器的 OU 中的服务器。
    • 最好在策略应用程序层次结构中所需范围的最低实体中设置 LAN Manager 身份验证级别。
    请在进行更改后刷新该策略。(如果更改是在本地安全设置级别进行的,则此更改会立即生效。但是,在进行测试之前必须重新启动客户端。)

    默认情况下,组策略设置在域控制器上每 5 分钟更新一次。要在 Windows 2000 或更高版本上立即强制更新策略设置,请使用 gpupdate 命令。

    gpupdate /force 命令可更新本地组策略设置和基于 Active Directory 目录服务的组策略设置,包括安全设置。此命令取代了现已过时的 secedit 命令的 /refreshpolicy 选项。

    gpupdate 命令使用以下语法:
    gpupdate [/target:{computer|user}] [/force] [/wait:value] [/logoff] [/boot]

    通过使用 gpupdate 命令手动重新应用所有策略设置,可以应用新的组策略对象 (GPO)。为此,请在命令提示符处键入以下内容,然后按 Enter:
    GPUpdate /Force 查看应用程序事件日志以确保成功应用了策略设置。

    在 Windows XP 和 Windows Server 2003 上,可以使用“策略的结果集”管理单元来查看有效设置。为此,请单击“开始”,单击“运行”,键入 rsop.msc,然后单击“确定”。

    如果对策略进行更改后问题仍然存在,请重新启动基于 Windows 的服务器,然后验证问题是否已解决。

    注意:如果您有多台基于 Windows 2000 的域控制器和/或多台基于 Windows Server 2003 的域控制器,则可能必须复制 Active Directory 以确保这些域控制器能够立即获得更新的更改。

    或者,该设置可能看起来像被设置为本地安全策略中的最低设置。如果可以通过安全数据库进行设置,则还可以通过在注册表中编辑以下注册表子项中的 LmCompatibilityLevel 项来设置 LAN Manager 身份验证级别: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa Windows Server 2003 有一个仅使用 NTLMv2 的新默认设置。默认情况下,基于 Windows Server 2003 和基于 Windows 2000 Server SP3 的域控制器已启用“Microsoft 网络服务器:数字签名的通信(总是)”策略。此设置要求 SMB 服务器执行 SMB 数据包签名。 已经对 Windows Server 2003 进行了更改,原因是任何组织中的域控制器、文件服务器、网络结构服务器和 Web 服务器均要求采用不同的设置,以最大程度地提高其安全性。

    如果您想在网络中实施 NTLMv2 身份验证,请一定要确保将域中的所有计算机都设置为使用此身份验证级别。如果对 Windows 95 或 Windows 98 以及 Windows NT 4.0 应用了 Active Directory Client Extension,则此客户端扩展将使用 NTLMv2 中提供的改进的身份验证功能。 因为运行以下任何操作系统的客户端计算机都不受 Windows 2000 组策略对象的影响,所以您可能需要手动配置这些客户端:
    • Microsoft Windows NT 4.0
    • Microsoft Windows Millennium Edition
    • Microsoft Windows 98
    • Microsoft Windows 95
    注意:如果启用了“网络安全:不要在下次更改密码时存储 LAN Manager 的哈希值”策略或设置了“NoLMHash”注册表项,则未安装目录服务客户端的 Windows 95 和 Windows 98 客户端在密码更改后将无法登录到域。

    许多第三方 CIFS 服务器(如 Novell Netware 6)都无法识别 NTLMv2 而只使用 NTLM。因此,高于 2 的级别都不允许进行连接。 

    有关如何手动配置 LAN Manager 身份验证级别的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 147706  (http://support.microsoft/kb/147706/ ) 如何在 Windows NT 上禁用 LM 身份验证 175641  (http://support.microsoft/kb/175641/ ) LMCompatibilityLevel 及其效果 299656  (http://support.microsoft/kb/299656/ ) 如何阻止 Windows 在 Active Directory 和本地 SAM 数据库中存储密码的 LAN Manager 哈希 312630  (http://support.microsoft/kb/312630/ ) Outlook 不断提示您提供登录凭据 有关 LM 身份验证级别的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 239869  (http://support.microsoft/kb/239869/ ) 如何启用 NTLM 2 身份验证
  • 危险配置

    以下是有害的配置设置:
    • 以明文形式发送密码和拒绝 NTLMv2 协商的非限制性设置
    • 阻止不兼容的客户端或域控制器协商通用身份验证协议的限制性设置
    • 要求在运行早于 Windows NT 4.0 Service Pack 4 (SP4) 版本的成员计算机和域控制器上进行 NTLMv2 身份验证
    • 要求在未安装 Windows 目录服务客户端的 Windows 95 客户端或 Windows 98 客户端上进行 NTLMv2 身份验证。
    • 在基于 Windows Server 2003 或 Windows 2000 Service Pack 3 的计算机上,如果单击以选中 Microsoft 管理控制台“组策略编辑器”管理单元中的“要求 NTLMv2 会话安全”复选框,并将 LAN Manager 身份验证级别降为 0,那么这两项设置将发生冲突,并且您可能会在 Secpol.msc 文件或 GPEdit.msc 文件中收到以下错误消息: Windows 无法打开本地策略数据库。打开数据库时出现了一个未知错误。 有关安全配置和分析工具的更多信息,请参见 Windows 2000 或 Windows Server 2003“帮助”文件。

      有关如何在 Windows 2000 和 Windows Server 2003 上分析安全级别的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 313203  (http://support.microsoft/kb/313203/ ) 如何在 Windows 2000 中分析系统安全 816580  (http://support.microsoft/kb/816580/ ) 如何在 Windows Server 2003 中分析系统安全
  • 修改此设置的原因
    • 您想要提高组织中客户端和域控制器支持的最低的通用身份验证协议。
    • 在业务需要安全的身份验证的情况下,您希望禁止对 LM 和 NTLM 协议的协商。
  • 禁用此设置的原因

    已将客户端或服务器身份验证要求(或两者同时)提高到了通过通用协议也无法进行身份验证的程度。
  • 符号名称:

    LmCompatibilityLevel
  • 注册表路径: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\LmCompatibilityLevel
  • 兼容性问题的示例
    • Windows Server 2003:默认情况下,Windows Server 2003 NTLMv2 的“发送 NTLM 响应”设置已启用。因此,在初始安装后,当您尝试连接到基于 Windows NT 4.0 的群集或基于 LanManager V2.1 的服务器(如 OS/2 Lanserver)时,Windows Server 2003 将收到“Access Denied”错误消息。在尝试从较早版本的客户端连接到基于 Windows Server 2003 的服务器时,也会发生此问题。
    • 应该安装 Windows 2000 安全汇总包 1 (SRP1)。SRP1 会强制使用 NTLM 版本 2 (NTLMv2)。此汇总包是在 Windows 2000 Service Pack 2 (SP2) 之后发布的。有关 SRP1 的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

      311401  (http://support.microsoft/kb/311401/ ) 2002 年 1 月版 Windows 2000 安全累积软件包 1 (SRP1)
    • 即使 Microsoft Outlook 客户端已经登录到域,这些客户端也可能会收到要求提供凭据的提示。用户提供凭据后,将收到下面的错误消息: The logon credentials supplied were incorrect.Make sure your username and domain are correct, then type your password again. 即使将“登录网络安全性”设置设为“Passthrough”或“密码验证”,您也可能会在启动 Outlook 时收到要求提供凭据的提示。键入正确的凭据后,可能会收到下面的错误消息: The login credentials supplied were incorrect. 网络监视器跟踪可能会显示全局编录发出的远程过程调用 (RPC) 失败,状态为 0x5。状态 0x5 表示“拒绝访问”。
    • Windows 2000:网络监视器捕获功能可能会在 TCP/IP 上的 NetBIOS (NetBT) 服务器消息块 (SMB) 会话期间显示以下错误: SMB R Search Directory Dos error, (5) ACCESS_DENIED (109) STATUS_LOGON_FAILURE (91) Invalid user identifier
    • Windows 2000:如果具有 NTLMv2 级别 2 或更高级别的 Windows 2000 域受到 Windows NT 4.0 域的信任,则资源域中基于 Windows 2000 的成员计算机可能会遇到身份验证错误。 

      有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 305379  (http://support.microsoft/kb/305379/ ) 在 Windows NT 4.0 域中具有高于 2 的 NTLM 2 级别的 Windows 2000 中出现身份验证问题
    • Windows 2000 和 Windows XP:默认情况下,Windows 2000 和 Windows XP 将“LAN Manager 身份验证级别本地安全策略”选项设置为 0。设置为 0 表示“发送 LM 和 NTLM 响应”。

      注意:基于 Windows NT 4.0 的群集必须使用 LM 才能进行管理。
    • Windows 2000:如果两个节点都是 Windows NT 4.0 Service Pack 6a (SP6a) 域的一部分,则 Windows 2000 群集不能对一个加入节点进行身份验证。

      有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 305379  (http://support.microsoft/kb/305379/ ) 在 Windows NT 4.0 域中具有高于 2 的 NTLM 2 级别的 Windows 2000 中出现身份验证问题
    • IIS Lockdown Tool (HiSecWeb) 将 LMCompatibilityLevel 的值设为 5,并将 RestrictAnonymous 的值设为 2。
    • Macintosh 服务

      User Authentication Module (UAM):
      Microsoft UAM (User Authentication Module) 提供了一种对登录到 Windows AFP (AppleTalk Filing Protocol) 服务器所使用的密码进行加密的方法。Apple User Authentication Module (UAM) 仅提供最简单的加密或者根本不加密。因此,在 LAN 或 Internet 上,您的密码很容易被截获。虽然没有要求 UAM,但它确实可以为运行 Macintosh 服务的 Windows 2000 服务器提供加密的身份验证。此版本包括对 NTLMv2 128 位加密身份验证和与 MacOS X 10.1 兼容的版本的支持。

      默认情况下,Windows Server 2003 Services for Macintosh 服务器仅允许使用 Microsoft 身份验证。 

      有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 834498  (http://support.microsoft/kb/834498/ ) Macintosh 客户端无法连接到 Windows Server 2003 上的 Mac 服务 838331  (http://support.microsoft/kb/838331/ ) Mac OS X 用户无法打开基于 Windows Server 2003 服务器上的 Macintosh 共享文件夹
    • Windows Server 2008、Windows Server 2003、Windows XP 和 Windows 2000:如果将 LMCompatibilityLevel 值配置为 0 或 1,然后将 NoLMHash 值配置为 1,则可能会拒绝应用程序和组件通过 NTLM 进行访问。此问题是由于计算机被配置为启用 LM 而非使用 LM 存储的密码造成的。

      如果将 NoLMHash 值配置为 1,则必须将 LMCompatibilityLevel 值配置为 2 或更大的值。


本文标签: 解决方法 无法访问 文件