设置 WMI SNMP 环境

使用 WMI SNMP 接口与网络设备通信需要配置设备、SNMP 和 WMI 服务。 本主题中的信息介绍如何设置 WMI SNMP 环境。

本主题包括以下部分:

安装 SNMP 提供程序

默认情况下,不启用 SNMP 服务。 可以通过控制面板启用 SNMP 服务和 WMI SNMP 提供程序。 请注意,必须启用并运行 SNMP 服务,WMI SNMP 提供程序才能正常工作。

从 Windows Vista 开始,使用以下过程安装 SNMP 提供程序。

安装 SNMP 提供程序

  1. 控制面板中,选择程序
  2. 程序和功能下,选择打开或关闭 Windows 功能
  3. 在 Windows 功能列表中,向下滚动到 SNMP 功能,并展开列表,以便可以看到 WMI SNMP 提供程序
  4. 选中 WMI SNMP 提供程序的复选框。 由于提供程序需要 SNMP,因此自动选中了 SNMP 功能的复选框。
  5. 单击“确定”。
  6. 在命令提示符或开始菜单中,运行 Services.msc,并确保 SNMP 服务已启动。

创建 SNMP 命名空间

SNMP 命名空间定义网络设备的视图。

注意

有关在特定操作系统上支持和安装此组件的详细信息,请参阅 WMI 组件的操作系统可用性

 

以下过程介绍如何创建 SNMP WMI 命名空间

创建 SNMP 命名空间

  1. 通过编译托管对象格式 .mof 文件或使用适用于 WMI 的 COM API 创建 __Namespace 系统类的实例。

    有关详细信息,请参阅 在 WMI 中创建层次结构

  2. 将 SNMP 提供程序限定符与命名空间定义相关联。

    SNMP 提供程序限定符包含特定于实现的上下文信息和传输属性,这些属性定义 SNMP 提供程序访问 SNMP 设备的方式。 有关详细信息,请参阅特定于 SNMP 提供程序的限定符

  3. 使用 mofcomp 命令行工具将 MOF 代码加载到 WMI 存储库中。

    有关详细信息,请参阅编译 MOF 文件

以下 MOF 代码示例使用可与 SNMP 命名空间关联的限定符的子集定义 \snmp 命名空间。

// Load classes and instances into <\\.\root> namespace

#pragma namespace("\\\\.\\root")               

[ 
  AgentAddress( "localhost" ), 
  AgentReadCommunityName( "public"), 
  AgentWriteCommunityName( "private"), 
  AgentRetryCount( 1 ), 
  AgentRetryTimeout( 500 ), 
  AgentVarBindsPerPdu( 10 ),
  AgentFlowControlWindowSize ( 3 ) 
]

  instance of __Namespace
  {
      Name = "snmp" ;
  };

将 SNMP MIB 数据插入 WMI

作为提供程序,SNMP 提供程序充当 SNMP 数据和 WMI 类之间的桥梁。 因此,WMI 中必须有表示启用 SNMP 的设备的不同方面的类。 为此,必须使用 SNMP 信息模块编译器 (smi2smir) 将 SNMP 管理信息从 SNMP 格式编译为等效的 CIM 架构定义。 然后,可以将信息编译器的输出定向到名为“SNMP 模块信息存储库 (SMIR)”的 SNMP 架构数据库或多种不同类型的 MOF 文件。

编译器在命令行模式下运行,使用一个 MIB 文件作为输入。 以下命令将指定的 MIB 文件加载到 SMIR 中。

smi2smir /a <MIB file>

设置 SNMP 社区

作为安全措施,默认情况下不会创建 SNMP“公共”社区。 可以按照社区注册表设置中所述创建社区。 如果你没有任何社区,请创建“公共”社区以访问 SNMP 提供程序。

从 MIB 文件生成 MOF 文件

以下命令是有关如何从安装 SNMP 提供程序时安装的 MIB 文件生成 MOF 文件的示例。

cd %windir%\system32\wbem\SNMP

Smi2smir /g ..\..\hostmib.mib > hostmib.mof

Smi2smir /g ..\..\ipforwd.mib > ipforwd.mof

Smi2smir /g ..\..\nipx.mib > nipx.mof

Smi2smir /g ..\..\mib_ii.mib > mib_ii.mof

Smi2smir /g ..\..\lmmib2.mib > lmmib2.mof

Smi2smir /g ..\..\mcastmib.mib > mcastmib.mof

Smi2smir /g ..\..\rfc2571.mib > rfc2571.mof

Smi2smir /g ..\..\wfospf.mib > wfospf.mof

Smi2smir /g ..\..\dhcp.mib..\..\msft.mib > dhcp.mof

Smi2smir /g ..\..\wins.mib..\..\msft.mib > wins.mof

Smi2smir /g ..\..\mipx.mib..\..\msft.mib > mipx.mof

Smi2smir /g ..\..\mripsap.mib..\..\msft.mib > mripsap.mof

Smi2smir /g ..\..\msipbtp.mib..\..\msft.mib > msipbtp.mof

Smi2smir /g ..\..\msiprip2.mib..\..\msft.mib > msiprip2.mof

将 SNMP MOF 文件添加到 WMI 存储库

以下命令是如何将从 MIB 文件生成的 MOF 文件添加到 WMI 存储库的示例。 如果要将 MOF 文件添加到 WMI 存储库恢复中要自动还原的文件列表中,请在每个命令的末尾添加 -AUTORECOVER 标志。 有关 WMI Mofcomp.exe 命令行工具的详细信息,请参阅 mofcomp

mofcomp hostmib.mof

mofcomp ipforwd.mof

mofcomp nipx.mof

mofcomp mib_ii.mof

mofcomp lmmib2.mof

mofcomp mcastmib.mof

mofcomp rfc2571.mof

mofcomp wfospf.mof

mofcomp dhcp.mof

mofcomp mipx.mof

mofcomp mripsap.mof

mofcomp msipbtp.mof

mofcomp msiprip2.mof

访问 SNMP 设备