Windows7无法访问Windows2003共享的解决方案
2010年10月25日 星期一 14:58
Windows 7 从Beta版到之后发布的稳定版本,与之前其他版本的操作系统之间会出现一些较异常的问题。
今天要解决的是Windows7无法访问Windows2003共享的问题
【问题描述】:
Windows 7 无法访问Windows2003共享,出现“系统错误 86。网络密码不正确”,但是这些问题都是正确的,经分析问题可能出现在用户身份验证上。
【解决方法】:
首先,我们先确认防火墙是否阻止网络共享,“控制面板-系统和安全-windows防火墙-允许的程序里打开了文件和打印机共享;”。
其次,“本地安全策略”,将“网络安全:LAN管理器身份验证级别”项的值“没有定义”改为“发送LM & NTLM响应”;
最后,经过这样的修改后,windows 7就可以成功访问网络共享了
http://support.microsoft.com/kb/823659
- 网络安全:Lan Manager 身份验证级别
- 背景
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 身份验证)。
检查 LM 身份验证级别 必须更改服务器上的策略以允许使用 NTLM,或者必须配置客户端计算机以支持 NTLMv2。
如果要连接到的目标计算机上的策略设置为“(5) 仅发送 NTLMv2 响应\拒绝 LM 和 NTLM”,那么必须降低该计算机上的设置,或者对安全性进行设置使其与要从中进行连接的源计算机的设置相同。
找到可以更改 LAN Manager 身份验证级别的正确位置,以便将客户端和服务器设置为同一级别。找到设置 LAN Manager 身份验证级别的策略后,如果您希望与运行较早版本 Windows 的计算机建立连接,请将该值至少降低到“(1) 发送 LM 和 NTLM - 若协商则使用 NTLMv2 会话安全”。不兼容设置的一个结果便是:如果服务器需要 NTLMv2(值 5),但客户端配置为仅使用 LM 和 NTLMv1(值 0),则尝试身份验证的用户会因使用了无效密码而无法登录,同时会因此增加无效密码计数。如果配置了帐户锁定,则可能最终会锁定该用户。
例如,您可能必须查看域控制器,或者查看域控制器的策略。
查看域控制器
注意:您可能必须在所有域控制器上重复以下过程。- 单击“开始”,指向“程序”,然后单击“管理工具”。
- 在“本地安全设置”下,展开“本地策略”。
- 单击“安全选项”。
- 双击“网络安全:LAN Manager 身份验证级别”,然后单击列表中的适当值。
查看域控制器的策略- 单击“开始”,指向“程序”,然后单击“管理工具”。
- 在“域控制器安全”策略中,展开“安全设置”,然后展开“本地策略”。
- 单击“安全选项”。
- 双击“网络安全: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\LsaWindows 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
许多第三方 CIFS 服务器(如 Novell Netware 6)都无法识别 NTLMv2 而只使用 NTLM。因此,高于 2 的级别都不允许进行连接。
有关如何手动配置 LAN Manager 身份验证级别的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:147706 (http://support.microsoft.com/kb/147706/ ) 如何在 Windows NT 上禁用 LM 身份验证175641 (http://support.microsoft.com/kb/175641/ ) LMCompatibilityLevel 及其效果299656 (http://support.microsoft.com/kb/299656/ ) 如何阻止 Windows 在 Active Directory 和本地 SAM 数据库中存储密码的 LAN Manager 哈希312630 (http://support.microsoft.com/kb/312630/ ) Outlook 不断提示您提供登录凭据有关 LM 身份验证级别的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:239869 (http://support.microsoft.com/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 上分析安全级别的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:313203 (http://support.microsoft.com/kb/313203/ ) 如何在 Windows 2000 中分析系统安全816580 (http://support.microsoft.com/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.com/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.The login credentials supplied were incorrect.
- 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.com/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.com/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.com/kb/834498/ ) Macintosh 客户端无法连接到 Windows Server 2003 上的 Mac 服务838331 (http://support.microsoft.com/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 或更大的值。