none
Commande powershell et statistiques de boite RRS feed

  • Question

  • Bonjour

    Comment faire pour remonter la taille des dossiers des éléments envoyés dans un exchange 2016 ? Egalement, comment voir les éléments de chacune de mes boites qui datent de plus de 3 ans?

    Merci !

    mardi 8 juin 2021 05:42

Réponses

  • Bonjour Guillaume,

    Merci d'avoir sollicité la communauté TechNet France

    La commande PowerShell qui te permettra de récupérer les informations relatives à une boite mail dans Exchange est  Get-MailboxFolderStatistics 

    Voici un blog qui est très bien fait et qui t aidera dans tes actions: 

    En complément voici un article qui reprend les informations relatives aux balises et aux stratégies de rétention:

    A bientôt

    Alexis


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni « tel quel » et il n'implique aucune responsabilité de la part de Microsoft. S'il vous plaît n'oubliez pas de « Marquer comme réponse » les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile l’accès aux solutions.

    mardi 8 juin 2021 06:20
    Modérateur
  • bonjour Guillaume,

    Tu trouveras, un script complet ici : https://github.com/cunninghamp/Get-MailboxReport.ps1

    Tu peux naturellement te l'approprier en en comprenant l'essence même et l'adapter à ton besoin

    Attention : ce script fait comme toi pour créer un PSCustomObject (utilisation de Add-Member -MemberType NoteProperty -Name "xxxxxx" - Value xxxxxx

    C'est une vieille méthode - qui fonctionne toujours, mais il est préférable, de nos jours, d'utiliser la méthode suivante :

    $myObject = [PSCustomObject]@{
        Name     = 'Kevin'
        Language = 'PowerShell'
        State    = 'Texas'
    }

    cf. : https://docs.microsoft.com/en-us/powershell/scripting/learn/deep-dives/everything-about-pscustomobject?view=powershell-7.1

    et dans le lien suivant, tu découvriras pourquoi : https://www.jonathanmedd.net/2011/09/powershell-v3-creating-objects-with-pscustomobject-its-fast.html

    Dans le principe, ça fait ceci :

    Collecte de la liste des Mailboxes : $mailboxes = @(Get-Mailbox -resultsize unlimited)

    Pour chaque mailbox (boucle foreach)

    $stats = $mb | Get-MailboxStatistics | Select-Object TotalItemSize,TotalDeletedItemSize,ItemCount,LastLogonTime,LastLoggedOnUserAccount

    Sur le principe, pas différent de toi, sauf que dans ta commande, tu as oublié un petit qq chose : $mailbox c'est un objet, avec des propriétés.

    Exécute donc un foreach ($mailbox in $mailboxes){}

    Ca ne va rien faire, mais tu vas avoir $mailbox de peuplé (avec la dernière mailbox de ta boucle).

    $Mailbox  | Get-Member ==> Et là, je t'entends râler derrière ton écran "mais bon sang, mais c'est bien sûr", ... hé oui, ça va ressembler à qq chose comme ça : 

    $inboxstats = Get-MailboxFolderStatistics $mailbox.Name -FolderScope DeletedItems

    Après, tu pourras alimenter ton PSCustomObject comme tu le souhaites.:-)

    J'espère que cela t'aura aidé à comprendre. Si oui, je serais content pour toi.

    cordialement

    Olivier

    mardi 8 juin 2021 09:40

Toutes les réponses

  • Bonjour Guillaume,

    Merci d'avoir sollicité la communauté TechNet France

    La commande PowerShell qui te permettra de récupérer les informations relatives à une boite mail dans Exchange est  Get-MailboxFolderStatistics 

    Voici un blog qui est très bien fait et qui t aidera dans tes actions: 

    En complément voici un article qui reprend les informations relatives aux balises et aux stratégies de rétention:

    A bientôt

    Alexis


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni « tel quel » et il n'implique aucune responsabilité de la part de Microsoft. S'il vous plaît n'oubliez pas de « Marquer comme réponse » les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile l’accès aux solutions.

    mardi 8 juin 2021 06:20
    Modérateur
  • Merci pour ce retour

    Cependant, j'essaie de lancer ce script, mais je n'ai pas de retour concluant:

    ----------------------

    $mailboxes = @(Get-Mailbox -ResultSize Unlimited)
    $report = @()

    foreach ($mailbox in $mailboxes)
    {
        $inboxstats = Get-MailboxFolderStatistics $mailbox -FolderScope DeletedItems

        $mbObj = New-Object PSObject
        $mbObj | Add-Member -MemberType NoteProperty -Name "Display Name" -Value $mailbox.DisplayName
        $mbObj | Add-Member -MemberType NoteProperty -Name "DeletedItems Size (Mb)" -Value $inboxstats.FolderandSubFolderSize.ToMB()
        $mbObj | Add-Member -MemberType NoteProperty -Name "Deleted Items" -Value $inboxstats.ItemsinFolderandSubfolders
        $report += $mbObj
    }

    $report

    --------------

    Ai je fais une erreur quelque part?

    mardi 8 juin 2021 07:56
  • bonjour Guillaume,

    Tu trouveras, un script complet ici : https://github.com/cunninghamp/Get-MailboxReport.ps1

    Tu peux naturellement te l'approprier en en comprenant l'essence même et l'adapter à ton besoin

    Attention : ce script fait comme toi pour créer un PSCustomObject (utilisation de Add-Member -MemberType NoteProperty -Name "xxxxxx" - Value xxxxxx

    C'est une vieille méthode - qui fonctionne toujours, mais il est préférable, de nos jours, d'utiliser la méthode suivante :

    $myObject = [PSCustomObject]@{
        Name     = 'Kevin'
        Language = 'PowerShell'
        State    = 'Texas'
    }

    cf. : https://docs.microsoft.com/en-us/powershell/scripting/learn/deep-dives/everything-about-pscustomobject?view=powershell-7.1

    et dans le lien suivant, tu découvriras pourquoi : https://www.jonathanmedd.net/2011/09/powershell-v3-creating-objects-with-pscustomobject-its-fast.html

    Dans le principe, ça fait ceci :

    Collecte de la liste des Mailboxes : $mailboxes = @(Get-Mailbox -resultsize unlimited)

    Pour chaque mailbox (boucle foreach)

    $stats = $mb | Get-MailboxStatistics | Select-Object TotalItemSize,TotalDeletedItemSize,ItemCount,LastLogonTime,LastLoggedOnUserAccount

    Sur le principe, pas différent de toi, sauf que dans ta commande, tu as oublié un petit qq chose : $mailbox c'est un objet, avec des propriétés.

    Exécute donc un foreach ($mailbox in $mailboxes){}

    Ca ne va rien faire, mais tu vas avoir $mailbox de peuplé (avec la dernière mailbox de ta boucle).

    $Mailbox  | Get-Member ==> Et là, je t'entends râler derrière ton écran "mais bon sang, mais c'est bien sûr", ... hé oui, ça va ressembler à qq chose comme ça : 

    $inboxstats = Get-MailboxFolderStatistics $mailbox.Name -FolderScope DeletedItems

    Après, tu pourras alimenter ton PSCustomObject comme tu le souhaites.:-)

    J'espère que cela t'aura aidé à comprendre. Si oui, je serais content pour toi.

    cordialement

    Olivier

    mardi 8 juin 2021 09:40
  • Bonjour Guillaume,

    Avez-vous avancé dans votre problématique ?

    N'oubliez pas de marquer comme réponse les propositions des intervenants qui vous ont amené à la solution du problème.

    Je vous remercie par avance pour votre retour.

    Cordialement,

    Alexis


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni « tel quel » et il n'implique aucune responsabilité de la part de Microsoft. S'il vous plaît n'oubliez pas de « Marquer comme réponse » les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile l’accès aux solutions.

    mardi 15 juin 2021 06:39
    Modérateur