Rapport d'envoi/réception du serveur Exchange

Bonjour, nous pouvons avoir besoin de rapports d'envoi/réception de nos utilisateurs Exchange certains jours.

C'est ce que j'ai préparé PowerShell Avec le script, vous pouvez obtenir des rapports d'envoi/réception de toutes les boîtes aux lettres de la base de données ou de l'organisation que vous spécifiez.

Description du script d'envoi/de réception d'Exchange Server

Lorsque vous exécutez le script, $days = Read-Host Le paramètre demande combien de jours de calcul seront effectués. Cette valeur que vous avez spécifiée se trouve aux lignes 37 et 39. Get-MessageTrackingLog est affecté au paramètre.

  • $database La variable vous demande un nom de base de données. Il effectue des calculs pour les boîtes aux lettres dans la base de données que vous spécifiez. Si vous laissez cette valeur vide, le calcul sera effectué pour toutes les boîtes aux lettres de l'organisation.

Lorsque le script est terminé, il vous fournit un rapport HTML. Ce rapport HTML affiche le nom, l'adresse e-mail, le nombre de messages envoyés et reçus.

Trouvé à la ligne 103 Path Vous pouvez modifier le chemin de la valeur en fonction de votre propre environnement.

Script envoyé/réception du serveur Exchange

<#
=============================================================================================
Name = Cengiz YILMAZ
Microsoft Certified Trainer (MCT)
Date = 4.03.2023
www.cengizyilmaz.net
www.cozumpark.com/author/cengizyilmaz
============================================================================================
#>

$days = Read-Host "Enter the number of days to generate the report for"
$database = Read-Host "Enter the name of the Exchange database to scan. Press Enter to scan all mailboxes."

$properties = "Name", "DisplayName", "ItemCount"

if ($database) {

    $mailboxes = Get-Mailbox -Database $database -ResultSize Unlimited -ErrorAction Stop | Select-Object $properties

} else {

    $mailboxes = Get-Mailbox -ResultSize Unlimited -ErrorAction Stop | Select-Object $properties

}

 
$tableRows = "<tr><th style='color: white;'>Name</th><th>EmailAddress</th><th style='color: white;'>Received Count</th><th style='color: white;'>Sent Count</th></tr>"

foreach ($mailbox in $mailboxes) {

    $email = $mailbox.Name

    $stats = Get-MailboxStatistics $email -ErrorAction SilentlyContinue

    if ($stats) {

        $received = (Get-MessageTrackingLog -Recipients $email -Start (Get-Date).AddDays(-$days) -ResultSize Unlimited -EventId Receive).Count

        $sent = (Get-MessageTrackingLog -Sender $email -Start (Get-Date).AddDays(-$days) -ResultSize Unlimited -EventId Send).Count

        $tableRows += "<tr><td>$($mailbox.DisplayName)</td><td>$($mailbox.Name)</td><td style='color:blue'>$($received)</td><td style='color:blue'>$($sent)</td></tr>"

        Write-Host "Processed $($email): $($received) received, $($sent) sent" -ForegroundColor Yellow

    }

}

$html = @"

<!DOCTYPE html>

<html>

<head>

    <style>

        table, th, td {

            border: 1px solid black;

            border-collapse: collapse;

            font-family: Arial;

            font-size: 11pt;

            text-align: left;

            padding: 5px;

        }

        th {

            background-color: #337ab7;

            color: white;

        }

    </style>

</head>

<body>

    <h1 style='background-color: #337ab7; color: white;'>Exchange Mailbox Sent/Receive Report</h1>

    <table>

        $tableRows

    </table>

</body>

</html>

"@

$html | Out-File "C:scriptReport.html"

 

Write-Host "Report generated successfully." -ForegroundColor Green

Articles similaires – Rapport d'envoi/réception du serveur Exchange

2 commentaires sur « Rapport d'envoi/de réception d'Exchange Server »

Commenter