none
Löschen von ActiveSyncDevices via Powershell Error Message RRS feed

  • Frage

  • Hallo zusammen,


    ich versuche derzeit in meinem Unternehmen ein regelmäßiges Skript laufen zu lassen das Deaktivierte Benutzer sucht und löscht, soweit kein Problem.

    Wenn ich aber Nutzer löschen möchte, die ein ActiveSyncDevice hinterlegt haben kann ich mit Remove-ADUser den Nutzer nicht löschen.

    Exchange 2010 sp3 ( Nutzer besitzen meistens keine Mailbox mehr daher werden die Devices via OU ausgelesen )

    Mein Workaround ist die ActiveSyncDevices Verknüpfung zu löschen bevor ich den Nutzer lösche, hier stoße ich aber auf folgenden Fehler:

    Code:

    $activesearch= Get-ActiveSyncDevice -OrganizationalUnit $Searchbase | Select-Object Identity
    
        foreach ($activeremove in $activesearch){
        $activeremove = $activeremove.Identity
        $devicename = $activeremove.name
        if(Remove-ActiveSyncDevice -Identity $activeremove -WhatIf ){
        Write-Host "xyz"
        Write_log "Das Gerät $devicename wurde erfolgreich von dem Account abgekoppelt"
    
        }
        else{Write-Host "xyz" -ForegroundColor Red
        write_log "Das Gerät $devicename wurde nicht vom Account abgekoppelt"}  
    } 



    Errormessage:

    WARNUNG: Unerwarteter Fehler. Ein Watson-Abbild wird generiert: Der Vorgang ist aufgrund des aktuellen Zustands des Objekts ungültig..
    Remove-ActiveSyncDevice : Der Vorgang ist aufgrund des aktuellen Zustands des Objekts ungültig.
    In Zeile:1 Zeichen:1
    + Remove-ActiveSyncDevice -Identity "xyz"
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [Remove-ActiveSyncDevice], InvalidOperationException
        + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.Exchange.Management.Tasks.RemoveMobileDev
    


    Kann mir hier jemand weiterhelfen?

    Vielen Dank im Vorraus!


    Freitag, 15. Februar 2019 12:06

Antworten

  • habe noch etwas gefunden.

    man kann die ThrottlingPolicy setzen. Dann werden zb. Geräte die älter als 30 Tage inaktiv sind gelöscht.

    Get-ThrottlingPolicy | Set-ThrottlingPolicy EasMaxInactivityForDeviceCleanup 30

    https://4sysops.com/archives/error-with-your-new-mobile-phone-partnership-how-to-manage-exchange-device-limits/


    Chris

    Mittwoch, 6. März 2019 06:29
  • Moin,

    genau - die Device muss vor dem löschen der Mailbox entfernt werden, wie schon geschrieben.

    Meine Erfahrung sagt, macht man es anders herum, geht das nur - wie auch geschrieben - nur noch mittels ADSI edit

    ;)


    Gruß Norbert

    Montag, 18. Februar 2019 08:25
    Moderator

Alle Antworten

  • Moin,

    es muss immer erst das AS Device entfernt werden, sonst geht das nur noch mittels ADSI edit

    ;)


    Gruß Norbert

    Montag, 18. Februar 2019 05:41
    Moderator
  • Morgen,

    müsste das denn nicht durch das Remove-ActiveSyncDevice cmdlet passieren?

    Oder meinst du das löschen des AS Device muss vor dem löschen der Mailbox geschehen?

    Grüße

    Simon

    Montag, 18. Februar 2019 08:09
  • Moin,

    genau - die Device muss vor dem löschen der Mailbox entfernt werden, wie schon geschrieben.

    Meine Erfahrung sagt, macht man es anders herum, geht das nur - wie auch geschrieben - nur noch mittels ADSI edit

    ;)


    Gruß Norbert

    Montag, 18. Februar 2019 08:25
    Moderator
  • Morgen,

    ich habe es leider jetzt erst geschafft das ganze mit einem User zu testen dessen Mailbox noch vorhanden und aktiv ist.

    Ich bekomme hier aber die exakt selber Error-Message.

    PS C:\Windows\system32> Get-ActiveSyncDevice -Mailbox "user.userxy" | Remove-ActiveSyncDevice 
    WARNUNG: Unerwarteter Fehler. Ein Watson-Abbild wird generiert: Der Vorgang ist aufgrund des aktuellen Zustands des Objekts ungültig..
    Remove-ActiveSyncDevice : Der Vorgang ist aufgrund des aktuellen Zustands des Objekts ungültig.
    In Zeile:1 Zeichen:51
    + ... ncDevice -Mailbox "user.userxy" | Remove-ActiveSyncDevice 
    +                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [Remove-ActiveSyncDevice], InvalidOperationException
        + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.Exchange.Management.Tasks.RemoveMobileDevice

    Hast du evtl. noch eine Idee woran es liegen könnte?

    Mittwoch, 27. Februar 2019 09:50
  • In der Exchange Shell kann ich das Cmdlet problemlos ausführen.

    Gibt es einen weg das Skript in einer normalen Shell auszuführen?

    Das Exchange 2010 Snapin zu laden scheint nicht zu reichen.

    Hintergrund der Frage ist, dass ich dann das Gesamte Skript ausführen kann und nicht in 2 unterschiedliche Skripte teilen muss.
    Mittwoch, 27. Februar 2019 12:23
  • Auch wenn es nicht wirklich weiter hilft, aber das Snap-In laden ist unsupoorted und kann zu merkwürdigen Fehlern führen. Wenn du das Snap-In lädst umgehst du auch das komplette Sicherheitskonstrukt (RBAC) vom Exchange. Aber was spricht denn dagegen dein Script komplett in der Exchange Management Shell auszuführen?

    Mittwoch, 27. Februar 2019 15:34
  • Das hier ist nur ein Auszug aus dem Script.

    Der Hauptteil des Scripts verschiebt User löscht ihre Dateien und den löscht dann den User selbst.

    Ich würde das ungerne in der Exchange Shell laufen lassen.

    Aber danke für die Info

    Donnerstag, 28. Februar 2019 08:56
  • Was spricht gegen das supportete Szenario in der Exchange-Shell? ;)

    Gruß Norbert

    Donnerstag, 28. Februar 2019 09:55
    Moderator
  • Hallo Norbert,

    ich führe das Skript als eigenes Skript in der Exchange-Shell aus.

    Stoße hier aber nocheinmal auf einen Fehler

    Starting a command on remote server failed with the following error message : Der WinRM-Client hat eine Anforderung an
    den Remote-WS-Verwaltungsdienst gesendet und wurde benachrichtigt, dass die Anforderungsgröße die im Kontingent "MaxEnv
    elopeSize" konfigurierte maximale Größe überschritten hat. For more information, see the about_Remote_Troubleshooting H
    elp topic.
        + CategoryInfo          : OperationStopped: (System.Manageme...pressionSyncJob:PSInvokeExpressionSyncJob) [], PSRe
       motingTransportException
        + FullyQualifiedErrorId : JobFailure
        + PSComputerName        : yxz-exchange-Server
    

    Die MaxEnvelopeSize ist auf 500kb gesetzt, diese werden aber sehr unwahrscheinlich überschritten, da es sich in der Test OU nur um ein paar User handelt.

    Wenn ich das Skript händisch mit einem Nutzer starte in der Exchange-Shell wird das Device gelöscht.

    Sobald mehr als 1 User in der OU ist tritt oben genannter Fehler auf.

    $Device = Get-ActiveSyncDevice -Result unlimited -OrganizationalUnit "OU=Denk,OU=Dir,OU=Eine,DC=AUS,DC=de" | Select-Object identity 
    $Device | ForEach-Object {Remove-ActiveSyncDevice -Identity $Device -Confirm:$false} -verbose 
    

    Das Skript wird nicht auf dem Exchange sondern auf einem Server auf dem nur Scheduled Tasks laufen ausgeführt.

    Wäre eine große Hilfe wenn du mir hier noch einmal weiterhelfen könntest!!

    Grüße Simon

    Dienstag, 5. März 2019 15:33
  • wenn du bereits einen neueren Exchange 2013/2016 hast hat sich das cmdlet geändert

    probier einmal

    Get-MobileDevice | % {Get-MobileDeviceStatistics -ID $_.Guid.ToString()} | where {($_.LastSyncAttemptTime -lt "01.01.2019")} | Remove-MobileDevice -confirm:$false


    Chris

    Dienstag, 5. März 2019 16:07
  • habe noch etwas gefunden.

    man kann die ThrottlingPolicy setzen. Dann werden zb. Geräte die älter als 30 Tage inaktiv sind gelöscht.

    Get-ThrottlingPolicy | Set-ThrottlingPolicy EasMaxInactivityForDeviceCleanup 30

    https://4sysops.com/archives/error-with-your-new-mobile-phone-partnership-how-to-manage-exchange-device-limits/


    Chris

    Mittwoch, 6. März 2019 06:29
  • Hallo Chris,

    das hatte ich gestern auch gelesen das sich das cmdlet geändert hat, ist aber leider noch ein 2010er ein 2016er soll ende des Jahres stehen.

    Die Policy wäre auf lange Sicht eine Überlegung wert.

    Grüße Simon

    Mittwoch, 6. März 2019 08:37
  • Policy geht auch viel einfachen. Ich habe schon zig andere Variante probiert und immer wieder gab es Probleme.

    zb. Wenn ein User in eine andere OU wechselt (Personalwechsel) funktioniert das löschen nicht mehr weil im Device die falsche OU drinnen steht.


    Chris

    Mittwoch, 6. März 2019 08:39
  • Hallo Chris,

    habe mir die Policy mal angeschaut ,die kann ich wenn ich das richtig verstehe aber nur auf den gesamten Exchange setzen nicht auf eine bestimmte OU verknüpfen?

    Unsere User nutzen oft ihr Handy/tablet Wochenlang nicht, dann würde bei ihnen der Sync getrennt werden oder?

    Grüße Simon

    Mittwoch, 6. März 2019 09:28
  • ja stimmt, aber du könntest ja statt 30 Tage auch 90 Tage festlegen. Dann entschärft sich das Problem

    Chris

    Mittwoch, 6. März 2019 11:22
  • Hallo,

    Das mit der Policy steht noch zur Überlegung ich habe das Problem jetzt mit folgendem script gelöst:

    $Device = Get-ActiveSyncDevice -Result unlimited -OrganizationalUnit "OU=Denk,OU=Dir,OU=Eine,OU=AUS,DC=BZOB,DC=de" | Get-ActiveSyncDeviceStatistics 
    $Device | %{Remove-ActiveSyncDevice ([string]$_.Guid) -Confirm:$false} 
    

    Danke an alle für die Hilfe !

    Donnerstag, 7. März 2019 12:51