打從SMBv1被發現安全性問題, 加上工作筆電改用新版Windows 10(另外包含新的版伺服器版Windows Server也是)預設不啟用SMBv1, 就發現在工作上使用遠端桌面要連結一些測試PC或VM時, 或是要在遠端桌面環境要複製貼上檔案, 或甚至要用網路芳鄰, 只是遠端是較舊版的Windows就會失敗

原本也是知道這就是SMB版本不通的緣故, 但一直不想去好好處理它, 總是用一些其他方式, 像是找第三台PC做為轉跳, 或是在新系統上把上面這個 SMB 1.0/CIFS檔案共用支援 打開, 就可以再享有往日的便利了。
不過日子久了, 想想還是顧及一些安全性的好, 今日就找到官方這份說明:
- 中文版: https://docs.microsoft.com/zh-tw/windows-server/storage/file-server/troubleshoot/detect-enable-and-disable-smbv1-v2-v3
- 英文版: https://docs.microsoft.com/en-us/windows-server/storage/file-server/troubleshoot/detect-enable-and-disable-smbv1-v2-v3
不過我不得不說這個中文翻譯真的有個大問題, 若你英文還可以, 還是推薦你看英文版的好點。中文版中對SMBv2都會加上 弱點 二字, 如果去看英文版的其實這裡都沒有這內容, 若是不察還真是會被誤導。

這份文章說明了各代Windows 上可以如何查詢及開或關SMBv1。設定方式隨各代Windows各有不同, 分別有PowerShell、使用者界面、Registry或是Command shell, 以下以Command shell來介紹, 其他方式可參考以上連結說明文章。
首先可先查一下原始狀態
sc.exe qc lanmanworkstation
查出來的結果大致如下, 其中紅框處可以看到目前系統支援哪些種類, 或者更該說是否有禁用SMBv1, 如果有看到MRxSmb10就表示SMBv1還開啟著。

我的筆電是Windows 10, 查詢結果如上圖一致, 但測試用的VM是Windows 7, 上面紅框處會多一個MRxSmb10。想來應該是在做遠端連線時, Windows 10想著自己不接受SMBv1, 看到對方Windows 7 還有SMBv1, 也不管它是不是有SMBv2或SMBv3, 就不想與人家往來。
若是要 開啟 SMBv1, 就如下
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb10 start= auto
若是要 關閉 SMBv1, 就如下
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled