在Windows 10中启用SNMP服务需依次完成:一、通过“设置→可选功能”或“控制面板→Windows功能”安装并启动SNMP Service与SNMP Trap Service;二、用PowerShell启用服务并配置团体名public及允许主机;三、在服务属性【安全】选项卡中添加只读团体名和可信IP;四、在防火墙中开放UDP 161端口;五、用snmpget命令验证本地及远程通信。

如果您在Windows 10系统中需要启用并精细配置SNMP服务以支持网络监控、设备管理或第三方工具(如MG-SOFT MIB Browser)对接,则必须完成服务启用、安全参数设定、访问控制及防火墙适配等关键环节。以下是具体操作步骤:
一、通过“设置”启用SNMP服务组件
该方法利用Windows 10/11内置的“可选功能”机制安装SNMP代理服务,无需额外下载,适用于标准版和专业版系统,是当前最主流的启用路径。
1、按下Win + I打开“设置”,进入【应用】→【可选功能】。
2、点击【添加功能】,在搜索框中输入SNMP。
3、从结果中勾选简单网络管理协议 (SNMP)(注意:勿与“SNMP 工具”混淆,后者为命令行客户端,非必需)。
4、点击【安装】,等待系统自动下载并部署组件,过程约需1–2分钟。
5、安装完成后,按Win + R输入services.msc,定位“SNMP Service”,右键选择【启动】。
二、通过“启用或关闭Windows功能”启用SNMP
此方式适用于部分精简版、LTSC版本或组策略锁定环境,调用传统Windows组件安装框架,兼容性更广且可触发完整服务注册表项写入。
1、打开【控制面板】→【程序】→【启用或关闭Windows功能】。
2、展开【管理工具】节点,勾选简单网络管理协议 (SNMP)。
3、点击【确定】,系统自动启用服务并注册SNMP Trap Service(若需接收陷阱消息,此项不可省略)。
4、运行services.msc,找到“SNMP Service”,右键【属性】→【启动类型】设为自动→点击【启动】。
5、同样对“SNMP Trap Service”执行相同设置,确保两项服务均处于“正在运行”状态。
三、使用PowerShell命令行一键启用并预设基础参数
该方法绕过图形界面,适合脚本化部署、远程批量配置或自动化运维场景,可同步完成服务启用、团体名注册与ACL初始化。
1、以管理员身份运行Windows PowerShell。
2、执行命令:Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0"(适用于缺失SNMP选项的系统镜像)。
3、执行启用服务命令:Set-Service -Name SNMP -StartupType Automatic; Start-Service SNMP。
4、配置只读团体名public:运行reg add "HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities" /v public /t REG_DWORD /d 4 /f。
5、添加允许主机白名单(示例IP为192.168.1.100):reg add "HKLM\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\PermittedManagers" /v 2 /t REG_SZ /d "192.168.1.100" /f。
四、配置SNMP安全参数与访问控制列表
仅启用服务无法响应SNMP请求;必须在服务属性中明确定义团体名权限及可信主机范围,否则所有查询将被静默丢弃。
1、在services.msc中右键“SNMP Service”→【属性】→切换至【安全】选项卡。
2、在【接受的团体名称】区域点击【添加】,输入public,权限设为只读。
3、在【接受来自下列主机的SNMP数据包】区域点击【添加】,填入监控服务器的IPv4地址(如192.168.1.100)。
4、取消勾选【接受来自任何主机的SNMP数据包】——该选项存在严重安全风险,禁止在生产环境启用。
5、切换至【代理】选项卡,填写联系人(如admin@local)与位置(如Server Room A),便于网管平台识别设备归属。
五、开放Windows防火墙端口并验证通信连通性
Windows防火墙默认拦截UDP 161端口,即使SNMP服务已启用且配置正确,外部请求仍会被拒绝,必须显式放行。
1、打开【Windows Defender 防火墙】→【高级设置】→【入站规则】→【新建规则】。
2、规则类型选择端口→协议选择UDP→特定本地端口填入161。
3、操作选择允许连接→配置文件全选(域、专用、公用)→命名为SNMP-In-UDP161。
4、完成创建后,在命令提示符(管理员)中执行:snmpget -v 2c -c public 127.0.0.1 system.sysDescr.0,若返回系统描述信息则表示本地通信成功。
5、从远程监控主机执行相同命令(替换127.0.0.1为本机IP),验证跨网络可达性。