Windows 管理SMB服务

https://github.com/MicrosoftDocs/windowsserverdocs/blob/main/WindowsServerDocs/storage/file-server/Troubleshoot/detect-enable-and-disable-smbv1-v2-v3.md

Server端

通过 PowerShell 关闭 SMBv1

需要重启生效

检查:

Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

关闭:

Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

开启:

Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

windows server 2012以上版本

Windows 8 和 Windows Server 2012 引入了新的Set-SMBServerConfiguration命令。该命令使您能够在线启用或禁用 SMBv1、SMBv2 和 SMBv3 协议。

smb1

检查:

Get-SmbServerConfiguration | Select EnableSMB1Protocol

关闭:

Set-SmbServerConfiguration -EnableSMB1Protocol $false

开启:

Set-SmbServerConfiguration -EnableSMB1Protocol $true

smb2&3

检查:

Get-SmbServerConfiguration | Select EnableSMB2Protocol

关闭:

Set-SmbServerConfiguration -EnableSMB2Protocol $false

开启:

Set-SmbServerConfiguration -EnableSMB2Protocol $true

Windows Server 2008

需要重启生效

smb1

检查:

Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}

默认配置 = 已启用(No registry named value is created),因此不会返回任何 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

smb2&3

检查:

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

Registry entry: SMB1
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled (No registry key is created)

要在 SMB 服务器上启用或禁用 SMBv2,请配置以下注册表项:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

Registry entry: SMB2
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled (No registry key is created)

客户端

需要重启生效

windows server 2012以上版本

smb1

检查:

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

smb2&3

检查:

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

组策略

组策略刷新:

gpupdate /force

重启电脑生效

Server端

在注册表中配置以下新项目:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

Registry entry: SMB1
REG_DWORD: 0 = Disabled

要使用组策略对此进行配置,请按照下列步骤操作:

打开组策略管理控制台。右键单击应包含新首选项的组策略对象 (GPO),然后单击编辑。

在Computer Configuration下的控制台树中,展开Preferences文件夹,然后展开Windows Settings文件夹。

右键单击Registry节点,指向New,然后选择Registry Item。

在“新建注册表属性”对话框中,选择以下内容:

Action: Create
Hive: HKEY_LOCAL_MACHINE
Key Path: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Value name: SMB1
Value type: REG_DWORD
Value data: 0

客户端

要禁用SMBv1客户端,需要更新services注册表项,禁用MRxSMB10的启动,然后需要在LanmanWorkstation的入口中去掉对MRxSMB10的依赖,这样就可以正常启动,不需要先启动MRxSMB10 。

本指南更新并替换了注册表中以下两项中的默认值:

KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10

Registry entry: Start REG_DWORD: 4= Disabled

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation

Registry entry: DependOnService REG_MULTI_SZ: "Bowser","MRxSmb20″,"NSI"

要使用组策略进行配置,请执行以下步骤:

打开组策略管理控制台。右键单击应包含新首选项的 GPO,然后单击“编辑”。

在Computer Configuration下的控制台树中,展开Preferences文件夹,然后展开Windows Settings文件夹。

右键单击Registry节点,指向New,然后选择Registry Item。

在“新建注册表属性”对话框中,选择以下内容:

Action: Update
Hive: HKEY_LOCAL_MACHINE
Key Path: SYSTEM\CurrentControlSet\services\mrxsmb10
Value name: Start
Value type: REG_DWORD
Value data: 4

然后删除对禁用的MRxSMB10的依赖。

在“新建注册表属性”对话框中,选择以下内容:

Action: Replace
Hive: HKEY_LOCAL_MACHINE
Key Path: SYSTEM\CurrentControlSet\Services\LanmanWorkstation
Value name: DependOnService
Value type: REG_MULTI_SZ
Value data:
Bowser
MRxSmb20
NSI

审计

要确定哪些客户端正在尝试使用 SMBv1 连接到 SMB 服务器,您可以在 Windows Server 2016、Windows 10 和 Windows Server 2019 上启用审核。如果 2018 年 5 月的每月更新,您还可以在 Windows 7 和 Windows Server 2008 R2 上进行审核如果安装了 2017 年 7 月月度更新,则在 Windows 8.1 和 Windows Server 2012 R2 上安装。

检查:

Get-SmbServerConfiguration | Select AuditSmb1Access

开启:

Set-SmbServerConfiguration -AuditSmb1Access $true

关闭:

Set-SmbServerConfiguration -AuditSmb1Access $false