当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何在 Windows 10/Server 2016 中禁用/启用 SMB v 1.0?

作者:精品下载站 日期:2024-12-14 20:19:59 浏览:16 分类:玩电脑

如何在 Windows 10/Server 2016 中禁用/启用 SMB v 1.0?


在 Windows Server 2016/2019 和 Windows 10(从内部版本 1709 开始)中,默认情况下禁用用于访问共享文件夹的服务器消息块 1.0 (SMBv1) 网络协议。在大多数情况下,需要此协议来访问旧系统上托管的共享文件夹,例如不再受支持的 Windows XP、Windows Server 2003 和较旧的操作系统。在本文中,我们将了解如何在 Windows 10 和 Windows Server 2016/2019 上启用或禁用 SMBv1 客户端和服务器支持。

如果网络上没有 SMB 1.x 客户端,则必须在所有 Windows 设备上完全禁用 SMBv1。通过禁用 SMB 1.0,您可以保护 Windows 计算机免受此旧协议中的各种漏洞的影响(SMBv1 最著名的公开漏洞是 EternalBlue)。因此,您的设备在访问网络共享时将使用新的、更高效、更安全且功能齐全的 SMB 协议版本。

在之前的一篇文章中,我们展示了客户端和服务器端 SMB 版本兼容性表。根据该表,旧客户端版本(XP、Server 2003 和某些 *nix 客户端)只能使用 SMB v1.0 协议访问网络共享文件夹。如果网络中没有此类客户端,可以在文件服务器(包括AD域控制器)和客户端桌面侧完全禁用SMB 1.0。

在 Windows 10 和 Windows Server 2016 中,SMBv1 协议分为两个独立的组件 - SMB 客户端SMB 服务器,可以独立启用/禁用。

通过 SMB v1.0 审核共享文件夹访问

在禁用或完全删除 SMB 文件服务器一侧的 SMB 1.0 驱动程序之前,值得确保网络中没有旧客户端使用该驱动程序。为此,请使用以下 PowerShell 命令启用对通过 SMB v1.0 的文件服务器访问的审核:

Set-SmbServerConfiguration -AuditSmb1Access $true

几天后,打开服务器上的事件查看器,检查日志应用程序和服务 -> Microsoft -> Windows -> SMBServer -> Audit 并查看是否有任何客户端通过 SMB1 访问文件服务器。

提示。您可以使用以下 PowerShell 命令显示此事件日志中的事件列表:

Get-WinEvent -LogName Microsoft-Windows-SMBServer/Audit

在我们的示例中,在日志中发现来自 SMBServer 源的 EventID 3000 的事件。该事件表明客户端 192.168.1.10 正在尝试使用 SMB1 协议访问服务器。

SMB1 access
Client Address: 192.168.1.10
Guidance:
This event indicates that a client attempted to access the server using SMB1. To stop auditing SMB1 access, use the Windows PowerShell cmdlet Set-SmbServerConfiguration.

[玩转系统] 如何在 Windows 10/Server 2016 中禁用/启用 SMB v 1.0?

您需要在网络上找到此计算机或设备,并将操作系统或固件更新到支持较新 SMB 协议版本的版本:SMBv2 或 SMBv3。

在我们的例子中,我们将忽略此信息,但您应该记住,稍后此客户端将无法访问此 SMB 服务器上的共享文件夹。

在 Windows Server 2016/2019 上启用/禁用 SMB 1.0

在从内部版本 1709 开始的 Windows Server 2016 和 Windows Server 2019 中,默认情况下禁用 SMBv1。要在较新版本的 Windows Server 中启用对 SMBv1 客户端协议的支持,您需要安装单独的 SMB 1.0/CIFS 文件共享支持功能。

您可以使用服务器管理器或通过 PowerShell 安装 SMBv1 功能。

[玩转系统] 如何在 Windows 10/Server 2016 中禁用/启用 SMB v 1.0?

您可以使用 PowerShell 命令检查 SMBv1 是否已启用:

Get-WindowsFeature | Where-Object {$_.name -eq "FS-SMB1"} | ft Name,Installstate

要安装FS-SMB1功能,请运行:

Install-WindowsFeature FS-SMB1

要卸载 SMBv1 客户端功能(需要重新启动),请运行以下命令:

Uninstall-WindowsFeature -Name FS-SMB1 -Remove

另一个 PowerShell 命令也删除了 SMB1Protocol 功能:

Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -Remove

为了使您的服务器能够处理 SMBv1.0 客户端访问,除了 FS-SMB1 组件之外,您还需要在 SMB 文件服务器级别启用 SMBv1 支持。要检查服务器上的网络共享是否启用了 SMBv1 访问,请运行:

Get-SmbServerConfiguration

[玩转系统] 如何在 Windows 10/Server 2016 中禁用/启用 SMB v 1.0?

该行“

EnableSMB1Protocol: True

” 表示您可以使用 SMBv1 协议访问此服务器上的共享文件夹。要在 Windows Server 中禁用 SMBv1 服务器支持,请运行 PowerShell 命令:

Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force

现在使用

Get-SmbServerConfiguration

cmdlet 以确保禁用 SMB1 服务器。

[玩转系统] 如何在 Windows 10/Server 2016 中禁用/启用 SMB v 1.0?

要在服务器上启用 SMBv1 支持,请运行以下命令:

Set-SmbServerConfiguration -EnableSMB1Protocol $True -Force

在 Windows 7/8 和 Windows Server 2008 R2/2012 上,为了禁用 SMB 1.0 客户端,您需要使用以下命令禁用该服务和 SMBv1 访问驱动程序:

sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled

[玩转系统] 如何在 Windows 10/Server 2016 中禁用/启用 SMB v 1.0?

如何在 Windows 10 上启用/禁用 SMBv1?

正如我们已经说过的,在所有新版本的 Windows10(从 1709 开始)中,对 SMB1 协议的支持均被禁用(通过 SMBv2 协议的来宾访问也被禁用)。

在 Windows 10 中,您可以使用 DISM 命令检查 SMBv1 协议组件的状态:

Dism /online /Get-Features /format:table | find "SMB1Protocol"

[玩转系统] 如何在 Windows 10/Server 2016 中禁用/启用 SMB v 1.0?

在我们的示例中,您可以看到所有 SMBv1 功能均被禁用:

SMB1Protocol                                | Disabled
SMB1Protocol-Client                         | Disabled
SMB1Protocol-Server                         | Disabled
SMB1Protocol-Deprecation                    | Disabled

在 Windows 10 中,您还可以从控制面板 (

optionalfeatures.exe

)。展开SMB 1.0 /CIFS 文件共享支持选项。如您所见,此处还提供了 3 个 SMBv1 组件:

  • SMB 1.0/CIFS 自动删除

  • SMB 1.0/CIFS 客户端

  • SMB 1.0/CIFS 服务器

[玩转系统] 如何在 Windows 10/Server 2016 中禁用/启用 SMB v 1.0?

您可以从功能管理窗口或使用以下命令在 Windows 10 上启用 SMBv1 客户端和服务器:

Dism /online /Enable-Feature /FeatureName:"SMB1Protocol"
Dism /online /Enable-Feature /FeatureName:"SMB1Protocol-Client"
Dism /online /Enable-Feature /FeatureName:"SMB1Protocol-Server"

您还可以使用 PowerShell 在 Windows 10 中启用 SMBv1 服务器和客户端:

Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Server
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client

如果启用SMBv1客户端后,超过15天没有使用,则会自动禁用。

自动删除 SMBv1 客户端是一次性操作。如果管理员再次手动启用 SMBv1,则不会自动禁用。

要在 Windows 10 中禁用 SMB1 客户端和服务器支持,请运行以下 DISM 命令:

Dism /online /Disable-Feature /FeatureName:"SMB1Protocol"
Dism /online /Disable-Feature /FeatureName:"SMB1Protocol-Client"
Dism /online /Disable-Feature /FeatureName:"SMB1Protocol-Server"

如果您在 Windows 10 中禁用了 SMBv1 客户端,则当您访问仅支持 SMBv1(禁用或不支持 SMBv2 和 v3 协议)的文件服务器上的 snared 文件夹时,您可能会收到以下错误:

  • 0x80070035 The network path was not found;
  • Unable to connect to file shares because it is not secure. This share requires the obsolete SMB1 protocol, which is not secure and could expose your system to attacks;
  • You can’t connect to the file share because it’s not secure. This share requires the obsolete SMB1 protocol, which is unsafe and could expose your system to attack. Your system requires SMB2 or higher.

    [玩转系统] 如何在 Windows 10/Server 2016 中禁用/启用 SMB v 1.0?

    请阅读文章无法访问 Windows 10 上的共享文件夹来了解更多信息。

此外,如果禁用 SMBv1 客户端,旧 NetBIOS 协议使用该服务来发现网络上的设备的计算机浏览器服务将停止在计算机上运行。要正确显示 Windows 10 网络上的相邻计算机,您必须配置 Feature Discovery Provider Host 服务(查看本文)。

通过组策略禁用 SMBv1 客户端和服务器

在 Active Directory 域环境中,您可以使用组策略 (GPO) 在所有服务器和计算机上禁用 SMBv1。由于标准 Windows 组策略中没有单独的 SMB 配置策略,因此您必须通过注册表策略禁用它。

  1. 打开组策略管理控制台(

    gpmc.msc

    ),创建一个新的 GPO (disableSMBv1) 并将其链接到包含要禁用 SMB1 的计算机的 OU;

  2. 切换到策略编辑模式。展开 GPO 部分计算机配置 -> 首选项 -> Windows 设置 -> 注册表

  3. 使用以下设置创建一个新的注册表项:
    操作:

    Update

    蜂巢:

    HKEY_LOCAL_MACHINE

    关键路径:

    SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

    值名称:

    SMB1

    值类型:

    REG_DWORD

    数值数据:

    0

    [玩转系统] 如何在 Windows 10/Server 2016 中禁用/启用 SMB v 1.0?

    此策略将通过所有计算机上的注册表禁用对 SMBv1 服务器组件的支持。

    您可以使用 WMI 筛选器从该策略中排除某些版本的 Windows。

如果要通过 GPO 禁用域计算机上的 SMB 客户端,请创建两个附加注册表参数:

  • 注册表项 HKLM\SYSTEM\CurrentControlSet\services\mrxsmb10 中值为 4Start 参数(REG_DWORD 类型);

  • 注册表项 HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation 中的 DependOnService 参数(REG_MULTI_SZ 类型),其值为 BowserMRxSmb20NSI(每个值都在新行上)。

[玩转系统] 如何在 Windows 10/Server 2016 中禁用/启用 SMB v 1.0?

仍然需要更新客户端上的组策略设置(

gpupdate /force

)重新启动后,请确保 SMBv1 组件已完全禁用。

Microsoft 安全合规工具包中的安全基线 GPO 有一个单独的管理模板MS 安全指南

SecGuide.adml

SecGuide.admx

文件)具有用于禁用 SMB 服务器和客户端的单独选项:

  • 配置SMB v1服务器;

  • 配置 SMB v1 客户端驱动程序。

[玩转系统] 如何在 Windows 10/Server 2016 中禁用/启用 SMB v 1.0?

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯