Exch­ange Daten­bank Quo­tas mit der PowerS­hell

Im letz­ten Blog­ein­trag haben wir uns ange­se­hen, wie man den Linux Befehlt grep mit der PowerS­hell abbil­den kann.  

In die­sem Blog­ein­trag komme ich zur ursprüng­li­chen Idee für die­sen Blog zurück: Die Unter­schiede zwi­schen der PowerS­hell auf einen deut­schen und einem eng­li­schen Ser­ver.

Auf­ge­fal­len ist es auf einem Exch­ange Ser­ver mit einem deut­schen Win­dows Ser­ver 2016 unter der Haube.

Auf einem Exch­ange Ser­ver sollte man immer Quo­tas auf die Daten­ban­ken set­zen, um ein Über­lau­fen der Volu­mes zu ver­hin­dern (unab­sicht­lich durch einen Mail Loop oder absicht­lich durch eine externe DoS Atta­cke).

Dafür müs­sen 3 Attri­bute gesetzt wer­den:

  • Issue­Warnin­g­Quota = Ab die­ser Mail­bx­größe wird der User täg­lich gewarnt
  • Pro­hi­bitS­end­Quota = Der User kann noch Mails emp­fan­gen, aber keine neuen ver­sen­den
  • Pro­hi­bitS­end­Re­cei­veQuota = Der User kann weder ver­sen­den, noch emp­fan­gen. Die Mail­box ist „voll“

Auf einem eng­lisch­spra­chi­gen Ser­ver geht das pro­blem­frei fol­gen­der­ma­ßen:

Set-​​MailboxDatabase –Iden­tity –Iden­tity EX16-​​DB01 –Issue­Warnin­g­Quota 4GB –Pro­hi­bitS­end­Quota 4.5GB –Pro­hi­bitS­end­Re­cei­veQuota 6GB

Auf einem deutsch­spra­chi­gen Ser­ver kommt dann fol­gende Feh­ler­mel­dung:

Der Wert von Eigen­schaft ‚Pro­hi­bitS­end­Quota‘ muss klei­ner als oder gleich dem Wert von Eigen­schaft ‚Pro­hi­bitS­end­Re­cei­veQuota‘ sein. Pro­hi­bitS­end­Quota: ’45 GB (48,318,382,080 bytes)‘, Pro­hi­bitS­end­Re­cei­veQuota: ‚6 GB (6,442,450,944 bytes)‘.   

 

Aha: die 4.5 GB wur­den als 45 GB inter­pre­tiert – und das geht nicht, da der Pro­hi­bitS­end­Quota Wert klei­ner als der Pro­hi­bitS­end­Re­cei­veQuota Wert sein muß.

Stimmt ja: In Der PowerS­hell Cul­ture Defi­ni­tion für Deutsch­land steht, dass Dezi­mal­zah­len mit Komma und nicht mit Punkt arbei­ten.

Ver­such 2:

Set-​​MailboxDatabase –Iden­tity –Iden­tity EX16-​​DB01 –Issue­Warnin­g­Quota 4GB –Pro­hi­bitS­end­Quota 4,5GB –Pro­hi­bitS­end­Re­cei­veQuota 6GB

Wie­der ein Feh­ler:

Die Argu­ment­trans­for­ma­tion für den Para­me­ter „Pro­hi­bitS­end­Quota“ kann nicht ver­ar­bei­tet wer­den. Der Wert „System.Collections.ArrayList“ vom Typ „System.Collections.ArrayList“ kann nicht in den Typ „Microsoft.Exchange.Data.Unlimited‚1[Microsoft.Exchange.Data.ByteQuantifiedSize]“ kon­ver­tiert wer­den

 

Der Befehl inter­pre­tiert die 4,5 als Zah­len­liste mit 2 Wer­ten = ein Array und das passt dann auch nicht.

Der Work­a­round: Ich erzeuge mir eine Varia­ble mit dem pas­sen­den Wert

$vier­ein­halb = 4.5 * 1GB

Die­ser Wert ist vom Daten­typ Dou­ble und stellt die 4,5 GB in Byte dar.

 

Jetzt kann ich feh­ler­frei mit­hilfe der Varia­ble $vier­ein­halb die Daten­bank Quo­tas set­zen

Set-​​MailboxDatabase –Iden­tity EX16-​​DB01 –Issue­Warnin­g­Quota 4GB –Pro­hi­bitS­end­Quota $vier­ein­halb –Pro­hi­bitS­end­Re­cei­veQuota 6GB

 

Im nächs­ten Blog­ein­trag beschäf­ti­gen wir uns damit, wie man den Linux bash Befehl uniq zum Ent­fer­nen von dop­pel­ten EIn­trä­gen mit der PowerS­hell umset­zen kann.

Was den­ken Sie?