Suche Code zum Vergleich von Größe eines öffentlichen Ordners in Exchange 2016
Hallo Admins,
ich habe einen Exchange Server 2016 Standard (auf einem Windows Server 2016 Standard), auf dem ein Öffentlicher Ordner "Sammelstelle" liegt. In regelmäßigen Abständen soll per Skript getestet werden, ob das Postfach eine Größe von 1000 MB überschreitet, woraufhin ein Skript ausgeführt werden soll. Ich habe dafür ein bei einem Exchange Server 2010 genutztes Powershell-Skript abgeändert, das jedoch nicht anspringt, wenn der Grenzwert erreicht ist.
Das Skript ist folgendes:
Sieht jemand von Euch auf Anhieb einen Fehler, den ich dabei gemacht haben könnte?
"$bob" liefert mir eine leere Zeichenkette. ICh vermute, dass davor schon ein Fehler liegen kann.
Viele Grüße,
Sinzal
ich habe einen Exchange Server 2016 Standard (auf einem Windows Server 2016 Standard), auf dem ein Öffentlicher Ordner "Sammelstelle" liegt. In regelmäßigen Abständen soll per Skript getestet werden, ob das Postfach eine Größe von 1000 MB überschreitet, woraufhin ein Skript ausgeführt werden soll. Ich habe dafür ein bei einem Exchange Server 2010 genutztes Powershell-Skript abgeändert, das jedoch nicht anspringt, wenn der Grenzwert erreicht ist.
Das Skript ist folgendes:
$size1=Get-PublicFolderStatistics -identity “\Sammelstelle” | select Name, ItemCount, LastModificationTime, TotalItemSize
[string]$bob = $size1.TotalItemSize.Value
"$bob"
[int]$bill = $bob.TrimEnd(" bytes)").Split("(")[1] # The bytes part of the array.
$bill = $bill/1mb # Convert into MB's
if ($bill -ge 1000) {mein-skript.bat}
exit
Sieht jemand von Euch auf Anhieb einen Fehler, den ich dabei gemacht haben könnte?
"$bob" liefert mir eine leere Zeichenkette. ICh vermute, dass davor schon ein Fehler liegen kann.
Viele Grüße,
Sinzal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 436735
Url: https://administrator.de/contentid/436735
Ausgedruckt am: 24.11.2024 um 17:11 Uhr
3 Kommentare
Neuester Kommentar
Wundert mich ehrlich gesagt nicht bei dem String-zu-Bytes-Umwandel-Gebastel.
Das Objekt .....TotalItemSize.Value hat Methoden zur direkten Umwandlung der Daten in uint64 Werte
Was das ganze zu dem hier zusammen schrumpft:
“\Sammelstelle”
Außerdem sind die Anführungszeichen um die "Identity" des Ordners nicht "konform".Das Objekt .....TotalItemSize.Value hat Methoden zur direkten Umwandlung der Daten in uint64 Werte
TypeName: Microsoft.Exchange.Data.ByteQuantifiedSize
Name MemberType Definition
---- ---------- ----------
CompareTo Method int CompareTo(Microsoft.Exchange.Data.ByteQuantifiedSize other), int IComparable.CompareTo(System.Object obj), int IComparab...
Equals Method bool Equals(System.Object obj), bool Equals(Microsoft.Exchange.Data.ByteQuantifiedSize other)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
RoundUpToUnit Method uint64 RoundUpToUnit(Microsoft.Exchange.Data.ByteQuantifiedSize+Quantifier quantifier)
ToBytes Method uint64 ToBytes()
ToGB Method uint64 ToGB()
ToKB Method uint64 ToKB()
ToMB Method uint64 ToMB()
ToString Method string ToString(), string ToString(string format), string ToString(string format, System.IFormatProvider formatProvider), st...
ToTB Method uint64 ToTB()
if ((Get-PublicFolderStatistics "\Sammelstelle").TotalItemSize.Value.toMB() -ge 1000){
start cmd -ArgumentList '/c "D:\Ordner\mein-skript.bat"' -Wait -NoNewWindow
}
Jepp, du verwendest eine Umgebung die die Exchange Objekte serialisiert, in der gibt es die Methoden nicht. Verwende die original EMS.