Import-Module ActiveDirectory
Get-Mailbox -ResultSize Unlimited | ForEach-Object {
$Mailbox = $_
try {
$Stats = Get-MailboxStatistics -Identity $Mailbox.Alias
$ADUser = Get-ADUser -Filter { UserPrincipalName -eq $Mailbox.UserPrincipalName } -
Properties whenCreated, LastLogonTimestamp, MemberOf, Title, Department, Office,
TelephoneNumber
if (-not $ADUser) {
Write-Warning "Aucun utilisateur trouvé avec l'adresse de messagerie $
($Mailbox.UserPrincipalName)"
return
$LastLogon = if ($Stats.LastLogonTime) {
$Stats.LastLogonTime
} elseif ($ADUser.LastLogonTimestamp) {
[DateTime]::FromFileTime($ADUser.LastLogonTimestamp)
} else {
"Jamais connecté"
$Groups = if ($ADUser.MemberOf) {
($ADUser.MemberOf | ForEach-Object {
($_ -split ',')[0] -replace '^CN='
}) -join ', '
} else {
"Aucun groupe"
[PSCustomObject]@{
Nom_Complet = $Mailbox.DisplayName
Adresse_Messagerie = $Mailbox.PrimarySmtpAddress
Titre = $ADUser.Title
Département = $ADUser.Department
Bureau = $ADUser.Office
Téléphone = $ADUser.TelephoneNumber
Date_Création = $ADUser.whenCreated
Dernière_Ouverture = $LastLogon
Groupes_AD = $Groups
} catch {
Write-Warning "Erreur avec $($Mailbox.DisplayName) : $_"
} | $Chemin = "$env:USERPROFILE\Desktop\Rapport_Utilisateurs_Exchange_AD.csv"
Export-Csv -Path $Chemin -NoTypeInformation -Encoding UTF8