懶人包,powershell直接下
Set-SmbClientConfiguration -RequireSecuritySignature $false
明明電腦與 NAS 在同一個網段,其他電腦也能正常使用,卻只有某台 Windows 電腦開啟 NAS 時,直接出現「找不到網路路徑」,連輸入帳號密碼的視窗都沒有。
如果 NAS 使用 Guest 訪客登入,原因可能是 Windows 啟用了「強制 SMB 簽章」。
本文說明如何確認這個情況,以及在確定需要保留 Guest 存取時,使用 PowerShell 調整設定。
同網段只代表網路位置相近,不代表兩台電腦使用相同的登入與安全性設定。
在這次排查的案例中,確認了以下狀況:
進一步測試相同的訪客登入流程:不要求簽章時可以列出共用資料夾;要求簽章時則出現 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 簽章與安全性說明
在連不到 NAS 的 Windows 電腦上操作:
這些指令應在 Windows 電腦上執行,不是在 NAS 的 SSH 終端機執行。
執行:
Get-SmbClientConfiguration |
Select-Object RequireSecuritySignature, EnableInsecureGuestLogons
本案例的結果為:
RequireSecuritySignature EnableInsecureGuestLogons
------------------------ -------------------------
True True
意思是:
| 設定 | 意義 |
|---|---|
RequireSecuritySignature = True | Windows 強制要求 SMB 簽章 |
EnableInsecureGuestLogons = True | Windows 已允許 Guest 登入 |
允許 Guest,不代表 Guest 一定能連線。 如果同時強制簽章,仍然會產生衝突。
請先記錄原始設定,方便日後還原。
執行:
Set-SmbClientConfiguration -RequireSecuritySignature $false
如果出現確認提示,確認後繼續。
也可以使用不顯示確認提示的版本:
Set-SmbClientConfiguration -RequireSecuritySignature $false -Force
這個設定的意思是「不再強制每一條 SMB 連線都使用簽章」,並不是停用 SMB 檔案分享服務。
如果前面查到:
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 帳號。