Hallo, an bestimmten Tagen benötigen wir möglicherweise Sende-/Empfangsberichte unserer Exchange-Benutzer.
Das habe ich vorbereitet Powershell Mit dem Skript können Sie Sende-/Empfangsberichte aller Postfächer in der von Ihnen angegebenen Datenbank oder Organisation abrufen.
Beschreibung des Exchange Server-Sende-/Empfangsskripts
Wenn Sie das Skript ausführen, $days = Read-Host
Der Parameter fragt nach der Anzahl der Berechnungstage. Der von Ihnen angegebene Wert steht in den Zeilen 37 und 39. Get-MessageTrackingLog
wird dem Parameter zugewiesen.
$database
Die Variable fragt Sie nach einem Datenbanknamen. Es führt Berechnungen für Postfächer in der von Ihnen angegebenen Datenbank durch. Wenn Sie diesen Wert leer lassen, wird er für alle Postfächer in der gesamten Organisation berechnet.
Wenn das Skript abgeschlossen ist, erhalten Sie einen HTML-Bericht. Dieser HTML-Bericht zeigt den Namen, die E-Mail-Adresse und die Anzahl der gesendeten und empfangenen Nachrichten.
Gefunden in Zeile 103 Path
Sie können den Pfad des Werts entsprechend Ihrer eigenen Umgebung ändern.
Exchange Server-Sende-/Empfangsskript
<#
=============================================================================================
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
2 Kommentare zu „Exchange-Server-Sende-/Empfangsbericht“