Compartir a través de


Eliminación de conectores de productos antiguos de Operations Manager

En este artículo se describe cómo quitar un conector de producto antiguo de System Center Operations Manager mediante un script de PowerShell.

Versión original del producto: System Center Operations Manager
Número de KB original: 2626670

Resumen

Quitar un conector de producto antiguo de System Center Operations Manager puede ser necesario si el conector del producto ya no se usa en el entorno. No hay ninguna opción Eliminar en la interfaz de usuario de la consola de administración para conectores de productos, por lo que el script se puede usar para lograr los resultados deseados.

Script de PowerShell

Use el siguiente script de PowerShell para quitar el conector del producto:

Nota:

No se deben quitar conectores internos, además de asegurarse de realizar copias de seguridad tanto de la base de datos operativa como de la base de datos de almacenamiento de datos antes de ejecutarlo. Guarde también los siguientes scripts como DeleteConnector.ps1.

param(
    [String] $connectorName,
    [String] $mgName="localhost"
)

add-pssnapin Microsoft.EnterpriseManagement.OperationsManager.Client
$installDirPS = (get-itemproperty -path 'hklm:\SOFTWARE\Microsoft\Microsoft Operations Manager\3.0\Setup' -name InstallDirectory).InstallDirectory
set-location $installDirPS
Microsoft.EnterpriseManagement.OperationsManager.ClientShell.Startup.ps1

$mg = new-object Microsoft.EnterpriseManagement.ManagementGroup $mgName
$admin = $mg.GetConnectorFrameworkAdministration()

##########################################################################################
# Configures a connector with the specified name.
##########################################################################################
function New-Connector([String] $name)
{
    $connectorForTest = $null;
    foreach($connector in $admin.GetMonitoringConnectors())
    {
     if($connector.Name -eq ${name})
     {
      $connectorForTest = Get-Connector -id $connector.id
     }
    }

    if ($connectorForTest -eq $null)
    {
        $testConnector = New-Object Microsoft.EnterpriseManagement.ConnectorFramework.ConnectorInfo
        $testConnector.Name = $name
        $testConnector.Description = "${name} Description"
        $testConnector.DiscoveryDataIsManaged = $false
        $connectorForTest = $admin.Setup($testConnector)
        $connectorForTest.Initialize();
    }
    return $connectorForTest
}


##########################################################################################
# Removes a connector with the specified name.
##########################################################################################
function Remove-Connector([String] $name)
{
    $testConnector = $null
    foreach($connector in $admin.GetMonitoringConnectors())
    {
     if($connector.Name -eq ${name})
     {
      $testConnector = Get-Connector -id $connector.id
     }
    }
    if ($testConnector -ne $null)
    {
    if($testConnector.Initialized)
    {
    foreach($alert in $testConnector.GetMonitoringAlerts())
    {
     $alert.ConnectorId = $null;
     $alert.Update("Delete Connector");
    }
    $testConnector.Uninitialize()
    }
    $connectorIdForTest = $admin.Cleanup($testConnector)
    }
}

##########################################################################################
# Delete a connector's Subscription
##########################################################################################
function Delete-Subscription([String] $name)
{
 foreach($testconnector in $admin.GetMonitoringConnectors())
 {
   if($testconnector.Name -eq $name)
   {
     $connector = Get-Connector -id $testconnector.id
   }
 }
 $subs = $admin.GetConnectorSubscriptions()
 foreach($sub in $subs)
 {
  if($sub.MonitoringConnectorId -eq $connector.id)
  {
   $admin.DeleteConnectorSubscription($admin.GetConnectorSubscription($sub.Id))
  }
 }
}

#New-Connector $connectorName
write-host "Delete-Subscription"
Delete-Subscription $connectorName
write-host "Remove-Connector"
Remove-Connector $connectorName

Más información

Uso: DeleteConnector.ps1 para1 para2

para1: Nombre del conector

para2: Nombre del servidor de administración, Opcional, valor predeterminado: localhost

Si intenta eliminar el conector interno de Operations Manager de la base de datos, generará el siguiente error:

Contenido de la excepción:

Excepción que llama a "Setup" con argumentos "1": "Datos de detección generados por conector no válido:7431E155-3D9E-4724-895E-C03BA951A352".