在 Windows服務(wù)器中啟用/禁用SMBv1、SMBv2和SMBv3的方法
本文介紹如何在 SMB 客戶端和服務(wù)器組件上啟用/禁用服務(wù)器消息塊 SMBv1、SMBv2 和 SMBv3。
注意:建議由專業(yè)技術(shù)工程師完成以下操作。
禁用 SMBv2 和 SMBv3 的影響
我們建議不要禁用 SMBv2 或 SMBv3。禁用 SMBv2 或 SMBv3 只能作為臨時故障排除措施。請勿使 SMBv2 或 SMBv3 保持禁用狀態(tài)。
禁用 SMBv2 的影響
在 Windows 7 和 Windows Server 2008 R2 中,禁用 SMBv2 會停用以下功能:
- 請求復(fù)合 - 允許發(fā)送多個 SMB 2 請求作為單個網(wǎng)絡(luò)請求
- 大型讀寫 - 更好地利用更快速的網(wǎng)絡(luò)
- 文件夾和文件屬性緩存 - 客戶端保留文件夾和文件的本地副本
- 持久句柄 - 如果臨時斷開連接,則允許連接以透明方式重新連接到服務(wù)器
- 改進的消息簽名 - HMAC SHA-256 代替 MD5 作為哈希算法
- 改進的文件共享擴展性 - 每個服務(wù)器的用戶數(shù)量、共享數(shù)量和打開文件數(shù)量大大增加
- 支持符號鏈接
- 客戶端 oplock 租賃模式 - 限制在客戶端和服務(wù)器之間傳輸?shù)臄?shù)據(jù),從而提高高延遲網(wǎng)絡(luò)性能并增強 SMB 服務(wù)器的擴展性
- 大型 MTU 支持 - 可充分利用 10 千兆字節(jié) (GB) 以太網(wǎng)
- 改進的能效 - 向服務(wù)器打開文件的客戶端可以睡眠
禁用 SMBv3 的影響
在 Windows 8、Windows 8.1、Windows 10、Windows Server 2012 和 Windows Server 2016 中,禁用 SMBv3 會停用以下功能(以及以上列表中所述的 SMBv2 功能):
- 透明故障轉(zhuǎn)移 - 在維護或故障轉(zhuǎn)移期間,客戶端會重新連接,不會干擾群集節(jié)點
- 擴展 – 并發(fā)訪問所有文件群集節(jié)點上的共享數(shù)據(jù)
- 多通道 - 如果客戶端和服務(wù)器之間有多個路徑可用時,則聚合網(wǎng)絡(luò)帶寬和容錯
- SMB 直通 – 增加 RDMA 網(wǎng)絡(luò)支持,實現(xiàn)極高的性能、低延遲和低 CPU 利用率
- 加密 – 提供端到端加密,并防止不可靠網(wǎng)絡(luò)上的竊聽
- 目錄租賃 - 通過緩存改進分支機構(gòu)中應(yīng)用程序的響應(yīng)時間
- 性能優(yōu)化 - 對小型隨機讀/寫 I/O 的優(yōu)化
在 SMB 服務(wù)器上啟用/禁用 SMB 協(xié)議
Windows 8 和 Windows Server 2012
Windows 8 和 Windows Server 2012 引入了新的 Set-SMBServerConfiguration Windows PowerShell cmdlet。 通過此 cmdlet,你可以在服務(wù)器組件上啟用或禁用 SMBv1、SMBv2 和 SMBv3 協(xié)議。
注意:因為 SMBv2 和 SMBv3 共用一個堆疊,所以在 Windows 8 或 Windows Server 2012 中啟用或禁用 SMBv2 時,也會啟用或禁用 SMBv3。
使用 PowerShell cmdlet
運行 Set-SMBServerConfiguration cmdlet 后,無須重啟計算機。
若要獲取 SMB 服務(wù)器協(xié)議配置的當前狀態(tài),請運行以下 cmdlet:
Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol
若要在 SMB 服務(wù)器上禁用 SMBv1,請運行以下 cmdlet:
Set-SmbServerConfiguration -EnableSMB1Protocol $false
若要在 SMB 服務(wù)器上禁用 SMBv2 和 SMBv3,請運行以下 cmdlet:
Set-SmbServerConfiguration -EnableSMB2Protocol $false
若要在 SMB 服務(wù)器上啟用 SMBv1,請運行以下 cmdlet:
Set-SmbServerConfiguration -EnableSMB1Protocol $true
若要在 SMB 服務(wù)器上啟用 SMBv2 和 SMBv3,請運行以下 cmdlet:
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 服務(wù)器上啟用或禁用 SMB 協(xié)議,請使用 Windows PowerShell 或注冊表編輯器。
使用 Windows PowerShell 2.0 或更高版本的 PowerShell
若要在 SMB 服務(wù)器上禁用 SMBv1,請運行以下 cmdlet:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force
若要在 SMB 服務(wù)器上禁用 SMBv2 和 SMBv3,請運行以下 cmdlet:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 -Force
若要在 SMB 服務(wù)器上啟用 SMBv1,請運行以下 cmdlet:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 -Force
若要在 SMB 服務(wù)器上啟用 SMBv2 和 SMBv3,請運行以下 cmdlet:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 -Force
注意:進行這些更改后,必須重啟計算機。
使用注冊表編輯器
注意:以下內(nèi)容包含有關(guān)如何修改注冊表的信息。修改注冊表之前,一定要先對其進行備份。并且一定要知道在發(fā)生問題時如何還原注冊表。有關(guān)如何備份、還原和修改注冊表的更多信息,請查看 如何在 Windows 中備份和還原注冊表。
若要在 SMB 服務(wù)器上啟用或禁用 SMBv1,請配置以下注冊表項:
注冊表子項:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters 注冊表項: SMB1
REG_DWORD: 0 = 已禁用
REG_DWORD: 1 = 已啟用
默認值: 1 = 已啟用
若要在 SMB 服務(wù)器上啟用或禁用 SMBv2,請配置以下注冊表項:
注冊表子項:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters 注冊表項: SMB2
REG_DWORD: 0 = 已禁用
REG_DWORD: 1 = 已啟用
默認值: 1 = 已啟用
在 SMB 客戶端上啟用/禁用 SMB 協(xié)議
Windows Vista、Windows Server 2008、Windows 7、Windows Server 2008 R2、Windows 8 和 Windows Server 2012
注意:因為 SMBv2 和 SMBv3 共用一個堆疊,所以在 Windows 8 或 Windows Server 2012 中啟用或禁用 SMBv2 時,也會啟用或禁用 SMBv3。
若要在 SMB 客戶端上禁用 SMBv1,請運行以下命令:
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled
若要在 SMB 客戶端上啟用 SMBv1,請運行以下命令:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb10 start= auto
若要在 SMB 客戶端上禁用 SMBv2 和 SMBv3,請運行以下命令:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
sc.exe config mrxsmb20 start= disabled
若要在 SMB 客戶端上啟用 SMBv2 和 SMBv3,請運行以下命令:
sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb20 start= auto
注意:
必須在提升的命令提示符中運行這些命令。
進行這些更改后,必須重啟計算機。
使用組策略禁用 SMBv1 服務(wù)器
這將在注冊表中配置以下新項:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters 注冊表項: SMB1 REG_DWORD: 0 = Disabled
使用組策略配置流程
1、打開組策略管理控制臺。右鍵單擊應(yīng)包含新首選項的組策略對象 (GPO),然后單擊 編輯。
2、在 計算機配置 下的控制臺樹中,展開 首選項 文件夾,然后展開 Windows 設(shè)置 文件夾。
3、右鍵單擊 注冊表 節(jié)點,指向 新建,然后選擇 注冊表項。
4、在 新建注冊表屬性 對話框中,選擇以下內(nèi)容:
操作: 創(chuàng)建
Hive: HKEY_LOCAL_MACHINE
注冊表項路徑: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
值名稱: SMB1
值類型: REG_DWORD
值數(shù)據(jù): 0
5、將此組策略應(yīng)用到域中所有必需的工作站、服務(wù)器和域控制器,以禁用 SMBv1 服務(wù)器組件。也可以將 WMI 篩選器設(shè)置為不包含不受支持的操作系統(tǒng)或選中的排除項(如 Windows XP)。
注意:在舊版 Windows XP 或 Linux 早期版本以及第三方系統(tǒng)(不支持 SMBv2 或 SMBv3)需要訪問 SYSVOL 或其他文件共享(已啟用 SMB v1)的域控制器上進行這些更改時要謹慎小心。
使用組策略禁用 SMBv1 客戶端
若要禁用 SMBv1 客戶端,需要將服務(wù)注冊表項更新為禁止 MRxSMB10 啟動,然后還需要將 MRxSMB10 的依賴項從 LanmanWorkstation 項中刪除,以便它可以正常啟動(無需首先啟動 MRxSMB10)。
這將更新和替換注冊表以下 2 個項中的默認值
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10 注冊表項: Start REG_DWORD: 4 = Disabled
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation 注冊表項: DependOnService REG_MULTI_SZ: “Bowser”,”MRxSmb20″,”NSI”
注意:默認包含的 MRxSMB10 現(xiàn)已作為依賴項刪除。
使用組策略配置流程
1、打開組策略管理控制臺。右鍵單擊應(yīng)包含新首選項的組策略對象 (GPO),然后單擊 編輯。
2、在 計算機配置 下的控制臺樹中,展開 首選項 文件夾,然后展開 Windows 設(shè)置 文件夾。
3、右鍵單擊 注冊表 節(jié)點,指向 新建,然后選擇 注冊表項。
4、在 新建注冊表屬性 對話框中,選擇以下內(nèi)容:
操作: 更新
Hive: HKEY_LOCAL_MACHINE
注冊表項路徑: SYSTEM\CurrentControlSet\services\mrxsmb10
值名稱: Start
值類型: REG_DWORD
值數(shù)據(jù): 4
然后刪除剛剛禁用的 MRxSMB10 的依賴項
5、在 新建注冊表屬性 對話框中,選擇以下內(nèi)容:
操作: 替換
Hive: HKEY_LOCAL_MACHINE
注冊表項路徑: SYSTEM\CurrentControlSet\Services\LanmanWorkstation
值名稱: DependOnService
值類型 REG_MULTI_SZ
值數(shù)據(jù):
Bowser
MRxSmb20
NSI
注意: 這 3 個字符串不帶項目符號(具體如下)
在 Windows 的多個版本中,默認值包括 MRxSMB10,通過將其替換為此多值字符串,實際上就刪除了作為 LanmanServer 依賴項的 MRxSMB10,結(jié)果是從四個默認值減少為上述這三個值。
注意:使用組策略管理控制臺時,無需使用引號或逗號。只需在各行鍵入每個項,如上面所示。
需要重新啟動
應(yīng)用策略且正確設(shè)置注冊表后,必須重新啟動目標系統(tǒng),然后才能禁用 SMB v1。
摘要
如果所有設(shè)置均在同一組策略對象 (GPO) 中,組策略管理將顯示以下設(shè)置。
測試和驗證
配置完成后即允許策略進行復(fù)制和更新。作為測試的必要步驟,請從 CMD.EXE 提示符處運行 gpupdate/force,然后查看目標計算機,以確保注冊表設(shè)置得以正確應(yīng)用。確保 SMBv2 和 SMBv3 在環(huán)境中的所有其他系統(tǒng)中正常運行。
注意:請務(wù)必重新啟動目標系統(tǒng)。
如何在 Windows 8.1、Windows 10、Windows 2012 R2 和 Windows Server 2016 中輕松刪除 SMBv1
Windows Server:使用 “服務(wù)器管理器”
Windows Server:使用 PowerShell (Remove-WindowsFeature FS-SMB1)
Windows 客戶端:使用 PowerShell (Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol)
參考與適用性
本文來源自微軟官方技術(shù)文檔:如何在 Windows 和 Windows Server 中啟用和禁用 SMBv1、SMBv2 和 SMBv3。
如有變化,以微軟官方為準。
這篇文章中的信息適用于:
Windows 10 Pro released in July 2015,
Windows 10 Enterprise released in July 2015
Windows Vista Enterprise
Windows Vista Business
Windows Vista Home Basic
Windows Vista Home Premium
Windows Vista Ultimate
Windows 7 Enterprise
Windows 7 Home Basic
Windows 7 Home Premium
Windows 7 Professional
Windows 7 Ultimate
Windows Server 2008 Datacenter
Windows Server 2008 Enterprise
Windows Server 2008 Standard
Windows Server 2008 R2 Datacenter
Windows Server 2008 R2 Enterprise
Windows Server 2008 R2 Standard
Windows 8
Windows 8 Enterprise
Windows 8 Pro
Windows Server 2012 Datacenter
Windows Server 2012 Datacente
Windows Server 2012 Essentials
Windows Server 2012 Foundation
Windows Server 2012 Foundation
Windows Server 2012 Standard
Windows Server 2012 Standard
Windows Server 2016
相關(guān)文章
Windows Server 2016 IIS10 安裝配置圖文詳解
這篇文章為大家介紹了win2016下iis10的安裝配置方法,其實iis自從iis7以后界面與功能就大同小異了,這里腳本之家小編推薦大家使用2008 r2的iis7.5再接觸iis10就會容易更多而且針對2008的資料也比較多與全2017-08-08Windowsserver2019搭建DHCP故障轉(zhuǎn)移服務(wù)
DHCP故障轉(zhuǎn)移就是將多臺DHCP服務(wù)器放置在一個群集中,當其中一個DHCP服務(wù)器出現(xiàn)故障的時候,則由另一個DHCP服務(wù)器向客戶端提供DHCP服務(wù),本文主要介紹了Windowsserver2019搭建DHCP故障轉(zhuǎn)移服務(wù),具有一定的參考價值,感興趣的可以了解一下2024-04-04windows server 2008 R2 禁用ipv6和隧道適配器
這篇文章主要介紹了windows server 2008 R2 禁用ipv6和隧道適配器,需要的朋友可以參考下2015-09-09關(guān)于網(wǎng)站應(yīng)用程序池的帳號密碼更改及其影響的實例分析
這個標題看起來有點繞,但其實是一個常見的問題,而且很多朋友對此的理解都不深。我這里用一個例子來解釋一下2011-12-12Windows 2008 R2防火墻,允許被ping的設(shè)置方法
這篇文章主要介紹了Windows 2008 R2防火墻,允許被ping的設(shè)置方法,需要的朋友可以參考下2016-06-06處理程序 PageHandlerFactory-Integrated 在其模塊列表中有一個錯誤模塊 ManagedPip
今天在安裝好IIS的Windows2008 r2本上發(fā)布asp.net網(wǎng)站時,web程序已經(jīng)映射到了本地IIS上,但運行如下錯誤提示處理程序PageHandlerFactory-Integrated在其模塊列表中有一個錯誤模塊ManagedPipelineHandler2020-03-03windows 7架設(shè)OpenSSH服務(wù)器實踐
這篇文章主要介紹了windows 7架設(shè)OpenSSH服務(wù)器實踐,需要的朋友可以參考下2016-01-01Windows Server 2012 DHCP+WDS+WIN7+萬能驅(qū)動 部署教程(一)
這篇文章主要介紹了Windows Server 2012 DHCP+WDS+WIN7+萬能驅(qū)動 部署教程(一),需要的朋友可以參考下2018-05-05