Stand vor der Aufgabe festzustellen welche DPM Agents in mindestens einer Protection Group vorkommen und dann brauchte ich den Namen des Agents (und nicht der Data Source die sich ja teilweise arg unterscheiden je nach Backuptyp), meine Lösung als Einzeiler inklusive Connect/Disconnect:

$x=@(); $d=Connect-DPMServer $dpm; Get-DPMProtectionGroup|% { $x=$x+(get-DPMDataSource $_|% {$n=$_.GetType().Name; if ($n -match "FsDataSource|SystemProtectionDatasource|HyperVRctDatasource") { if ($_.VmName -eq $null) {$_.Computer } else {$_.VmName} } else { $_.Name}}) }; $d=Disconnect-DPMServer; $x|sort-object –Unique