-Filter * -Properties mail, Description, department, manager
$mailboxes = Get-Mailbox -ResultSize Unlimited #| ?{$_.RecipientTypeDetails -eq "SharedMailbox"}
$full_access = foreach ($mailbox in $mailboxes) {
$mailbox | Get-MailboxPermission |?{($_.AccessRights -like 'Full*') -and ($_.user -notmatch " Admins|exchange|система|management|authority")}
}
$hash = ForEach ($mb in $mailboxes){
$access = $full_access |?{$_.Identity -eq $mb.Identity}
$aduser = $ADUsers | ?{$mb.UserPrincipalName -eq $_.UserPrincipalName}
$stats = Get-MailboxStatistics $mb.alias |select DisplayName, TotalItemSize, ItemCount, totaldeleteditemsize, storagelimitstatus
$r = New-Object PsObject
$r | add-member Noteproperty "Alias" $mb.alias
$r | add-member Noteproperty "Основной адрес" $mb.PrimarySmtpAddress
$r | add-member Noteproperty "Владелец почтового ящика" $mb.displayname
$r | add-member Noteproperty "Описание" $aduser.Description
$r | add-member Noteproperty "Объем ящика" $stats.TotalItemSize.ToString().split("(")[0]
$r | add-member Noteproperty "В полном управлении у" $($access.user -join [environment]::NewLine)
$r | add-member Noteproperty "Управляет ящиками" $($(($full_access | ?{$mb.UserPrincipalName -in $_.user}).Identity) -join [environment]::NewLine)
$r | add-member Noteproperty "Переадресация на ящик" $mb.ForwardingAddress
$r | add-Member Noteproperty "OU" $([system.String]::Join([environment]::NewLine, $aduser.DistinguishedName))
$r
}
$hash | ?{$_.ou -notmatch "service|groups|users|директор"} | sort {
if ($_."Объем ящика" -match "Mb") {
[int]($_."Объем ящика").Split(' ')[0]/1024
}
elseif ($_."Объем ящика" -match "Kb") {
[int]($_."Объем ящика").Split(' ')[0]/(1024*1024)
}
else {
[int]($_."Объем ящика").Split(' ')[0]
}
} -Descending | ogv -PassThru
Этот скрипт у тебя что то чистит или только инфу выдает?
Обсуждают сегодня