事件
4月29日 下午2時 - 4月30日 下午7時
加入最終的 Windows Server 虛擬活動 4 月 29-30 日,以取得深入探討的技術研討會,並與Microsoft工程師實時問答。
立即註冊本文說明如何在 SMB 用戶端和伺服器元件上啟用和停用伺服器消息塊 (SMB) 第 1 版 (SMBv1)、SMB 第 2 版 (SMBv2) 和 SMB 第 3 版 (SMBv3)。
如果您停用或移除SMBv1,可能會遇到舊電腦或軟體的相容性問題。 SMBv1 有顯著的安全性弱點,強烈建議您不要使用它。 在任何 Windows 11 或 Windows Server 2019 及後續版本中,SMBv1 預設未安裝。 除了家用版和專業版以外,Windows 10 預設也不會安裝 SMBv1。 建議您不要重新安裝SMBv1,而是更新仍需要它的SMB伺服器。 如需需要SMBv1的合作夥伴清單及其移除需求的更新,請參閱 SMB1產品清查所。
我們建議保持啟用 SMBv2 和 SMBv3,但您可能會發現在進行故障排除時暫時禁用其中一個是有用的。 如需詳細資訊,請參閱 使用命令行或註冊表編輯器來管理 SMB 通訊協定。
停用 SMBv3 會停用下列功能:
停用 SMBv2 會停用下列功能:
SMBv2 通訊協定是在 Windows Vista 和 Windows Server 2008 中引進的。 SMBv3 通訊協定是在 Windows 8 和 Windows Server 2012 中引進的。 有關 SMBv2 和 SMBv3 能力的更多資訊,請參閱以下文章:
您可以使用 Get-WindowsOptionalFeature、Disable-WindowsOptionalFeature和 Enable-WindowsOptionalFeature PowerShell 命令來偵測、停用及啟用 SMBv1 用戶端或伺服器。 請在具備管理員許可權的命令提示字元中執行命令。
注意
執行 PowerShell 命令以停用或啟用 SMBv1 之後,計算機會重新啟動。
偵測:
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
停用:
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
啟用:
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
提示
您可以不需提升權限即可執行 Get-SmbServerConfiguration 命令來偵測 SMBv1 狀態:Get-SmbServerConfiguration | Format-List EnableSMB1Protocol
。
預設不會在 Windows Server 2019 和更新版本上安裝 SMBv1。 在舊版的 Windows Server 上,您可以使用伺服器管理員來移除 SMBv1:
在您想要從中移除 SMBv1 的伺服器上,開啟 [伺服器管理員]。
在 [伺服器管理員儀錶板] 的 [設定此本地伺服器] 底下,選取 [新增角色和功能]。
在開始之前頁面上,選擇啟動移除角色和功能精靈,然後在下一頁選擇下一步。
在 [選取目的地伺服器] 頁面上,於 [伺服器集區]下,確定已選取要從中移除功能的伺服器,然後選取 [下一步] 。
在刪除伺服器角色頁面,選擇 下一步。
在 [移除功能] 頁面上,清除 SMB 1.0/CIFS 檔案共享支援的複選框,然後選取 [下一步]。
在確認刪除選擇確認功能已列出,然後選擇Remove。
從 Windows 10 Fall Creators Update 和 Windows Server 2019 開始,預設不會再安裝 SMBv1。 如需詳細資訊,請參閱 windows 10 版本 1709、Windows Server 版本 1709 和更新版本 中預設不會安裝SMBv1。
當您在 Windows 8 或 Windows Server 2012 中啟用或停用 SMBv2 時,SMBv3 也會同時啟用或停用。 這種行為發生是因為這些協定共用相同的協議堆疊。
您可以使用 Set-SMBServerConfiguration Cmdlet,在伺服器元件上啟用或停用 SMBv1、SMBv2 和 SMBv3 通訊協定。 您可以使用 Get-SmbServerConfiguration Cmdlet 來擷取 SMB 伺服器組態。
執行後,無需重新啟動電腦Set-SMBServerConfiguration cmdlet。
偵測:
Get-SmbServerConfiguration | Select EnableSMB1Protocol
停用:
Set-SmbServerConfiguration -EnableSMB1Protocol $false
啟用:
Set-SmbServerConfiguration -EnableSMB1Protocol $true
如需詳細資訊,請參閱 停止使用SMB1。
偵測:
Get-SmbServerConfiguration | Select EnableSMB2Protocol
停用:
Set-SmbServerConfiguration -EnableSMB2Protocol $false
啟用:
Set-SmbServerConfiguration -EnableSMB2Protocol $true
若要在執行 Windows 7、Windows Server 2008 R2、Windows Vista 或 Windows Server 2008 的 SMB 伺服器上啟用或停用 SMB 通訊協定,請使用 Windows PowerShell 或註冊表編輯器,如下列各節所述。
您可以使用 Get-Item、Get-ItemProperty和 Set-ItemProperty Cmdlet 來偵測、啟用和停用 SMB 通訊協定。
注意
下列各節中的命令需要 PowerShell 2.0 或更新版本。
偵測:
Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
預設配置 Enabled
。 因此,不會建立名為 value 的登錄,因此命令不會傳回 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
注意
在您進行這些變更之後,必須重新啟動電腦以應用這些變更。
如需詳細資訊,請參閱 停止使用SMB1。
偵測:
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
注意
在您進行這些變更之後,必須重新啟動電腦以應用這些變更。
重要
請仔細依照本節中的步驟執行。 如果您未正確修改登錄,可能會發生嚴重問題。 在修改之前,備份登錄以供還原,以免發生問題。
若要在SMB伺服器上啟用或停用SMBv1,請開啟註冊表編輯器,然後移至下列登錄機碼路徑:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
設定具有下列屬性的項目:
若要在SMB伺服器上啟用或停用SMBv2,請開啟註冊表編輯器,然後移至下列登錄機碼路徑:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
設定具有下列屬性的條目:
注意
在您進行這些變更之後,必須重新啟動電腦以應用這些變更。
本節說明如何使用組策略停用 SMBv1。 您可以在各種 Windows 版本上使用此方法。
您可以透過在註冊表中配置以下新項目,在 SMB 伺服器上停用 SMBv1:
若要使用組策略來設定此專案,請採取下列步驟:
開啟組策略管理主控台。 以滑鼠右鍵按下應包含新偏好設定項目的群組原則物件(GPO),然後選取 [編輯]。
在控制台中Computer Configuration開啟 Preferences資料夾,然後開啟Windows Settings資料夾。
在 [登錄] 節點上按一下滑鼠右鍵,選擇 [新增],然後選取 [登錄專案]。
在 [[新增登錄屬性] 對話框中,選取或輸入下列值:
此程式會停用SMBv1伺服器元件。 您必須將此原則套用至網域中所有必要的工作站、伺服器和域控制器。
注意
您可以設定 Windows Management Instrumentation (WMI) 篩選來排除特定作系統,或排除用戶端或伺服器作系統。 如需詳細資訊,請參閱 組策略篩選 和 建立 GPO的 WMI 篩選。
重要
某些系統需要存取 SYSVOL 資料夾或其他檔案共用,但不支援 SMBv2 或 SMBv3。 這類系統的範例包括舊版 Windows 系統和舊版 Linux 和合作夥伴系統。 當您在這些系統上的域控制器上停用SMBv1時,請小心。
若要判斷哪些客戶端嘗試使用SMBv1連線到SMB伺服器,您可以在Windows Server 和 Windows 用戶端上啟用稽核。 若要啟用或停用稽核,請使用 Set-SmbServerConfiguration Cmdlet。 若要檢查稽核狀態,請使用 Get-SmbServerConfiguration Cmdlet。
啟用:
Set-SmbServerConfiguration -AuditSmb1Access $true
停用:
Set-SmbServerConfiguration -AuditSmb1Access $false
偵測:
Get-SmbServerConfiguration | Select AuditSmb1Access
啟用SMBv1稽核之後,您可以檢查 Microsoft-Windows-SMBServer\Audit
事件記錄檔中是否有存取事件。 每次客戶端嘗試使用 SMBv1 連線到伺服器時,記錄檔中會出現事件 ID 為 3000 的項目。
如果所有設定都位於相同的 GPO 中,組策略管理會顯示下列設定:
完成組策略管理控制台中的設定步驟之後,請提供組策略時間,以將更新套用至其設定。 如果需要進行測試,請在命令提示字元執行 gpupdate /force
,然後檢閱目標計算機,以確定已正確套用登錄設定。 確認 SMBv2 和 SMBv3 對環境中的所有其他系統都正常運作。
注意
測試原則之後,請重新啟動目標系統。
事件
4月29日 下午2時 - 4月30日 下午7時
加入最終的 Windows Server 虛擬活動 4 月 29-30 日,以取得深入探討的技術研討會,並與Microsoft工程師實時問答。
立即註冊訓練
模組
Explore advanced configuration methods - Training
This module describes how administrators can activate Windows clients at scale and use Group Policy and PowerShell to apply configuration settings to groups of Windows clients.
認證
Microsoft Certified: Information Protection and Compliance Administrator Associate - Certifications
示範資料安全性、生命週期管理、資訊安全性和合規性的基本知識,以保護 Microsoft 365 部署。
文件
預設不會在 Windows 10 版本 1709、Windows Server 版本 1709 和更新版本中安裝 SMBv1
討論 Windows 10 Fall Creators Update 和 Windows Server 版本 1709 和更新版本中 SMBv1 通訊協議的行為。
介紹進階伺服器訊息區 (SMB) 疑難排解方法。
針對SMB進行疑難解答的指引 - Windows Server
介紹與SMB相關的疑難解答案例的一般指引。