none
Script purge boîtes mail déconnectées RRS feed

  • Question

  • Bonjour à toutes et tous, et tous mes bons vœux pour cette nouvelle année !!!

    Cela fait 3 jours que je cherche désespérément une solution à mon problème : je souhaite créer une tâche planifiée qui supprime les boîtes mail déconnectées de mon Exchange 2010 SP3.

    J'ai tout d'abord créé un script qui fonctionne bien avec une seule database :

    $Mailboxes = Get-MailboxStatistics -Database "mydatabase" | where {$_.DisconnectReason -eq "SoftDeleted"}
    $Mailboxes | ForEach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState SoftDeleted -Confirm:$False}

    Ensuite j'ai voulu le faire pour plusieurs databases :

    $Mailboxes1 = Get-MailboxStatistics -Database "mydatabase1" | where {$_.DisconnectReason -eq "SoftDeleted"}
    $Mailboxes2 = Get-MailboxStatistics -Database "mydatabase2" | where {$_.DisconnectReason -eq "SoftDeleted"}
    $Mailboxes3 = Get-MailboxStatistics -Database "mydatabase3" | where {$_.DisconnectReason -eq "SoftDeleted"}
    $Mailboxes1 | ForEach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState SoftDeleted -Confirm:$False}
    $Mailboxes2 | ForEach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState SoftDeleted -Confirm:$False}
    $Mailboxes3 | ForEach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState SoftDeleted -Confirm:$False}

    Mais cela ne fonctionne que pour la première database traitée, pour les suivantes j'obtiens :

    Impossible de lier l'argument au paramètre « Database », car il a la valeur Null.
        + CategoryInfo          : InvalidData: (:) [Remove-StoreMailbox], ParameterBindingValidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Remove-StoreMailbox

    Avant d'entrer dans la planification de ce script, je souhaite faire le marcher afin qu'il traite une à une mes databases.

    D'avance merci pour votre aide.

    Bon WE.


    FXE


    • Modifié FXE vendredi 10 janvier 2014 17:14
    vendredi 10 janvier 2014 17:14

Réponses

  • Elles sont normalement soumises à la même purge, penser par contre à supprimer la move-request une fois qu'elle est achevée.


    Soft-deleted mailboxes   When a mailbox is moved to a different mailbox database, Exchange doesn't fully delete the mailbox from the source mailbox database when the move is complete. Instead, the mailbox in the source mailbox database is switched to a soft-deleted state. Like disabled mailboxes, soft-deleted mailboxes are retained in the source database either until the deleted mailbox retention period expires or until the Remove-StoreMailbox cmdlet is used to purge the mailbox.

    Source: http://technet.microsoft.com/en-us/library/bb232039(v=exchg.150).aspx


    Bruce Jourdain de Coutance - Consultant MVP Exchange http://blog.brucejdc.fr

    • Marqué comme réponse FXE mardi 14 janvier 2014 10:30
    mardi 14 janvier 2014 09:19
    Modérateur

Toutes les réponses

  • Bonjour,

    est-ce que la première partie du script pour la désactivation fonctionne?

    On peut vérifier que les boites sont bien désactivées database par database :

    Get-MailboxStatistics -Database "Mailbox Databse" | where-object { $_.DisconnectDate -ne $null } | Select DisplayName,MailboxGuid

    Ensuite la commande que j'utilise pour la suppression n'est pas tout à fait identique à la votre :

    Get-MailboxStatistics -Database "Mailbox Database" | where-object { $_.DisconnectDate -ne $null } | ForEach { Remove-Mailbox -Database "Mailbox Database" -StoreMailboxIdentity $_.MailboxGuid }

    Je me base sur la statistique des boites déconnectées, c'est sans retour en arrière possible, une boite supprimée ne sera plus restaurable à postériori.

    J'ai testé mon script en masse sur 50 boites et 4 db différentes il est passé sans erreur.

    samedi 11 janvier 2014 13:08
  • Bonjour et merci pour cette réponse.

    Je n'ai pas de première partie pour désactiver des BALs dans mon script.

    Votre script supprime toute BAL déconnectée, hors ce qui m'intéresse est de purger les BAL déconnectées et dans l'état "SoftDeleted". Celle dans l'état "Disabled" sont purgées de manière cyclique suivant les paramètres de chaque database.

    Merci tout de même.

    Bon WE.


    FXE

    samedi 11 janvier 2014 13:57
  • Autant pour moi j'avais mal compris.

    Dans ce cas j'utilise ces commandes :

    Get-MailboxDatabase | Get-MailboxStatistics | Where { $_.DisconnectReason -eq "SoftDeleted" } | ft DisplayName,Database,DisconnectDate

    et

    Get-MailboxStatistics -Database "Mailbox Database" | where {$_.DisconnectReason -eq "SoftDeleted"} | foreach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState SoftDeleted}

    Par contre il faut cibler une seule db par ligne.

    Cordialement.


    samedi 11 janvier 2014 14:24
  • Oui, j'ai bien tenté la seconde ligne de commande, mais PowerShell me refuse son exécution car il ne veut pas lancer 2 pipelines en même temps :

    "Pipeline not executed because a pipeline is already executing".


    FXE

    samedi 11 janvier 2014 17:39
  • Effectivement c'est à cause de l'argument foreach, il faut soit déclarer des variables, soit ouvrir un thread par db et le fermer avant d'exécuter le suivant.

    http://rikkoss.wordpress.com/2013/02/19/deleting-or-purging-deleted-mailboxes-exchange-2010-sp1-or-sp2/

    http://help.outlook.com/140/cc875890.aspx

    Pour nous on exécute 6 scripts différents 1 par db qui sont déclenchés par des tâches planifiées.

    On a une meilleure remontée des erreurs et surtout on peut les suspendre sur une base précise sans impacter les autres.



    • Modifié gg69140 samedi 11 janvier 2014 18:30
    samedi 11 janvier 2014 18:29
  • Pourquoi ne pas simplement mettre une date d'expiration sur les bases de données pour les BAL déconnectées?


    Bruce Jourdain de Coutance - Consultant MVP Exchange http://blog.brucejdc.fr

    lundi 13 janvier 2014 09:12
    Modérateur
  • Bonjour et merci pour vos réponses.

    Bruce, les BALs déconnectées avec l'état "SoftDeleted" sont également soumises à cette période d'expiration ?

    Si tel est le cas, en effet je ne vais pas m'embêter à réinventer l'eau tiède !


    FXE

    mardi 14 janvier 2014 08:18
  • Elles sont normalement soumises à la même purge, penser par contre à supprimer la move-request une fois qu'elle est achevée.


    Soft-deleted mailboxes   When a mailbox is moved to a different mailbox database, Exchange doesn't fully delete the mailbox from the source mailbox database when the move is complete. Instead, the mailbox in the source mailbox database is switched to a soft-deleted state. Like disabled mailboxes, soft-deleted mailboxes are retained in the source database either until the deleted mailbox retention period expires or until the Remove-StoreMailbox cmdlet is used to purge the mailbox.

    Source: http://technet.microsoft.com/en-us/library/bb232039(v=exchg.150).aspx


    Bruce Jourdain de Coutance - Consultant MVP Exchange http://blog.brucejdc.fr

    • Marqué comme réponse FXE mardi 14 janvier 2014 10:30
    mardi 14 janvier 2014 09:19
    Modérateur
  • Merci pour ces précisions.

    Bonne continuation.


    FXE

    mardi 14 janvier 2014 10:31