Exchange 2013 Powershell Posfachgröße
Hallo zusammen,
ich habe da mal eine Frage.
Wurde gerne auf meine Exchange Server 2013 per Powershellscript alle User ausgeben.
Als Details sollen noch die OU der User und die Postfachgröße mit angegeben werden und in eine Excel Datei exportiert werden.
Hat jemand ne idee wie ? oder ein Tool dafür?
Mit freundlichen Grüßen,
Fisi
ich habe da mal eine Frage.
Wurde gerne auf meine Exchange Server 2013 per Powershellscript alle User ausgeben.
Als Details sollen noch die OU der User und die Postfachgröße mit angegeben werden und in eine Excel Datei exportiert werden.
Hat jemand ne idee wie ? oder ein Tool dafür?
Mit freundlichen Grüßen,
Fisi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 238522
Url: https://administrator.de/forum/exchange-2013-powershell-posfachgroesse-238522.html
Ausgedruckt am: 01.05.2025 um 23:05 Uhr
14 Kommentare
Neuester Kommentar
Hallo fisi, Willkommen auf Administrator.de!
Könntest du so in einer EMC machen:
Das Ergebnis wird dann in einer CSV-Datei gespeichert.
Wenn man noch mehr Infos zum User ausgeben möchte kann man das ganze auch ausgehend von get-aduser machen und im Select noch die zusätzlich benötigten Felder angeben:
Grüße Uwe
Könntest du so in einer EMC machen:
Import-Module ActiveDirectory
$csvfile = "C:\MailboxStatistik.csv"
Get-Mailbox | Get-MailboxStatistics | ?{$_.ObjectClass –eq "Mailbox"} | Sort TotalItemSize –Descending | select DisplayName, @{n="Mailboxgröße(MB)";e={$_.TotalItemSize.Value.ToMB()}},@{n="OU";e={(get-aduser -filter "DisplayName -eq '$($_.DisplayName)'").DistinguishedName.Split(",",2)[1]}} | export-csv $csvfile -NoType -Encoding UTF8
Wenn man noch mehr Infos zum User ausgeben möchte kann man das ganze auch ausgehend von get-aduser machen und im Select noch die zusätzlich benötigten Felder angeben:
Import-Module ActiveDirectory
$csvfile = "C:\MailboxStatistik.csv"
get-aduser -Filter "Enabled -eq 'True'" -properties msExchMailboxGuid | ?{$_.msExchMailboxGuid -ne $null} | select Name,SamAccountName,@{n="Postfachgröße(MB)";e={(get-MailboxStatistics $_.SamAccountName -ErrorAction SilentlyContinue).TotalItemSize.Value.toMB()}},@{n="OU";e={$_.DistinguishedName.Split(",",2)[1]}} | export-csv $csvfile -NoType -encoding UTF8
Grüße Uwe
Also hier gehen beide Scripte einwandfrei, mache das ja nicht zum ersten mal. Du musst natürlich wie schon erwähnt das ganze in einer "Exchange Management Console" ausführen. Die CSV-Datei musst du in Excel noch auf Spalten verteilen wenn als Trenner einer Komma verwendet wird (Text-Import-Wizard). Alternativ füge folgenden Parameter zu Export-CSV hinzu -Delimiter ";" damit ein Semikolon als Spaltentrenner fungiert, damit sollte Excel die Spalten direkt beim Öffnen erkennen und verteilen.
Grüße Uwe
leider steht mir dort das AD Modul nicht zur Verfügung
das ist halt Voraussetzung damit die OU des Users extrahiert werden kann. Man kann das zwar auch anders machen (z.B. mit (dsquery -name "Max Mustermann").Split(",",2)[1]), aber diese minimalen Voraussetzungen sollten doch realisierbar sein ..Grüße Uwe
Stichwort RSAT (Remote Server Administration Tools) / auf einem Server 2012(R2) so installiert:
http://technet.microsoft.com/de-de/library/bb691354%28v=exchg.150%29.as ...
Dann steht dir das Modul zur Verfügung.
Grüße Uwe
Install-WindowsFeature RSAT-ADDS
Dann steht dir das Modul zur Verfügung.
Grüße Uwe
Weitere Calculated Property ... Beachte hier das ein User mehrere Devices haben kann, deswegen die Device-Informationen als Liste in einer Spalte (Bei mehr als einem Device geht das mit einzelnen Spalten für die Infos des Geräts nicht mehr)
Import-Module ActiveDirectory
$csvfile = "C:\MailboxStatistik.csv"
get-aduser -Filter "Enabled -eq 'True'" -properties msExchMailboxGuid | ?{$_.msExchMailboxGuid -ne $null} | select Name,SamAccountName,@{n="Postfachgröße(MB)";e={(get-MailboxStatistics $_.SamAccountName -ErrorAction SilentlyContinue).TotalItemSize.Value.toMB()}},@{n="OU";e={$_.DistinguishedName.Split(",",2)[1]}},@{n="Mobile-Devices";e={(Get-MobileDeviceStatistics -Mailbox $_.SamAccountName -EA SilentlyContinue | %{"$($_.Identity);$($_.DeviceModel);$($_.LastSuccessSync)"}) -join "`n"}} | export-csv $csvfile -NoType -encoding UTF8
Jetzt werden jedoch noch Werte wie, Name, SamAccountName und Postfachgröße in einer Spalte in Excel angezeigt. Kann ich das noch irgendwie ändern?
Sicher, ein deutsches Excel verwendet beim direkten öffnen einer CSV per Default das Semikolon als Trenner und nicht das Komma, deswegen musst du das als Delimiter bei Export-CSV explizit angeben, dann erkennt Excel die Spalten automatisch.Export-Csv $csvfile -NoType -Delimiter ";" -Encoding UTF8
Es werden jedoch alle Daten aus dem Befehl Get-Mobile DeviceStatistics in einer Spalte ausgegeben, kann man das noch splitten?
Hab ich doch oben geschrieben, das wurde extra so gemacht, das ginge nur wenn die User nur jeweils ein einziges Gerät hätten, bei mehreren kann das ja Prinzipbedingt so nicht funktionieren (denk mal genau drüber nach dann machts auch bei dir KlickKann es hier im Moment nicht testen, da unterwegs ... Schau ich mir dann noch mal an ...
Vermutlich musst du hier anstatt $_.SamAccountName den Alias der Mailbox des Users bei Get-MobileDevice..... verwenden. Oder du hast die Zellen in Excel einfach nicht größer gezogen, da die Devices per Zeilenumbruch getrennt sind.