Postfächer per Skript in PST exportieren und dann deaktivieren?

  • Wir gehen momentan bei Mitarbeitern die das Unternehmen verlassen so vor:
    - Postfach wird über GUI in PST exportiert
    - nach Beendigung des Export wird Postfach deaktiviert


    Diesen Prozess würde ich gerne per Powershell optimieren.
    Mit New-MailboxExportRequest ist es ja kein Problem das Postfach zu exportieren. Allerdings bekomme ich keine Rückinfo wann der Export fertig ist. Vorher kann ich aber das Postfach nicht deaktivieren.
    Mit dem Befehl Get-MailboxExportRequest -Status Completed könnte ich allerdings in einer Schleife rausbekommen wann der Export erledigt ist.


    Da ich nicht unbedingt fit bin was Shell Programmierung betrifft würde ich gerne wissen ob es vielleicht ein Skript gibt das diese Funktionalität abdeckt. DAnn müsste ich das Rad nicht mühsam neu erfinden.



    Freue mich über hilfreiche Antworten.

    • Offizieller Beitrag

    Moin,


    ob es was fertiges gibt, weiß ich nicht, aber ich würde die Prüfung, ob der Export-Batch fertig ist, über den Taskplaner durchführen.


    Falls Ihr keinen Prozess bei ausscheidenden Mitarbeitern habt, dann wird der Export von Hand gestartet.


    Im Taskplaner wird dann alle 15 Minuten mit "Get-MailboxExportRequest -Status Completed" gesucht, ob einen fertigen Export gibt, dann das Postfach aus diesem Export deaktiviert. und der Request gelöscht.


    Ist im Prinzip auch nicht mehr als ein Dreizeiler, je nach Bedarf kann man das noch hübsch machen und z.B. am Ende eine Mail senden.

  • Danke Robert. Du hast Recht, das wäre ein sehr guter Ansatz und würde mir reichen.


    Als Skripting Anfänger kämpfe ich gerade noch ein wenig.
    Leider liefert Get-MailboxExportRequest -Status Completed keinen Rückgabewert den ich an den Disable Befehl geben kann.
    Daher scheitert mein Versuch:

    Code
    $Mailboxes=Get-MailboxExportRequest -Status Completed 
    foreach ($mailbox in $mailboxes) {
        Disable-Mailbox $mailbox     }

    Hast du da noch einen kleine Tipp für mich? Würde mich sehr freuen.

  • Hallo Harry,
    sorry für die späte Antwort. Hatte es heute erst gesehen.
    Diesen Ansatz hatte ich auch schon probiert.
    Endet leider in einer Fehlermeldung:

    Code
    Die Argumenttransformation für den Parameter "Identity" kann nicht verarbeitet werden. Der Wert
    "hf.ads/Heiligenfeld/Inaktive Objekte/Username\MailboxExport" vom Typ
    "Microsoft.Exchange.MailboxReplicationService.RequestIndexEntryObjectId" kann nicht in den Typ
    "Microsoft.Exchange.Configuration.Tasks.MailboxIdParameter" konvertiert werden.
        + CategoryInfo          : InvalidData: (hf.ads/Firma\MailboxExport:PSObject) [Get-Mailbox], ParameterBindin
       ...mationException
        + FullyQualifiedErrorId : ParameterArgumentTransformationError,Get-Mailbox
        + PSComputerName        : hf-serv69.hf.ads
    • Offizieller Beitrag

    Die Shell ist schon ok, sonst gäbe es einen anderen Fehler.


    Der Output von Get-MailboxExportrequest lässt sich vermutlich nur nicht direkt als Input an Get-mailbox pipen.


    Kann ich nicht ausprobieren, weil ich keinen Export hier habe, aber vermutlich muss aus dem Request die Liste der Postfächer gelesen werden und das dann via Foreach-Object an Disable-Mailbox gegeben werden.