admin管理员组文章数量:1537060
摘要
本文說明如何啟用及停用「伺服器訊息區」(SMB) 用戶端與伺服器元件上的 SMB 版本 1 (SMBv1)、SMB 版本 2 (SMBv2) 和 SMB 版本 3 (SMBv3)。
Warning
建議您不要停用 SMBv2 或 SMBv3。 停用 SMBv2 或 SMBv3 只是「暫時的」疑難排解措施。 請勿停用 SMBv2 或 SMBv3。
在 Windows 7 和 Windows Server 2008 R2 中,停用 SMBv2 將會「停用」(Deactivate) 下列功能:
- 要求複合 – 允許將多個 SMB 2 要求當做單一網路要求傳送
- 更多讀取和寫入 - 較適用於速度更快的網路
- 資料夾和檔案內容的快取 – 用戶端會保留資料夾和檔案的本機複本
- 耐久控制代碼 - 允許出現暫時中斷連線的情況時明確地重新連線至伺服器
- 改良的訊息簽署 - HMAC SHA-256 會取代 MD5 做為雜湊演算法
- 改良的延展性以供檔案共用 - 每部伺服器的使用者、共用及開啟檔案的數目都大幅增加
- 對符號連結的支援
- 用戶端 Oplock Leasing 模型 - 限制用戶端和伺服器之間傳輸的資料,以改善高延遲網路的效能並提升 SMB 伺服器延展性
- 大型 MTU 支援 – 可以完整使用 10 GB 乙太網路
- 改良的電源效率 – 已對伺服器開啟檔案的用戶端可以進入睡眠狀態
在 Windows 8、Windows 8.1、Windows 10、Windows Server 2012 和 Windows Server 2016 中,停用 SMBv3 將會停用下列功能 (以及上面清單所述的 SMBv2 功能):
- 明確容錯移轉 – 用戶端可以在維護或容錯移轉期間,不中斷地重新連接至叢集節點
- 向外延展 – 同時存取所有檔案叢集節點上的共用資料
- 多重通道 – 網路頻寬和容錯的彙總 (若用戶端和伺服器之間有多個路徑可用)
- SMB 直接傳輸 - 新增 RDMA 網路支援,以達極高效能、低延遲及低 CPU 使用率
- 加密 – 提供端對端加密,以免在不可信任的網路上遭到竊聽
- 目錄租用 – 透過快取,改善分公司的應用程式回應時間
- 效能最佳化 – 針對小型隨機讀取/寫入 I/O 進行最佳化
其他相關資訊
SMBv2 通訊協定是在 Windows Vista 和 Windows Server 2008 中引進。
SMBv3 通訊協定是在 Windows 8 和 Windows Server 2012 中引進。
如需有關 SMBv2 和 SMBv3 功能的詳細資訊,請前往下列 Microsoft TechNet 網站:
伺服器訊息區概觀 (英文)
SMB 中的新功能 (英文)
如何在 Windows 8.1、Windows 10、Windows 2012 R2 和 Windows Server 2016 中適當地移除 SMB v1
Windows Server 2012 R2 與 2016: PowerShell 方法
SMB v1
偵測: | Get-WindowsFeature FS-SMB1 |
停用: | Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol |
啟用: | Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol |
SMB v2/v3
偵測: | Get-SmbServerConfiguration | 選取 EnableSMB2Protocol |
停用: | Set-SmbServerConfiguration -EnableSMB2Protocol $false |
啟用: | Set-SmbServerConfiguration -EnableSMB2Protocol $true |
Windows Server 2012 R2 和 Windows Server 2016: 停用 SMB 的伺服器管理員方法
SMB v1
Windows 8.1 和 Windows 10: PowerShell 方法
SMB v1 通訊協定
偵測: | Get-WindowsOptionalFeature –線上 –FeatureName SMB1 協定 |
停用: | Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol |
啟用: | Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol |
SMB v2/v3 通訊協定
偵測: | Get-SmbServerConfiguration | 選取 EnableSMB2Protocol |
停用: | Set-SmbServerConfiguration -EnableSMB2Protocol $false |
啟用: | Set-SmbServerConfiguration -EnableSMB2Protocol $true |
Windows 8.1 和 Windows 10: 新增或移除程式方法
如何偵測、啟用和停用 SMB 伺服器上的 SMB 通訊協定
Windows 8 和 Windows Server 2012
Windows 8 和 Windows Server 2012 引進全新的 Set-SMBServerConfiguration Windows PowerShell Cmdlet。 這個 Cmdlet 可讓您啟用或停用伺服器元件上的 SMBv1、SMBv2 和 SMBv3 通訊協定。
注意
當您在 Windows 8 或 Windows Server 2012 中啟用或停用 SMBv2 時,SMBv3 也會跟著啟用或停用。 之所以出現這個行為,是因為這些通訊協定共用相同的堆疊。
執行 Set-SMBServerConfiguration Cmdlet 之後,您不必重新啟動電腦。
SMB 伺服器上的 SMB v1
偵測: | Get-SmbServerConfiguration | 選取 EnableSMB1Protocol |
停用: | Set-SmbServerConfiguration -EnableSMB1Protocol $false |
啟用: | Set-SmbServerConfiguration -EnableSMB1Protocol $true |
如需詳細資訊,請參閱位於 Microsoft 的伺服器存放裝置 (英文)。
SMB 伺服器上的 SMB v2/v3
偵測: | Get-SmbServerConfiguration | 選取 EnableSMB2Protocol |
停用: | Set-SmbServerConfiguration -EnableSMB2Protocol $false |
啟用: | Set-SmbServerConfiguration -EnableSMB2Protocol $true |
Windows 7、Windows Server 2008 R2、Windows Vista 和 Windows Server 2008
若要在執行 Windows 7、Windows Server 2008 R2、Windows Vista 或 Windows Server 2008 的 SMB 伺服器上啟用或停用 SMB 通訊協定,請使用 Windows PowerShell 或「登錄編輯程式」。
PowerShell 方法
注意
這個方法需要 PowerShell 2.0 或最新的 PowerShell 版本。
SMB 伺服器上的 SMB v1
偵測:
Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
預設設定 = 已啟用 (不會建立任何登錄機碼),因此,不會傳回任何 SMB1 值
停用:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 –Force
啟用:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 –Force
注意 套用這些變更之後,您必須重新啟動電腦。
如需詳細資訊,請參閱位於 Microsoft 的伺服器存放裝置 (英文)。
SMB 伺服器上的 SMB v2/v3
偵測:
Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
停用:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 –Force
啟用:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 –Force
注意 套用這些變更之後,您必須重新啟動電腦。
登錄編輯程式
重要 本文包含如何修改登錄的相關資訊。 修改登錄之前,請務必先備份, 並了解如何在發生問題時還原登錄。 如需有關如何備份、還原和修改登錄的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
322756 如何在 Windows 中備份及還原登錄
若要啟用或停用 SMB 伺服器上的 SMBv1,請設定下列登錄機碼:
登錄子機碼: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
登錄項目: SMB1
REG_DWORD: 0 = 已停用
REG_DWORD: 1 = 已啟用
預設值: 1 = 已啟用 (不會建立任何登錄機碼)
若要啟用或停用 SMB 伺服器上的 SMBv2,請設定下列登錄機碼:
登錄子機碼:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
登錄項目: SMB2
REG_DWORD: 0 = 已停用
REG_DWORD: 1 = 已啟用
預設值: 1 = 已啟用(不會建立任何登錄機碼)
注意 套用這些變更之後,您必須重新啟動電腦。
如何偵測、啟用和停用 SMB 用戶端上的 SMB 通訊協定
Windows Vista、Windows Server 2008、Windows 7、Windows Server 2008 R2、Windows 8 和 Windows Server 2012
注意 當您在 Windows 8 或 Windows Server 2012 中啟用或停用 SMBv2 時,SMBv3 也會跟著啟用或停用。 之所以出現這個行為,是因為這些通訊協定共用相同的堆疊。
SMB 用戶端上的 SMB v1
偵測: | sc.exe qc lanmanworkstation |
停用: | sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi sc.exe config mrxsmb10 start= disabled |
啟用: | sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi sc.exe config mrxsmb10 start= auto |
如需詳細資訊,請參閱位於 Microsoft 的伺服器存放裝置 (英文)
SMB 用戶端上的 SMB v2/v3
偵測: | sc.exe qc lanmanworkstation |
停用: | sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi sc.exe config mrxsmb20 start= disabled |
啟用: | sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi sc.exe config mrxsmb20 start= auto |
注意事項
- 您必須在提升權限的命令提示字元中執行這些命令。
- 套用這些變更之後,您必須重新啟動電腦。
使用群組原則停用 SMBv1 伺服器
這個操作會在登錄中設定下列新項目:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
登錄項目: SMB1 REG_DWORD: 0 = 已停用
若要使用 [群組原則] 進行設定:
- 開啟 [群組原則管理主控台]。 以滑鼠右鍵按一下應包含新喜好設定項目的群組原則物件 (GPO),然後按一下 [編輯]。
- 在 [電腦設定] 主控台樹狀目錄中,展開 [喜好設定] 資料夾,然後展開 [Windows 設定] 資料夾。
- 以滑鼠右鍵按一下 [登錄] 節點,指向 [新增] 並選取 [登錄項目]。
在 [新登錄內容] 對話方塊中選取下列項目:
- 動作: 建立
- 登錄區: HKEY_LOCAL_MACHINE
- 機碼路徑: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
- 數值名稱: SMB1
- 數值類型: REG_DWORD
- 數值資料: 0
這個操作會停用 SMBv1 伺服器元件。 您必須將這個群組原則套用到網域中所有必要的工作站、伺服器和網域控制站。
注意:WMI 篩選器也可以設定為排除不支援的作業系統或選取的排除項目,例如 Windows XP。
警告
由於舊版 Windows XP 或較舊的 Linux 和協力廠商系統(不支援 SMBv2 或 SMBv3)需要存取 SYSVOL 或 SMB v1 即將停用的其他檔案共用,因此,在網域控制站進行這些變更時,請小心謹慎。
使用群組原則停用 SMBv1 用戶端
若要停用 SMBv1 用戶端,您必須更新服務登錄機碼,以停用 MRxSMB10 的啟動,並且從 LanmanWorkstation 的項目移除 MRxSMB10 的相依性,以便在不需要先啟動 MRxSMB10 的情況下正常地啟動。
這個操作會更新並取代下列 2 個登錄項目的預設值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10
登錄項目: Start REG_DWORD: 4 = 已停用
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation
登錄項目: DependOnService REG_MULTI_SZ: [Bowser]、[MRxSmb20]、[NSI]
注意:預設值包含現在當做相依性而移除的 MRxSMB10
若要使用「群組原則」進行設定:
- 開啟 [群組原則管理主控台]。 以滑鼠右鍵按一下應包含新喜好設定項目的群組原則物件 (GPO),然後按一下 [編輯]。
- 在 [電腦設定] 主控台樹狀目錄中,展開 [喜好設定] 資料夾,然後展開 [Windows 設定] 資料夾。
- 以滑鼠右鍵按一下 [登錄] 節點,指向 [新增] 並選取 [登錄項目]。
在 [新登錄內容] 對話方塊中選取下列項目:
- 動作: 更新
- 登錄區: HKEY_LOCAL_MACHINE
- 機碼路徑: SYSTEM\CurrentControlSet\services\mrxsmb10
- 數值名稱: Start
- 數值類型: REG_DWORD
- 數值資料: 4
接著,移除剛停用的 MRxSMB10 的相依性
在 [新登錄內容] 對話方塊中選取下列項目:
- 動作: 取代
- 登錄區: HKEY_LOCAL_MACHINE
- 機碼路徑: SYSTEM\CurrentControlSet\Services\LanmanWorkstation
- 數值名稱: DependOnService
- 數值類型:REG_MULTI_SZ
- 數值資料:
- Bowser
- MRxSmb20
- NSI
注意:這三個字串將不會有項目符號(請參閱下列螢幕擷取畫面)。
在許多 Windows 版本中,預設值會包含 MRxSMB10,因此,使用這個多重值字串來取代預設值,將會移除 LanmanServer 的 MRxSMB10 相依性,並使 4 個預設值減為上述 3 個值。
注意:當您使用 [群組原則管理主控台] 時,您不需要使用引號或逗號。 只要每行輸入一個項目即可。
需要重新啟動
套用原則且登錄設定就緒之後,目標系統必須重新啟動,SMB v1 才會停用。
摘要
如果所有設定都在相同的群組原則物件 (GPO) 中,[群組原則管理] 將會顯示如下設定。
測試和驗證
一旦設定完成,即可允許原則進行複寫和更新。 基於測試的必要性,請在命令提示字元中執行 gpupdate /force,然後檢閱目標電腦,以確保正確套用登錄設定。 請確認環境中所有其他系統的 SMB v2 和 SMB v3 都正常運作。
警告
請不要忘記重新啟動目標系統。
版权声明:本文标题:如何在 Windows 和 Windows Server 中偵測、啟用及停用 SMBv1、SMBv2 和 SMBv3 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1726946511a1091179.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论