Poniżej prezentujemy krótki skrypt, który zwróci listę skrzynek na które dawno nikt się nie logował.
Datę dla której chcecie znaleźć skrzynki możecie określić za pomocą zmiennej $Days.
Domyślnie jest to 90 dni, czyli zwrócone zostaną wszystkie skrzynki na których ostatnie logowanie nastąpiło dawniej niż 90 dni temu.
Function New-Array {,$args}
$Report = New-Array
$days = "90"
$date_last = (Get-Date).AddDays(-$days)
$mailboxes = Get-Mailbox -server mxmbx01 -ResultSize unlimited
foreach($mailbox in $mailboxes)
{
$mbx_DN = $mailbox.DistinguishedName
$email = $mailbox.PrimarySmtpAddress.toString()
$Stat = Get-MailboxStatistics -Identity $mbx_DN | Where-Object {$_.lastLogonTime -lt $date_last} | Select-Object DisplayName, totalitemsize,LastLogonTime
if ($Stat){
$tmp = New-Object System.Object
$tmp | Add-Member -type NoteProperty -name DisplayName -value $($stat.DisplayName)
$tmp | Add-Member -type NoteProperty -name Email -value $email
$tmp | Add-Member -type NoteProperty -name TotalSize_MB -value $($stat.TotalitemSize.value.ToMB())
$tmp | Add-Member -type NoteProperty -name LastLogon -value $($stat.LastLogonTime)
$Report += $tmp
}
}
$Report | Export-Csv D:\Scripts\lastlogon_report.csv
Jako wynik działania skryptu otrzymacie plik .csv z wpisanymi DisplayName, adres email, TotalSize w MB, oraz czas ostatniego logowania do skrzynki.