Partager via


Comment supprimer les anciens connecteurs de produit d’Operations Manager

Cet article explique comment supprimer un ancien connecteur de produit de System Center Operations Manager à l’aide d’un script PowerShell.

Version du produit d’origine : System Center Operations Manager
Numéro de la base de connaissances d’origine : 2626670

Résumé

La suppression d’un ancien connecteur de produit de System Center Operations Manager peut être nécessaire si le connecteur de produit n’est plus utilisé dans l’environnement. Il n’existe aucune option Supprimer dans l’interface utilisateur de la console d’administration pour les connecteurs de produit afin que le script puisse être utilisé pour obtenir les résultats souhaités.

Script PowerShell

Utilisez le script PowerShell suivant pour supprimer le connecteur de produit :

Note

Les connecteurs internes ne doivent pas être supprimés, veillez également à sauvegarder la base de données opérationnelle et la base de données de l’entrepôt de données avant de l’exécuter. Enregistrez également les scripts suivants en tant que 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

Plus d’informations

Utilisation : DeleteConnector.ps1 para1 para2

para1 : Nom du connecteur

para2 : Nom du serveur d’administration, Facultatif, valeur par défaut : localhost

Si vous tentez de supprimer le connecteur interne Operations Manager de la base de données, il génère l’erreur suivante :

Contenu de l’exception :

Exception appelant « Setup » avec les arguments « 1 » : « Données de découverte générées par connecteur non valide :7431E155-3D9E-4724-895E-C03BA951A352 ».