Server tauchen im Agent Health State auf, sind aber unter „Agent Managed“ nicht zu finden? So entfernen Sie Agenten gezielt per PowerShell, um sie anschließend neu aufzunehmen.
Ein typisches Problem in gewachsenen Operations-Manager-Umgebungen: Einige Server erscheinen in der Ansicht Agent Health State, lassen sich aber unter Administration › Agent Managed nicht finden – und damit auch nicht über die Konsole löschen oder neu installieren. Abhilfe schafft das Entfernen über die SCOM-SDK-Schnittstelle per PowerShell.
Die Lösung mit dem OperationsManager-Modul
Ab Operations Manager 2012 genügt das mitgelieferte PowerShell-Modul. Das folgende Skript löscht einen oder mehrere Agenten anhand ihres FQDN:
param(
[Parameter(Mandatory)] [string[]]$ComputerName,
[string]$ManagementServer = 'localhost'
)
Import-Module OperationsManager
New-SCOMManagementGroupConnection -ComputerName $ManagementServer
$admin = (Get-SCOMManagementGroup).GetAdministration()
$type = [Microsoft.EnterpriseManagement.Administration.AgentManagedComputer]
$delete = New-Object "System.Collections.ObjectModel.Collection[$($type.FullName)]"
foreach ($name in $ComputerName) {
$agent = Get-SCOMAgent -DNSHostName $name
if ($agent) {
Write-Host "Gefunden: $name"
$delete.Add($agent)
} else {
Write-Warning "Kein Agent mit dem Namen $name gefunden."
}
}
if ($delete.Count -gt 0) {
$admin.DeleteAgentManagedComputers($delete)
Write-Host "$($delete.Count) Agent(en) gelöscht."
}
Aufruf:
.\Remove-SCOMAgentByName.ps1 -ComputerName server01.contoso.local, server02.contoso.local
Die ursprüngliche Lösung aus der Community stammt aus der Zeit von SCOM 2007 und lud dafür noch die SDK-DLLs manuell aus dem Installationsverzeichnis. Das Prinzip – DeleteAgentManagedComputers() der Administrationsschnittstelle – ist identisch.
Und danach?
- Grooming abwarten: Gelöschte Agenten werden zunächst als gelöscht markiert und erst durch das nächtliche Grooming endgültig aus der Datenbank entfernt.
- Agent neu installieren – per Push-Installation aus der Konsole oder manuell mit anschließender Freigabe unter Pending Management.
- Prüfen, ob der Server jetzt korrekt unter Agent Managed erscheint.
Achtung
Löschen Sie Agenten nie direkt per SQL aus der OperationsManager-Datenbank. Das ist nicht unterstützt und hinterlässt inkonsistente Daten. Der Weg über die SDK-Schnittstelle bzw. PowerShell ist der einzige saubere.
Heute
Get-SCOMAgent und die Administrationsschnittstelle sind in Operations Manager 2019, 2022 und 2025 unverändert verfügbar. Das Skript funktioniert dort ohne Anpassungen.