unter dem Code bei der Eingabe einiger Benutzer, aber fehlschlägt liefert keine erwarteten Ergebnisse bei der Abfrage für alle Benutzer in AD. Nicht zu verstehen, warum es auf Bulk-Nutzer im Vergleich zu einer relativ kleinen Benutzerliste FehlerPowershell - Abfrage aller AD-Benutzerobjekte; Anzahl der zurückgegebenen E-Mails oder kein Postfach
-Code unten:
$Users = @('user1',"user2",'user3','user4')
$Mailboxes = $Users | Get-ADuser -pr *
$OU = 'DC=local,DC=local,DC=org'
$Mailboxes = Get-ADUser -Filter {SamAccountName -notlike '*$*'} -pr samaccountname
$Mailboxes = Get-ADUser -Filter * -SearchBase $OU -Properties samaccountname
foreach ($Mbx in $Mailboxes)
{
$ADUser = Get-ADUser $Mbx.SamAccountName -Properties * #Enabled,AccountExpirationDate
$UserObj = New-Object PSObject
$UserObj | Add-Member NoteProperty -Name "Username" -Value $ADUser.SamAccountName
If($mbx.msExchRecipientTypeDetails -eq $null)
{
$UserObj | Add-Member NoteProperty -Name "E-Mail" -Value "NoEmailAddress"
$UserObj | Add-Member NoteProperty -Name "email ItemCount" -Value "NoMailBox"
$UserObj | Add-Member NoteProperty -Name "TotalItemSize(GB)" -Value "NoMailBox"
Write-Host $Mbx.SamAccountName "has no mailbox" -ForegroundColor green
}
Else
{
If($mbx.msExchRecipientTypeDetails -eq 1)
{
$stats = $Mbx.EmailAddress | Get-MailboxStatistics | Select-Object TotalItemSize,TotalDeletedItemSize,ItemCount,LastLogonTime,LastLoggedOnUserAccount
$MbxSizeb = $stats.TotalItemSize -replace "(.*\()|,| [a-z]*\)"
$Tmp_gb = $MbxSizeb/1GB
$MbxSizeGB = [math]::Round($Tmp_gb,2)
$UserObj | Add-Member NoteProperty -Name "E-Mail" -Value $ADUser.EmailAddress
$UserObj | Add-Member NoteProperty -Name "email ItemCount" -Value $stats.ItemCount
$UserObj | Add-Member NoteProperty -Name "TotalItemSize(GB)" -Value $MbxSizeGB
}
}
$Report = $Report += $UserObj
}
Ergebnisse mit ausgewählten Benutzern enter image description here
Ergebnisse gegen alle Benutzer: enter image description here
Bitte, tu das nicht 'prop *' es sei denn, dies eine kleine bis mittlere Domäne ist. Ich habe gerade ein Skript gegen eine Domain laufen lassen, die über einen Tag dauerte, bis ich fertig war. Ich suchte nur nach einer Gruppe, die von einem Computerobjekt betroffen war, und es endete mit über 12 Gigs Speicher. Es kann schnell summieren. – TheMadTechnician
@TheMadTechnician Das scheint albern, dass Sie es irgendwo dort nicht gestoppt hätten. Dies konnte leicht behoben werden, indem * nicht verwendet wurde und -Properties verwendet wurde EmailAddress, msExchRecipientTypeDetails, SamAccountName –
Ich habe '-Prop *' nicht verwendet, ich erhielt nur die Standardeigenschaften und speicherte nur die ObjectClass für jedes Objekt in einer Gruppe. Ich habe zwar mit fast 700.000 Benutzern und Computern gearbeitet, aber mein Punkt bleibt, dass sie, wenn sie das gesamte aktive Verzeichnis abfragen, wahrscheinlich nicht "-Prop *" für die Abfrage verwenden wollen. – TheMadTechnician