Empirum Powershell SDK

Hi zusammen,

ich bin gerade dabei etwas mit der Empirum Powershell SDK herumzuspielen.
Ich wollte einfach mal versuchen einen Computer aus Empirum heraus zu löschen.

Dazu habe ich folgendes Script gebaut:

$Name = "Rechner123"
$Filter = "Name eq '" + $Name + "'"

$EmpirumComputer = Get-EmpirumComputer -Session $Session -Filter $Filter
Remove-EmpirumComputer -Session $Session -Computer $EmpirumComputer

Ich bekomme folgenden Fehler zurück:

Computer Rechner123 konnte nicht aus Empirum gelöscht werden: Der Parameter "Computer" kann nicht gebunden werden. Der We
rt "System.Linq.Enumerable+WhereEnumerableIterator`1[Matrix42.SDK.Contracts.Models.IEmpirumComputer]" vom Typ "System.Li
nq.EnumerableQuery`1[[Matrix42.SDK.Contracts.Models.IEmpirumComputer, Matrix42.SDK.Contracts, Version=1.3.15.22018, Cult
ure=neutral, PublicKeyToken=null]]" kann nicht in den Typ "Matrix42.SDK.Contracts.Models.IEmpirumComputer" konvertiert w
erden.

Die Hilfe zum CmdLet Remove-EmpirumComputer gibt zum Parameter -Computer folgendes an:

PARAMETER
    -Computer <IEmpirumComputer>
        Computer object which should be removed completely from the database.

        Erforderlich?                true
        Position?                    1
        Standardwert
        Pipelineeingaben akzeptieren?true (ByValue, ByPropertyName)
        Platzhalterzeichen akzeptieren?false

Der Typ des zurück gegebenen Computer Objekts ist ein:

$EmpirumComputer.GetType()

IsPublic IsSerial Name                                     BaseType                                                    
-------- -------- ----                                     --------                                                    
True     False    EnumerableQuery`1                        System.Linq.EnumerableQuery                                 

Der erwartete und der übergebene Typ stimmen nach meinem Verständnis nicht überein.

Wie kann ich das korrigieren?

Versuche es mal so:

foreach ($computer in $computersToDelete) 
{
    # Get the computer object from the Empirum database
    #$computerObject = Get-EmpirumComputer -Session $empApiSession -Filter "name eq '$computer'"
    $EmpComputerName = $computer.Name
    $computerObject = $empApiSession.Computers | Where Name -eq $EmpComputerName -ErrorAction SilentlyContinue

    # Delete the computer object
    if ($computerObject) 
    {
        Remove-EmpirumComputer -Session $empApisession -Computer $computerObject
        # add computer name to the log file
        #Write-Verbose ("Computer " + $computer.Name + " deleted successfully.")
        Add-Content -Path $logFilePath -Value ("Successfully deleted Computer " + $computer.Name + " from Empirum.")
    } else {
        Add-Content -Path $logFilePath -Value ("Could not find Computer " + $computer.Name + " in Empirum.")
    }
}

Vielen Dank, so klappt es.

Ich wundere mich jetzt nur warum es über Get-EmpirumComputer nicht geht. Naja.