Поделиться через


Удаление старых соединителей продуктов из Operations Manager

В этой статье описывается удаление старого соединителя продукта из System Center Operations Manager с помощью скрипта PowerShell.

Исходная версия продукта: System Center Operations Manager
Исходный номер базы знаний: 2626670

Сводка

Удаление старого соединителя продукта из System Center Operations Manager может потребоваться, если соединитель продукта больше не используется в среде. В пользовательском интерфейсе консоли администрирования для соединителей продуктов нет параметра Удалить , поэтому скрипт можно использовать для достижения желаемых результатов.

Скрипт PowerShell

Чтобы удалить соединитель продукта, используйте следующий сценарий PowerShell:

Примечание.

Внутренние соединители не следует удалять. Также перед выполнением этой операции обязательно создайте резервную копию операционной базы данных и базы данных хранилища данных. Кроме того, сохраните следующие скрипты как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

Дополнительная информация

Использование: DeleteConnector.ps1 para1 para2

para1: имя соединителя

para2: имя сервера управления, необязательно, значение по умолчанию: localhost

При попытке удалить внутренний соединитель Operations Manager из базы данных выдаст следующую ошибку:

Содержимое исключения:

Исключение, вызывающее "Setup" с аргументами "1": "Данные обнаружения, созданные недопустимым соединителем:7431E155-3D9E-4724-895E-C03BA951A352".