Helper/Set-TypesNamesToPRTGObject.ps1

function Set-TypesNamesToPRTGObject ($PRTGObject) {
    <#
    .Synopsis
       Set-TypesNamesToPRTGObject
 
    .DESCRIPTION
       Add module specific type names to result objects of a function.
 
    .NOTES
       Author: Andreas Bellstedt
 
    .EXAMPLE
       Set-TypesNamesToPRTGObject $PRTGObject
 
    #>

    foreach($item in $PRTGObject) {
        if($item.pstypenames[0] -eq "PRTG.Object.Compare") { $null = $item.pstypenames.Remove("PRTG.Object.Compare") }
        switch ($item.LocalName) {
            'probenode' { if($item.pstypenames -notcontains "PRTG.Object.Probenode") { $item.pstypenames.Insert(0,"PRTG.Object.Probenode") } }
            'group'     { if($item.pstypenames -notcontains "PRTG.Object.Group")     { $item.pstypenames.Insert(0,"PRTG.Object.Group")     } }
            'device'    { if($item.pstypenames -notcontains "PRTG.Object.Device")    { $item.pstypenames.Insert(0,"PRTG.Object.Device")    } }            
            'sensor'    { if($item.pstypenames -notcontains "PRTG.Object.Sensor")    { $item.pstypenames.Insert(0,"PRTG.Object.Sensor")    } }            
        }
        if($item.pstypenames -notcontains "PRTG.Object") { $item.pstypenames.Insert(1,"PRTG.Object") }
        if($item.pstypenames -notcontains "PRTG")        { $item.pstypenames.Insert(2,"PRTG")        }
        Write-Output $item
    }
}