【应急基础】————9、快速抑制永恒之蓝传播的方法

SMB协议管理
本文详细介绍如何在Windows系统中检测、启用及禁用SMBv1、SMBv2和SMBv3协议,涵盖不同版本的Windows操作系统,包括Windows7、Windows8、Windows10以及WindowsServer系列。

 

摘要

本文介绍如何在 SMB 客户端和服务器组件上启用和禁用服务器消息块 (SMB) 版本 1 (SMBv1)、SMB 版本 2 (SMBv2) 和 SMB 版本 3 (SMBv3)。 

警告:我们建议你不要禁用 SMBv2 或 SMBv3。 禁用 SMBv2 或 SMBv3 只能作为临时故障排除措施。 请勿使 SMBv2 或 SMBv3 保持禁用状态。

在 Windows 7 和 Windows Server 2008 R2 中,禁用 SMBv2 会停用以下功能:

  • 请求复合 - 允许发送多个 SMB 2 请求作为单个网络请求
  • 大型读写 - 更好地利用更快速的网络
  • 文件夹和文件属性缓存 - 客户端保留文件夹和文件的本地副本
  • 持久句柄 - 如果临时断开连接,则允许连接以透明方式重新连接到服务器
  • 改进的消息签名 - HMAC SHA-256 代替 MD5 作为哈希算法
  • 改进的文件共享扩展性 - 每个服务器的用户数量、共享数量和打开文件数量大大增加
  • 支持符号链接
  • 客户端 oplock 租赁模式 - 限制在客户端和服务器之间传输的数据,从而提高高延迟网络性能并增强 SMB 服务器的扩展性
  • 大型 MTU 支持 - 可充分利用 10 千兆字节 (GB) 以太网
  • 改进的能效 - 向服务器打开文件的客户端可以睡眠

在 Windows 8、Windows 8.1、Windows 10、Windows Server 2012 和 Windows Server 2016 中,禁用 SMBv3 会停用以下功能(以及以上列表中所述的 SMBv2 功能):

  • 透明故障转移 - 在维护或故障转移期间,客户端会重新连接,不会干扰群集节点
  • 扩展 – 并发访问所有文件群集节点上的共享数据 
  • 多通道 - 如果客户端和服务器之间有多个路径可用时,则聚合网络带宽和容错
  • SMB 直通 – 增加 RDMA 网络支持,实现极高的性能、低延迟和低 CPU 利用率
  • 加密 – 提供端到端加密,并防止不可靠网络上的窃听
  • 目录租赁 - 通过缓存改进分支机构中应用程序的响应时间
  • 性能优化 - 对小型随机读/写 I/O 的优化

更多信息

Windows Vista 和 Windows Server 2008 中引入了 SMBv2 协议。
Windows 8 和 Windows Server 2012 中引入了 SMBv3 协议。
有关 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 | Select 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 –Online –FeatureName SMB1Protocol
禁用:Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
启用:Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

SMB v2/v3 协议

检测:Get-SmbServerConfiguration | Select 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 | Select EnableSMB1Protocol
禁用:Set-SmbServerConfiguration -EnableSMB1Protocol $false
启用:Set-SmbServerConfiguration -EnableSMB1Protocol $true

有关更多信息,请参阅 Microsoft 的服务器存储

SMB 服务器上的 SMB v2/v3

检测:Get-SmbServerConfiguration | Select 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 = Disabled
使用组策略进行配置:

  1. 打开组策略管理控制台。 右键单击应包含新首选项的组策略对象 (GPO),然后单击“编辑”。
  2. 在“计算机配置”下的控制台树中,展开“首选项”文件夹,然后展开“Windows 设置”文件夹。
  3. 右键单击“注册表”节点,指向“新建”,然后选择“注册表项”。

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

  • 操作: 创建
  • Hive: 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 启动,然后还需要将 MRxSMB10 的依赖项从 LanmanWorkstation 项中删除,以便它可以正常启动(无需首先启动 MRxSMB10)。

这将更新和替换以下 2 个注册表项中的默认值:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10

注册表项: Start REG_DWORD: = Disabled

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation

注册表项: DependOnService REG_MULTI_SZ: “Bowser”,”MRxSmb20″,”NSI”

注意 默认包含的 MRxSMB10 现已作为依赖项删除

使用组策略进行配置:

  1. 打开组策略管理控制台。 右键单击应包含新首选项的组策略对象 (GPO),然后单击“编辑”。
  2. 在“计算机配置”下的控制台树中,展开“首选项”文件夹,然后展开“Windows 设置”文件夹。
  3. 右键单击“注册表”节点,指向“新建”,然后选择“注册表项”。

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

  • 操作: 更新
  • Hive: HKEY_LOCAL_MACHINE
  • 注册表项路径: SYSTEM\CurrentControlSet\services\mrxsmb10
  • 值名称: Start
  • 值类型: REG_DWORD
  • 值数据: 4

然后删除刚刚禁用的 MRxSMB10 的依赖项

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

  • 操作: 替换
  • Hive: HKEY_LOCAL_MACHINE
  • 注册表项路径: SYSTEM\CurrentControlSet\Services\LanmanWorkstation
  • 值名称: DependOnService
  • 值类型 REG_MULTI_SZ
  • 值数据
    • Bowser
    • MRxSmb20
    • NSI

注意 这三个字符串不带项目符号(参见以下屏幕截图)。

在 Windows 的多个版本中,默认值包括 MRxSMB10,通过将其替换为此多值字符串,实际上就删除了作为 LanmanServer 依赖项的 MRxSMB10,结果是从四个默认值减少为上述这三个值。

注意 使用组策略管理控制台时,不必使用引号或逗号。 只需在各行键入每个项。

需要重启

应用策略且正确设置注册表后,必须重启目标系统,然后才能禁用 SMB v1。

摘要

如果所有设置均在同一组策略对象 (GPO) 中,组策略管理将显示以下设置。

测试和验证

配置完成后,允许策略进行复制和更新。 作为测试的必要步骤,请在命令提示符处运行 gpupdate /force,然后查看目标计算机,以确保注册表设置得以正确应用。 确保 SMB v2 和 SMB v3 在环境中的所有其他系统中正常运行。

警告:请勿忘记重启目标系统。

参考:https://support.microsoft.com/zh-cn/help/2696547/how-to-detect-enable-and-disable-smbv1-smbv2-and-smbv3-in-windows-and

【EI复现】基于深度强化学习的微能源网能量管理优化策略研究(Python代码实现)内容概要:本文围绕“基于深度强化学习的微能源网能量管理优化策略”展开研究,重点利用深度Q网络(DQN)等深度强化学习算法对微能源网中的能量调度进行建模优化,旨在应对可再生能源出力波动、负荷变化及运行成本等问题。文中结合Python代码实现,构建了包含光伏、储能、负荷等元素的微能源网模型,通过强化学习智能体动态决策能量分配策略,实现经济性、稳定性和能效的多重优化目标,并可能其他优化算法进行对比分析以验证有效性。研究属于电力系统人工智能交叉领域,具有较强的工程应用背景和学术参考价值。; 适合人群:具备一定Python编程基础和机器学习基础知识,从事电力系统、能源互联网、智能优化等相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①学习如何将深度强化学习应用于微能源网的能量管理;②掌握DQN等算法在实际能源系统调度中的建模实现方法;③为相关课题研究或项目开发提供代码参考和技术思路。; 阅读建议:建议读者结合提供的Python代码进行实践操作,理解环境建模、状态空间、动作空间及奖励函数的设计逻辑,同时可扩展学习其他强化学习算法在能源系统中的应用。
皮肤烧伤识别作为医学智能技术交叉的前沿课题,近年来在深度学习方法推动下取得了显著进展。该技术体系借助卷积神经网络等先进模型,实现了对烧伤区域特征的高效提取分类判别,为临床诊疗决策提供了重要参考依据。本研究项目系统整合了算法设计、数据处理及模型部署等关键环节,形成了一套完整的可操作性方案。 在技术实现层面,首先需要构建具有代表性的烧伤图像数据库,涵盖不同损伤程度及愈合阶段的临床样本。通过对原始图像进行标准化校正、对比度增强等预处理操作,有效提升后续特征学习的稳定性。网络架构设计需充分考虑皮肤病变的区域特性,通过多层卷积池化操作的组合,逐步抽象出具有判别力的烧伤特征表示。 模型优化过程中采用自适应学习率调整策略,结合交叉熵损失函数梯度下降算法,确保参数收敛的稳定性。为防止过拟合现象,引入数据扩增技术正则化约束,增强模型的泛化能力。性能验证阶段采用精确率、召回率等多维度指标,在独立测试集上全面评估模型对不同烧伤类型的识别效能。 经过充分验证的识别系统可集成至医疗诊断平台,通过规范化接口实现现有医疗设备的无缝对接。实际部署前需进行多中心临床验证,确保系统在不同操作环境下的稳定表现。该技术方案的实施将显著缩短烧伤评估时间,为临床医师提供客观量化的辅助诊断依据,进而优化治疗方案制定流程。 本项目的突出特点在于将理论研究工程实践有机结合,既包含前沿的深度学习算法探索,又提供了完整的产业化实施路径。通过模块化的设计思路,使得医疗专业人员能够快速掌握核心技术方法,推动智能诊断技术在烧伤外科领域的实际应用。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
<think>Hmm, the user is asking about niri configuration methods after I provided some references in the previous interaction. Let me analyze this carefully. First, I recall the user mentioned three references about niri configuration: [1] external monitor setup, [2] configuration migration for v0.25.08, and [3] window gap settings. But the core question seems to be a general request for configuration methods. The user appears to be a Linux user familiar with tiling window managers, probably setting up niri for the first time. They might need both basic guidance and advanced customization options. Since they referenced specific documentation, I should maintain that technical level while making it accessible. Looking at the requirements: I must use proper LaTeX formatting for any mathematical expressions, though this topic likely won't need much. More importantly, I need to structure the response clearly in Chinese with reference markers. I'll start with the configuration file basics since that's fundamental. The ~/.config/niri/config.kdl file is central, as referenced in [^1]. Then I should cover key sections: outputs for displays (expanding on [^1]), input devices, workspace gaps ([^3] mentions this), and layout rules. For the migration note in [^2], I should mention version compatibility but keep it brief since the user didn't ask specifically about upgrading. The community resources from [^3] (GitHub, examples, Discussions) would make good troubleshooting/reference suggestions. The response should balance technical specifics with usability - perhaps grouping settings by functionality rather than dumping syntax. Since the user might experiment, I'll include a note about config reloading. For generated questions, I'll focus on common customization pain points like multi-monitor setups and per-workspace rules. Noticing the user didn't ask anything specific about window gaps or animations despite references [3] and [2], so I shouldn't overemphasize those. Stick to core configuration first unless they follow up. </think>以下是niri配置的核心方法及步骤,综合引用信息整理而成: ### 一、基础配置结构 配置文件位于 `~/.config/niri/config.kdl`,采用KDL语法: ```kdl // 全局设置 niri { // 通用参数 } // 外接显示器配置(需包裹在output块) output "DP-1" { // 显示器标识符通过命令获取 mode "2560x1440@165Hz" // 分辨率刷新率 position 1920, 0 // 多显示器位置 transform 90 // 屏幕旋转(0/90/180/270)[^1] } // 窗口间隙设置 gaps { inner 10 // 窗口间间隙 outer 5 // 屏幕边缘间隙 } ``` ### 二、关键配置模块 1. **显示器设置** - 获取标识符:执行 `niri msg outputs` 查看显示器ID - 分辨率语法:`mode "宽度x高度@刷新率"`(如 `"3440x1440@100Hz"`) - 多屏排列:`position X坐标,Y坐标` 精确定位[^1] 2. **窗口布局** ```kdl layout { // 平铺布局设置 tiling { gaps 16 // 全局间隙 } // 未来版本支持工作区特定设置(引用[3]预告) // workspace "work" { gaps 8; } } ``` 3. **输入设备配置** ```kdl input "type:keyboard" { repeat-delay 300 repeat-rate 30 } input "type:pointer" { accel 0.5 } ``` ### 三、进阶配置技巧 1. **版本迁移指南**(v0.25.08+) - 删除旧版动画配置项 - 改用新版滚动平腾参数[^2]: ```kdl animations { open-window "slide-up" { duration 300ms } } ``` 2. **多工作区配置** ```kdl workspace "1:web" { // 工作区特定规则 } ``` ### 四、配置生效调试 1. **重载配置**:`niri msg reload-config` 2. **实时调试**:`niri -c ./test-config.kdl` 测试新配置 3. **错误检查**:`niri --validate-config` 验证语法 > 配置资源:[官方示例库](https://gitcode.com/GitHub_Trending/ni/niri) | [社区讨论区](https://github.com/YaLTeR/niri/discussions) [^3]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值