quercus
Goto Top

Powershell Abfrage Exchange 2016

Hallo Zusammen,

ich bräuchte hier einmal hilfe, von den Exchange Powershell Usern

bei einer Abfrage mit Powershell

Get-MailboxStatistics -server SERVERNAME | Sort TotalItemSize -desc| ft displayname, {$_.TotalItemSize.Value.Tomb()} , {$_.TotalDeletedItemSize.Value.Tomb()}, storagelimitstatus  >c:\MailboxSize.txt

wird mir bei storagelimitstatus kein Wert mehr angezeigt für die einzelnen Postfächer ab Exchange 2016

wenn ich eine Abfrage mit
Get-Mailbox
starte bekomme ich folgendes angezeigt:
Name, Alias, Servername, ProhibitSendQuota

wie könnte ich erste Poweshell abfrage kombinieren das ich folgendes angeziegt bekomme:

Displayname, TotalItemsize, TotalDeletedItemSize, ProhibitSendQuota

mir wäre das wichtig damit ich über CSV ausgabe die Postfächer überwachen kann wer an sein sende limit kommt mit der Postfachgröße

Mfg Quercus

Content-ID: 5650275634

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

Ausgedruckt am: 26.11.2024 um 02:11 Uhr

Quercus
Quercus 26.01.2023 um 12:04:17 Uhr
Goto Top
folgendes gefunden

aber leider bringt mir die Abfrage dann für jedes Postfach den gleichen wert bei ProhibitSendQuota ob wohl eindeutig unterschiedliche werte hinterlegt sind bei der abfrage mit Get-Mailbox | Sort-Object ProhibitSendQuota

Get-Mailbox -PipelineVariable mailbox | Get-MailboxStatistics | sort TotalItemSize -Desc | select DisplayName,TotalItemSize,@{n='ProhibitSendQuota';e={$mailbox.ProhibitSendQuota}}  

vieleicht hat hier jemand einen anhaltspunkt wo der fehler liegen könnte

Mfg Quercus
Doskias
Doskias 26.01.2023 aktualisiert um 12:09:35 Uhr
Goto Top
Moin, du bist doch schon auf dem richtigen Weg.

Der Schlüssel zum Erfolg ist Get-MailboxFolderStatistics. Etwa so:
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn; 
$Log_Datei="c:\temp\Daten.csv"  
$Auswertung=@()   

foreach ($Mailbox in get-mailbox)
{
$Size=Get-MailboxFolderStatistics $Mailbox.alias | ? name -in ("Oberste Ebene des Informationsspeichers","Top of Information Store")| Select-Object FolderAndSubfolderSize  
$Auswertung+=[pscustomobject][ordered]@{Name=$Mailbox.alias;Size=$Size.FolderAndSubfolderSize;Limit=$Mailbox.ProhibitSendQuota}
}
$Auswertung |Sort-Object Size -Descending| Export-Csv -Path $Log_Datei -Encoding UTF8 -Delimiter ';' -NoTypeInformation  

Gruß
Doskias

Nachtrag. Sieht bei mir dann so aus in Spalte 2 und 3.
mailbox
Quercus
Quercus 26.01.2023 um 12:11:39 Uhr
Goto Top
HI Doskias,

mit deinem Script was bedeutet hier -like "Oberste Ebene des Informationsspeichers"

sorry so tief bin ich nicht im Powershell face-sad
Grup Quercus
Doskias
Doskias 26.01.2023 um 12:17:08 Uhr
Goto Top
Hab das Skript nochmal angepasst.

Wenn du Get-MailboxFolderStatistics ausführst, dann Listet er dir für jeden Ordner und Unterordner die einzelne Größe auf. Mit ? name -in ("Oberste Ebene des Informationsspeichers","Top of Information Store") nimmt er dann lediglich den Ordner, der entweder Oberste Ebene des Informationsspeichers oder Top of Information Store heißt. Je nachdem ob Englisch, Deutsch oder wie bei uns gemischt. Die Größe, die du erhältst, wenn du dich auf die oberste Ebene beschränkt, ist die Größe, die du in der Exchange-Konsole siehst, wenn du dir die Postfach-Eigenschaften anschaust.

-like nutze ich für die Prüfung von einem Wert
- in nutze ich für die Prüfung von mehreren Werten
Quercus
Quercus 26.01.2023 um 12:34:42 Uhr
Goto Top
Hi Doskias,

schaut gut aus face-smile

jetzt wäre nur die frage wie kann die angabe entweder nur in bytes oder nur GB umgesetzt werden,
siehe dein Bild, da ich sonst keine auswertung in Excel umsetzen kann mit Ergebnis freier Speicher face-wink
geht sowas überhaupt oder alternativ trennzeichen zwischen Gb und (Bytes)

MfG
Quercus
5175293307
5175293307 26.01.2023 aktualisiert um 12:37:46 Uhr
Goto Top
Zitat von @Quercus:
jetzt wäre nur die frage wie kann die angabe entweder nur in bytes oder nur GB umgesetzt werden,
siehe dein Bild, da ich sonst keine auswertung in Excel umsetzen kann mit Ergebnis freier Speicher face-wink
geht sowas überhaupt oder alternativ trennzeichen zwischen Gb und (Bytes)
Bidde
Powershell Exchange 2013 Mailbox größen inkl. E-Mailadressen
Doskias
Doskias 26.01.2023 um 14:04:15 Uhr
Goto Top
Zitat von @Quercus:
jetzt wäre nur die frage wie kann die angabe entweder nur in bytes oder nur GB umgesetzt werden,
siehe dein Bild, da ich sonst keine auswertung in Excel umsetzen kann mit Ergebnis freier Speicher face-wink
Ja geht. Da gibt es verschiedene Wege hin, je nachdem was du genau brauchst. Wurstel hat dir da ja schon einen Link zu geschickt.

geht sowas überhaupt oder alternativ trennzeichen zwischen Gb und (Bytes)
Wenn du es dir vorstellen kannst, dann kannst du es mit PowerShell auch automatisieren face-wink. Aber das ist jetzt in erster Linie Kosmetik und Verständnis. Zum einen sagst du nicht, was genau du brauchst. Da kommt dann immer wieder ein Oder. Ich kann es dir jetzt in Bytes, MB oder GB ausgeben. Wie, da steht im Link von Wurstel. Ja, ich könnte mein Skript oben anpassen, aber das ist nicht meine Art. Nimm es als Grund PowerShell zu lernen. Es hilft dir nicht, wenn ich dir hier den fertigen Code zur Verfügung stelle. Theoretisch kannst du mit den Daten auch direkt in PS berechnen lassen wie viel MB/GB noch frei sind bis das Limit erreicht ist oder die "Unlimited" Postfächer ausschließen. Mit dem Code von oben und dem wirklichen Willen zu verstehen was da passiert, wirst du das auch hinbekommen.

Gruß
Doskias
Quercus
Quercus 26.01.2023 um 14:44:30 Uhr
Goto Top
HI Doskias,

ich wurstel da nun seit 2 Stunden drann, leider ohne Erfolg face-sad

ausgabe in MB wäre super, Berechnung muss nicht in powershell sein das kann man bei bedarf in Excel dann.

nur hab ich leider heut hierfür keinen Kopf/Nerv mehr ich schau mir das am We in ruhe an

aber besten Dank für die Hilfe derweil

MfG
Quercus
Doskias
Doskias 26.01.2023 um 15:23:42 Uhr
Goto Top
Zitat von @Quercus:

HI Doskias,
ich wurstel da nun seit 2 Stunden drann, leider ohne Erfolg face-sad
Lernen dauert halt face-wink

ausgabe in MB wäre super, Berechnung muss nicht in powershell sein das kann man bei bedarf in Excel dann.
mailbox2
Das Bild erhältst du mit folgender Ergänzung:
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn; 
$Log_Datei="c:\temp\Daten.csv"  
$Auswertung=@()   

foreach ($Mailbox in get-mailbox)
{
$Size=Get-MailboxFolderStatistics $Mailbox.alias | ? name -in ("Oberste Ebene des Informationsspeichers","Top of Information Store") | Select-Object FolderAndSubfolderSize, @{Name="Size_GB";Expression={[math]::Round($_.FolderAndSubfolderSize/1GB,2)}}, @{Name="Size_MB";Expression={[math]::Round($_.FolderAndSubfolderSize/1MB,2)}}  
$Auswertung+=[pscustomobject][ordered]@{Name=$Mailbox.alias;Limit=$Mailbox.ProhibitSendQuota;Size=$Size.FolderAndSubfolderSize;"Size MB"=$size.Size_MB; "Size GB"=$size.Size_GB}  
}

$Auswertung |Sort-Object Size -Descending| Export-Csv -Path $Log_Datei -Encoding UTF8 -Delimiter ';' -NoTypeInformation  

$Auswertung | ft
Aufgabe für dich: unterschiede finden und verstehen face-wink
Tipp: Zeile 13 ist Optional und dient nur für den Screenshot

Gruß
Doskias
Quercus
Quercus 26.01.2023 um 18:15:49 Uhr
Goto Top
Hi Doskias,

nachdem ich nun weitere 3 stunden gerätzelt habe geb ich auf!

auch da deine letze abfrage bei mir keine Ergebnisse bei Size MB"=$size.Size_MB; "Size GB"=$size.Size_GB} in GB / MB ausgibt die bleiben leer...

sorry ich werd wohl powershell kurs belegen wenn ich Zeit habe... im Nächsten Urlaub.

denn weiteres Testen geht leider Zeitlich nicht... auch mit dem Befehl Select-Obejct wenn ich das auf ProhibitSendQuota anwende komm ich leider nicht zum ziel...

Gruß Quercus
Quercus
Lösung Quercus 26.01.2023 um 19:40:53 Uhr
Goto Top
so das funktioniert nun als TXT datei mit ausgabe in MB auch wenn es leider nicht in CSV ausgabe ist so kann ich das mit Excel öffnen face-smile

get-mailbox -ResultSize Unlimited |  
Sort TotalItemSize -desc| ft displayname, 
@{Name=’IssueWarningQuota (MB)’; expression= { $_.IssueWarningQuota.value.toMB()}},
@{Name=’ProhibitSendQuota (MB)’; expression= {$_.ProhibitSendQuota.value.toMB()}},
@{Name=’ProhibitSendReceiveQuota (MB)’; expression= { $_.ProhibitSendReceiveQuota.value.toMB()}}, 
@{Name= ‘TotalItemSize(MB)’; expression={ (Get-MailboxStatistics $_.Name).TotalItemSize.Value.toMB() }}, 
@{Name=’ItemCount’; expression={ (Get-MailboxStatistics $_.Name).ItemCount}} >Laufwerk\Ordner\dateiname.txt
Doskias
Doskias 27.01.2023 um 09:18:37 Uhr
Goto Top
Na komm. Der Weg zur CSV-Datei ist nicht mehr weit. Das schaffst du auch noch.
Celiko
Celiko 27.01.2023 um 11:22:57 Uhr
Goto Top
Moin,

das kann ggfs. helfen..?
statt: > .txt
teste mal: | export-csv
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell ...

VG
Quercus
Quercus 27.01.2023 um 11:38:47 Uhr
Goto Top
leider bei der abfrage nicht weil dann mekert Powershell mit ProhibitSendQuota (MB) das er kein cmdlet hätte face-big-smile

ebenso funktioniert das auch nur über direkt abfrage in der powershell nicht als aufruf mit ps1

so nun feierabend wochenend arbeit ruft face-wink

Gruß Quercus