In einer Exchange 2007 Umgebung mit mehreren Maildomains wurde eine Liste aller Postfächer mit Statusinformationen benötigt. Mit folgendem Powershell Script wird diese Aufgabe erledigt.
Achtung: Das Script verwendet den Anzeigenamen (Displayname) als eindeutiges Merkmal, um die Benutzerinformationen abzufragen. Dies könnte zu Problemen bei der Ausführung des Scripts führen, wenn Anzeigenamen doppelt vorhanden sind.
Update 20.09.2009: Das Script exportiert jetzt zusätzlich die Anzahl und Größe der gelöschten Elemente.
function get-info { $databases = Get-Mailboxdatabase $AllUsers = @() $AllUsersEmail = @() foreach ($database in $databases) { $AllUsers += Get-Mailbox -Database $database -ResultSize Unlimited|Get-MailboxStatistics |select database,displayName,itemcount, totalitemsize, lastlogontime, lastlogofftime,lastloggedonuseraccount, *Deleted* } foreach ($user in $AllUsers) { $obj = new-object psObject $mailinfo = get-user -identity $user.displayname |select Company, DistinguishedName $mailinfo2 = get-mailbox -identity $user.displayname |select PrimarySMTPAddress $obj |Add-Member -MemberType noteproperty -Name "Datenbank" -Value $user.database $obj |Add-Member -MemberType noteproperty -Name "Display Name" -Value $user.DisplayName $obj |Add-Member -MemberType noteproperty -Name "Item Count" -Value $user.ItemCount $obj |Add-Member -MemberType noteproperty -Name "Total Item Size" -Value $user.totalitemsize.value.ToMB() $obj |Add-Member -MemberType noteproperty -Name "Last Logon" -Value $user.lastlogontime $obj |Add-Member -MemberType noteproperty -Name "Last Logoff" -Value $user.lastlogofftime $obj |Add-Member -MemberType noteproperty -Name "Last User" -Value $user.lastloggedonuseraccount $obj |Add-Member -MemberType noteproperty -Name "Email Address" -Value $mailinfo2.PrimarySMTPAddress $obj |Add-Member -MemberType noteproperty -Name "Company" -Value $mailinfo.Company $obj |Add-Member -MemberType noteproperty -Name "Deleted Item Count" -value $user.DeletedItemCount $obj |Add-Member -MemberType noteproperty -name "Deleted Item Size" -value $user.TotalDeletedItemSize.value.ToMB() $AllUsersEmail += $obj } $AllUsersEmail |Export-Csv c:\allusers.csv -NoTypeInformation -encoding default }




Kommentare