Export PrimarySmtpAddress

Brass Contributor

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

 

5 Replies

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

@Varun_Ghildiyal 

 

j'ai voulu lancer le 1er script pour la société 1 mais en sortie sur mon excel j'ai :?!

 

Manflo1603_0-1678720598357.png

 

 

d'ou viendrait l'erreur

une erreur dans la sortie powershell?

@Varun_Ghildiyal 

 

non pas d'erreur une sortie assez rapide moins d'une minute après le traitement.

donc je ne sais pas vraiment quoi faire pour que ça fonctionne correctement