fisi77
Goto Top

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

Content-Key: 238522

Url: https://administrator.de/contentid/238522

Printed on: April 16, 2024 at 04:04 o'clock

Member: colinardo
colinardo May 19, 2014, updated at May 20, 2014 at 07:59:54 (UTC)
Goto Top
Hallo fisi, Willkommen auf Administrator.de!
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  
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:
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
Member: fisi77
fisi77 May 20, 2014 at 13:17:23 (UTC)
Goto Top
Hallo Uwe,
Danke für die schnelle Antwort!
Habe direkt beide Befehle getestet.
Der 1. funktioniert leider nicht. Ich habe versucht direkt auf meinem mailboxserver das Script laufen zu lassen leider steht mir dort das AD Modul nicht zur Verfügung.

Das 2. Script habe ich dann auf dem DC laufen lassen
>> Export der User funktioniert auch nur zeigt er mir in der Excel keine Speichergrößen an.

Kann man auch die einzelnen Details die man abfragt eine eine Eigene Spalte exportieren. Momentan liegen alle auf einer Spalte.

Mit freundlichen Grüßen,
Kai
Member: colinardo
colinardo May 20, 2014 updated at 13:54:19 (UTC)
Goto Top
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.

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
Member: fisi77
fisi77 May 20, 2014 at 14:08:11 (UTC)
Goto Top
Hallo Uwe,
Danke für die Info.
Deine Scripte habe ich auch nicht angezweifelt;)
Die Scripte führe ich natürlich in der Exchange Mangement Console aus. Jetzt frage ich mich doch wie du das ActiveDirectory Modul importierst bekommst.
Das klappt auf meinen Front End bzw. Back End Servern nicht. Lediglich auf dem DC.
Führe ich den Befehl "get-module -listavailable" auf den Front bzw. Back End Servern aus wird mir auch kein Modul für die Active Directory angezeigt. Hast du eine Idee wie ich das eingefügt bekomme?

Mit freundlichen Grüßen,
Kai
Member: colinardo
Solution colinardo May 20, 2014, updated at Jul 03, 2015 at 10:41:32 (UTC)
Goto Top
Stichwort RSAT (Remote Server Administration Tools) / auf einem Server 2012(R2) so installiert:
Install-WindowsFeature RSAT-ADDS
http://technet.microsoft.com/de-de/library/bb691354%28v=exchg.150%29.as ...
Dann steht dir das Modul zur Verfügung.

Grüße Uwe
Member: fisi77
fisi77 Jul 03, 2015 at 11:58:34 (UTC)
Goto Top
Hallo Zusammen,
das Script läuft bei mir Super!
Mittlerweile bin ich auf eine Erweiterung gestoßen und möchte für jeden User die Mobilen Geräte mit auflisten.
Den Befehl mit folgenden Param. habe ich dazu auch schon:

$UserList | foreach { Get-MobileDeviceStatistics -Mailbox $_} | FT Identity, DeviceModel, LastSuccessSync

Momentan führe ich das in einem einzelnen Script aus. Wurde das ganze jedoch gerne in eine *.csv exportieren.

Meine Version zur Zusammenführung der Befehle funktioniert leider nicht.
01.
Import-Module ActiveDirectory
02.
$csvfile = "C:\MailboxStatistik.csv"
03.
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]}} {( Get-MobileDeviceStatistics -Mailbox )} | FT Identity, DeviceModel, LastSuccessSync | export-csv $csvfile -NoType -encoding UTF8

Hat vielleicht jeman eine Idee, wie ich den Befehl richtig mit Implementieren kann?

Mfg,
fisi
Member: colinardo
colinardo Jul 03, 2015 updated at 13:24:39 (UTC)
Goto Top
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  
Member: fisi77
fisi77 Jul 03, 2015 at 14:09:49 (UTC)
Goto Top
Super!!! Das so sollte die Anzeige aussehen.
Jetzt werden jedoch noch Werte wie, Name, SamAccountName und Postfachgröße in einer Spalte in Excel angezeigt.
Kann ich das noch irgendwie ändern?
Member: colinardo
colinardo Jul 03, 2015 updated at 14:21:56 (UTC)
Goto Top
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  
Grüße Uwe
Member: fisi77
fisi77 Jul 03, 2015 at 14:45:29 (UTC)
Goto Top
Ah ja. natürlich. Den hab ich hinten ganz vergessen - sorry.
Danke für deine Hilfe!
Es werden jedoch alle Daten aus dem Befehl Get-Mobile DeviceStatistics in einer Spalte ausgegeben, kann man das noch splitten?
Außerdem scheint es so, als ob jetzt nur noch ein Active Sync Gerät gelistet wird und nicht alle die verfügbar sind.
Member: colinardo
colinardo Jul 03, 2015 updated at 15:00:37 (UTC)
Goto Top
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 Klickface-wink !)

Kann 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.
Member: fisi77
fisi77 Jul 06, 2015 at 07:32:49 (UTC)
Goto Top
Ja, natürlich stimmt.
Es sind auch alle Geräte verfügbar.
Super Danke!
Member: fisi77
fisi77 Jul 31, 2015 at 13:46:45 (UTC)
Goto Top
Ist es denn möglich, das ich alle Geräte in einer Zeile schreibe?
Also wenn ich eine Ausgabe von einem Benutzer mit 3 Mobile Devices, werden ja die Gerät in einer Spalte alle 3 Untereinander Dargestellt.
Kann ich diese anstatt untereinander hintereinanderschreiben und z.B. durch ein Komma trennen? Oder die jeweiligen Strings per Anführungszeichen trennen?
Member: colinardo
colinardo Jul 31, 2015 updated at 13:51:44 (UTC)
Goto Top
Einfach bei dem Code hier von oben das gewünschte Zeichen für eine Trennung angeben. Im Moment ist das ein `n für einen Zeilenumbruch
-join "`n"
also z.B. nach
-join ","