运行“禁用端口监视”任务时,不会禁用端口监视

本文提供了一种解决方法,说明运行 “禁用端口监视”任务时,网络端口设备的端口监视 未禁用的问题。

原始产品版本: Microsoft System Center 2012 Operations Manager、System Center 2012 R2 Operations Manager
原始 KB 数: 2960230

现象

运行 “禁用端口监视 ”任务以禁用对网络端口设备的监视时,不会按预期禁用该设备的端口监视。

原因

如果端口是托管计算机网络适配器组的成员,则会出现此问题。

例如,此问题在以下情况下发生:

  • 启用和禁用端口监视的任务会将端口添加到关键网络适配器组。
  • 此前,端口已添加到托管计算机网络适配器组,因为附加到端口的计算机正在受到监视(称为端口缝合的进程)。
  • 用于确定是否监视端口的逻辑检查端口是否位于正在主动监视的所有网络接口组的任何组。 其中包括以下组:
    • 高级网络适配器组
    • 关键网络适配器组(启用/禁用任务将端口添加到该组)
    • 托管计算机网络适配器组(通过端口缝合向其添加端口)
    • 中继网络适配器组

因此,端口仍在主动监视中,因为它是托管计算机网络适配器组的成员。

解决方法

若要禁用对特定端口的监视,无论该端口的组成员身份如何,请按照以下步骤操作:

  1. 选择要禁用的端口,然后打开运行状况资源管理器。
  2. 在运行状况资源管理器中,选择名为 “实体运行状况” - port_name (对象)的顶级项。
  3. 在“运行状况资源管理器”窗口的工具栏中,选择“替代”菜单上的“禁用此监视器”,然后选择“对于对象:port_name”。
  4. 在“替代属性”对话框中,确保“已启用的属性替代”设置为 False。 选择管理包以保存此替代(或创建新包),然后单击“ 确定”。

若要使用 PowerShell 自动禁用监视,请在 System Center Operations Manager 管理单元中运行以下脚本:

$port = Get-SCOMMonitoringObject -DisplayName "SOME_DEVICE"
$monitorsToOverride = Get-SCOMMonitor -Recurse -Instance $port
$mp = Get-SCOMManagementPack -DisplayName "PORT_OVERRIDES_MP"
$monitorsToOverride | ForEach-Object {Disable-SCOMMonitor -Monitor $_ -Instance $port -ManagementPack $mp}

注意

Get-SCOMMonitoringObject 命令可能会返回许多对象,具体取决于提供的显示名称。 因此,请确保 $port 只包含一个对象。 然后,自定义 Get-SCOMManagementPack 调用以检索管理包替代。 建议使用新的管理包,因为如果发生意外情况,可以轻松删除管理包。

详细信息

了解使用 System Center Operations Manager 2012 网络监视监视功能中的“What Gets Monitored”部分。