閒聊

Windows 11 連不到 NAS?Guest 訪客登入與 SMB 簽章的衝突及解法

懶人包,powershell直接下

Set-SmbClientConfiguration -RequireSecuritySignature $false

明明電腦與 NAS 在同一個網段,其他電腦也能正常使用,卻只有某台 Windows 電腦開啟 NAS 時,直接出現「找不到網路路徑」,連輸入帳號密碼的視窗都沒有。

如果 NAS 使用 Guest 訪客登入,原因可能是 Windows 啟用了「強制 SMB 簽章」。

本文說明如何確認這個情況,以及在確定需要保留 Guest 存取時,使用 PowerShell 調整設定。

為什麼同網段,還是連不到?

同網段只代表網路位置相近,不代表兩台電腦使用相同的登入與安全性設定。

在這次排查的案例中,確認了以下狀況:

  • 有問題的電腦可以連到 NAS 的 TCP 445 連接埠。
  • NAS 支援 SMB 2/SMB 3,也支援 SMB 簽章。
  • NAS 啟用了 Guest,並將不存在的使用者帳號轉成 Guest。
  • Windows 用戶端要求所有 SMB 連線必須簽章。

進一步測試相同的訪客登入流程:不要求簽章時可以列出共用資料夾;要求簽章時則出現 NT_STATUS_ACCESS_DENIED。

問題出在 Guest 登入無法滿足強制簽章要求。 即使 NAS 本身支援 SMB 簽章,也不代表 Guest 連線能使用簽章。

Microsoft 說明,Windows 11 24H2 的 Pro、Enterprise、Education 版本預設要求 SMB 簽章;Home 版本的預設不同,實際仍應查看電腦設定。Microsoft 官方說明

修改前,先了解影響

本文方法適用於已確認需要使用 Guest 的環境。

取消強制簽章會降低 Windows 對 SMB 連線完整性與伺服器身分的保護,而且設定影響這台電腦的 SMB 用戶端,不是只針對某一台 NAS。

較安全的做法是使用有密碼的 NAS 帳號,並保留簽章要求。Microsoft 不建議以關閉簽章作為一般性的相容性解法。SMB 簽章與安全性說明

步驟一:以系統管理員開啟 PowerShell

在連不到 NAS 的 Windows 電腦上操作:

  1. 開啟「開始」選單,搜尋 PowerShell。
  2. 按右鍵,選擇「以系統管理員身分執行」。
  3. 接受使用者帳戶控制提示。

這些指令應在 Windows 電腦上執行,不是在 NAS 的 SSH 終端機執行。

步驟二:查看目前設定

執行:

Get-SmbClientConfiguration |
    Select-Object RequireSecuritySignature, EnableInsecureGuestLogons

本案例的結果為:

RequireSecuritySignature EnableInsecureGuestLogons
------------------------ -------------------------
                    True                      True

意思是:

設定意義
RequireSecuritySignature = TrueWindows 強制要求 SMB 簽章
EnableInsecureGuestLogons = TrueWindows 已允許 Guest 登入

允許 Guest,不代表 Guest 一定能連線。 如果同時強制簽章,仍然會產生衝突。

請先記錄原始設定,方便日後還原。

步驟三:取消強制 SMB 簽章

執行:

Set-SmbClientConfiguration -RequireSecuritySignature $false

如果出現確認提示,確認後繼續。

也可以使用不顯示確認提示的版本:

Set-SmbClientConfiguration -RequireSecuritySignature $false -Force

這個設定的意思是「不再強制每一條 SMB 連線都使用簽章」,並不是停用 SMB 檔案分享服務。

步驟四:確認是否允許 Guest

如果前面查到:

EnableInsecureGuestLogons = True

這一步可以跳過。

如果是 False,而你確定需要訪客登入,則執行:

Set-SmbClientConfiguration -EnableInsecureGuestLogons $true -Force

Guest 登入也不支援 SMB 加密。若環境另有強制加密或組織管理原則,上述調整可能仍不足以建立連線,應由管理者確認相關政策。Microsoft Guest 登入說明

步驟五:驗證設定並重新連線

再次執行:

Get-SmbClientConfiguration |
    Select-Object RequireSecuritySignature, EnableInsecureGuestLogons

預期結果:

RequireSecuritySignature EnableInsecureGuestLogons
------------------------ -------------------------
                   False                      True

接著重新開啟檔案總管,在網址列輸入 NAS 位址,例如:

\\192.168.1.100

請將範例 IP 換成自己的 NAS IP。

若原本的連線狀態仍被保留,可先儲存工作,再登出 Windows 後重新登入測試。能看到共用資料夾後,也應確認需要使用的資料夾是否能正常開啟;Guest 的讀寫權限仍由 NAS 控制。

如果還是連不到

「找不到網路路徑」有多種原因,不能只憑錯誤訊息就判定是簽章問題。

可以先測試 NAS 的 SMB 連接埠:

Test-NetConnection 192.168.1.100 -Port 445

如果 TcpTestSucceeded 是 False,應先檢查 NAS 的 SMB 服務、防火牆與網路連線。如果是 True,只代表連接埠可達,還需要確認帳號驗證與分享權限。

本案例不需要啟用 SMB 1.0,也不需要調整 NAS 的 SMB 版本。

如何還原?

若要重新要求 SMB 簽章:

Set-SmbClientConfiguration -RequireSecuritySignature $true -Force

如果也要停止允許 Guest 登入:

Set-SmbClientConfiguration -EnableInsecureGuestLogons $false -Force

以上是恢復較嚴格的安全設定。若目的是回復修改前的狀態,請依照先前記錄的原始值還原。恢復強制簽章後,原本的 Guest 連線就不能繼續沿用,需改用具備適當權限的 NAS 帳號。

Be the First to comment.

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

(若看不到驗證碼,請重新整理網頁。)