Operations Manager에서 이전 제품 커넥터를 제거하는 방법
이 문서에서는 PowerShell 스크립트를 사용하여 System Center Operations Manager에서 이전 제품 커넥터를 제거하는 방법을 설명합니다.
원래 제품 버전: System Center Operations Manager
원래 KB 번호: 2626670
요약
제품 커넥터가 환경에서 더 이상 사용되지 않는 경우 System Center Operations Manager에서 이전 제품 커넥터를 제거해야 할 수 있습니다. 제품 커넥터에 대한 관리 콘솔 UI에는 삭제 옵션이 없으므로 스크립트를 사용하여 원하는 결과를 얻을 수 있습니다.
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 내부 커넥터를 삭제하려고 하면 다음 오류가 생성됩니다.
예외 콘텐츠:
"1" 인수를 사용하여 "Setup"을 호출하는 예외: "잘못된 커넥터에 의해 생성된 검색 데이터:7431E155-3D9E-4724-895E-C03BA951A352."