Forum Discussion

Manflo1603's avatar
Manflo1603
Brass Contributor
Mar 13, 2023

Export PrimarySmtpAddress

Bonjour,

 

je vous explique la problématique sur un Tenant j'ai deux sociétés qui était réunies.

Dorénavant elles sont séparé mais toujours disponible sur le même tenant.

Je fais une extraction des boites mails utilisateurs avec leur tailles, je voudrais pouvoir séparer les informations des deux sociétés comment faire ?

 

actuellement voici mon script qui prend les informations du Tenant

$mailboxes = Get-mailbox -ResultSize unlimited | Select-Object UserPrincipalName

foreach ($mailbox in $mailboxes)
{
    $strMailbox = $mailbox.UserPrincipalName.ToString()
    $infoGetMailbox = Get-Mailbox $strMailbox
    $displayName = $infoGetMailbox.DisplayName
    $primarySmtpAddress = $infoGetMailbox.PrimarySmtpAddress
    $mailboxSize = Get-Mailbox $strMailbox | Get-MailboxStatistics | Select-Object TotalItemSize
    $mailboxSizeToString = $mailboxSize.TotalItemSize.ToString()
    $mailboxSizeBytes = $mailboxSizeToString.Split('\(\)')[1]
    [Double]$mailboxSizeBytesWithoutUnit = $mailboxSizeBytes.Split(' ')[0].Replace(',','')
    $mailboxSizeBytesWithoutUnitGb = $mailboxSizeBytesWithoutUnit/1024/1024/1024
    $tabMailboxSize = [Array]$tabMailboxSize + [PSCustomObject] @{DisplayName = "$displayName"; Mailbox = "$primarySmtpAddress"; MailboxSizeGB = "$mailboxSizeBytesWithoutUnitGb"}

 

Je voudrais pouvoir faire le même script pour la société 1 et la société 2 mais séparement et je ne sais pas ou mettre l'information de leur primarysmtpadress pour ne pas qu'il y ai de conflit.

 

Merci d'avance

 

  • Pour séparer les informations des deux sociétés dans votre script, vous pouvez utiliser la propriété "PrimarySmtpAddress" des boîtes aux lettres pour déterminer à quelle société elles appartiennent. Pour cela, vous pouvez ajouter une condition IF qui vérifie si l'adresse SMTP de la boîte aux lettres contient le nom de domaine de la société 1 ou de la société 2. Ensuite, vous pouvez stocker les informations dans deux tableaux distincts.

    # Société 1
    $mailboxesSociete1 = Get-Mailbox -ResultSize unlimited -Filter { PrimarySmtpAddress -like "*societe1.com" } | Select-Object UserPrincipalName
    
    foreach ($mailbox in $mailboxesSociete1)
    {
        $strMailbox = $mailbox.UserPrincipalName.ToString()
        $infoGetMailbox = Get-Mailbox $strMailbox
        $displayName = $infoGetMailbox.DisplayName
        $primarySmtpAddress = $infoGetMailbox.PrimarySmtpAddress
        $mailboxSize = Get-Mailbox $strMailbox | Get-MailboxStatistics | Select-Object TotalItemSize
        $mailboxSizeToString = $mailboxSize.TotalItemSize.ToString()
        $mailboxSizeBytes = $mailboxSizeToString.Split('\(\)')[1]
        [Double]$mailboxSizeBytesWithoutUnit = $mailboxSizeBytes.Split(' ')[0].Replace(',','')
        $mailboxSizeBytesWithoutUnitGb = $mailboxSizeBytesWithoutUnit/1024/1024/1024
        $tabMailboxSizeSociete1 = [Array]$tabMailboxSizeSociete1 + [PSCustomObject] @{DisplayName = "$displayName"; Mailbox = "$primarySmtpAddress"; MailboxSizeGB = "$mailboxSizeBytesWithoutUnitGb"}
    }
    
    # Société 2
    $mailboxesSociete2 = Get-Mailbox -ResultSize unlimited -Filter { PrimarySmtpAddress -like "*societe2.com" } | Select-Object UserPrincipalName
    
    foreach ($mailbox in $mailboxesSociete2)
    {
        $strMailbox = $mailbox.UserPrincipalName.ToString()
        $infoGetMailbox = Get-Mailbox $strMailbox
        $displayName = $infoGetMailbox.DisplayName
        $primarySmtpAddress = $infoGetMailbox.PrimarySmtpAddress
        $mailboxSize = Get-Mailbox $strMailbox | Get-MailboxStatistics | Select-Object TotalItemSize
        $mailboxSizeToString = $mailboxSize.TotalItemSize.ToString()
        $mailboxSizeBytes = $mailboxSizeToString.Split('\(\)')[1]
        [Double]$mailboxSizeBytesWithoutUnit = $mailboxSizeBytes.Split(' ')[0].Replace(',','')
        $mailboxSizeBytesWithoutUnitGb = $mailboxSizeBytesWithoutUnit/1024/1024/1024
        $tabMailboxSizeSociete2 = [Array]$tabMailboxSizeSociete2 + [PSCustomObject] @{DisplayName = "$displayName"; Mailbox = "$primarySmtpAddress"; MailboxSizeGB = "$mailboxSizeBytesWithoutUnitGb"}
    }

    la condition IF dans les filtres de Get-Mailbox vérifie si l'adresse SMTP de la boîte aux lettres contient le nom de domaine de la société 1 ou de la société 2. Les résultats sont stockés dans les tableaux $mailboxesSociete1 et $mailboxesSociete2. Ensuite, chaque tableau est parcouru dans une boucle foreach, où les informations des

Resources