1. 程式人生 > >windows7無法訪問windows2003的共享檔案的解決方法。

windows7無法訪問windows2003的共享檔案的解決方法。

【問題描述】:

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.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“幫助”檔案。

    有關如何在 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. 即使將“登入網路安全性”設定設為“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.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 或更大的值。