Search-​​Mailbox und das Datums­for­mat für Süd­ko­rea

Im letz­ten Blog­ein­trag haben wir uns die Auf­ga­ben­pla­nung mit der PowerS­hell ange­se­hen.

In die­sem Blog­ein­trag geht es seit lan­gem mal wie­der um die ursprüng­li­che Grund­idee des Blogs: Die Unter­schiede der PowerS­hell in den ver­schie­de­nen Sprach­pa­ke­ten.

Zuerst ein per­sön­li­cher Wunsch: Ich hoffe, dass der Krieg gegen die Ukraine  bald vor­bei ist und wie­der Frie­den in Europa herrscht.

Das Thema:

Bei einem Kun­den bin ich über einen Exch­ange Ser­ver gestol­pert, der in Süd­ko­rea läuft und mit dem süd­ko­rea­ni­schen Sprach­pa­ket instal­liert wurde.

Die Exch­ange PowerS­hell ist bekannt dafür, dass bei man­chen Befeh­len ein Mix aus Eng­lisch und der jeweils instal­lier­ten Spra­che genutzt wer­den muss.

Kon­kret ging es hier darum, in einem Post­fach gesen­dete und Emp­fan­gene E-​​Mails älter 2 Jahre zu löschen.

Der Befehl für eine sol­che Suche heißt Search-​​Mailbox.

Grob so:

Search-​​Mailbox –Iden­tity „Mail­box Name“ –Sear­ch­Query ‚Hier wird gefil­tert‘ –Dele­te­Con­tent –Force

 

Auf einem Eng­li­schen Ser­ver geht das noch rela­tiv ein­fach. Das Datums­for­mat lau­tet Monat/​Tag/​Jahr

Search-​​Mailbox –Iden­tity „Mail­box Name“ –Sear­ch­Query ‚received<=03/25/2020 AND sent<=03/25/2020‘ –Dele­te­Con­tent –Force

 

Der Such­fil­ter „Sear­ch­query“ nutzt die Key­word Query Lan­guage (KQL)

Diese wird recht ver­steckt von Micro­soft für die Exch­ange PowerS­hell hier beschrie­ben und noch detail­lier­ter hier beschrie­ben.

Bei einem in Deutsch auf­ge­setz­ten Exch­ange Ser­ver 2013 wird es dann schon kom­pli­zier­ter.

Die Sear­ch­query hätte näm­lich gerne ein deut­sches Datum und deut­sche Such­be­griffe – den Ope­ra­tor „AND“ aber wei­ter­hin auf Eng­lisch

So sieht das dann aus:

Search-​​Mailbox –Iden­tity „Mail­box Name“ –Sear­ch­Query ‚“Emp­fan­gen<= 03.05.2020 AND Gesen­det<= 03.05.2020‘ –Dele­te­Con­tent –Force

 

Ganz kom­pli­ziert wird des dann auf einem süd­ko­rea­ni­schen Exch­ange Ser­ver.

Hier war ein Mix aus Eng­lisch und Süd­ko­rea­nisch gefor­dert.

Aber wie finde ich raus, wie das Datum 25.03.2022 auf Süd­ko­rena­nisch dar­ge­stellt wird?

Die beste­hende Sprach­kul­tur einer Kon­sole kann ich mit fol­gen­dem Befehl sehen

Get-​​Host | FL Cur­rent­Cul­ture

 

Die mög­li­chen „glo­ba­len“ Sprach­ein­stel­lun­gen der PowerS­hell kann ich mir unab­hän­gig von der PowerS­hell Ver­sion am ein­fachs­ten über die pas­sende .NET Klasse anzei­gen las­sen

[System.Globalization.CultureInfo]::GetCultures([System.Globalization.CultureTypes]::AllCultures)

 

Ein .count zeigt 859 ver­schie­dene Sprach­ver­sio­nen (unsere Erde ist ein­fach sehr mul­ti­kul­tu­rell)

 

Und jetzt fil­tere ich nach „Korea

 [System.Globalization.CultureInfo]::GetCultures([System.Globalization.CultureTypes]::AllCultures)  | where {$_.displayname –like „*Korea*“}

Das Ergeb­nis: Korea (Korea) – es gäbe auch Korea (Nord­ko­rea) – hat das Sprach­kür­zel ko-​​KR

 

Mit einer ande­ren Methode aus der .NET Klasse lese ich das korea­ni­sche Datums­kurz­for­mat aus.

([System.Globalization.CultureInfo]::GetCultureInfo(„ko-KR“)).DateTimeFormat.ShortDatePattern
yyyy-​​MM-​​dd

D.h. das Datums­kurz­for­mat lau­tet 4 Stel­len für das Jahr – 2 Stel­len für dem Monat – 2 Stel­len für den Tag: 2022-​​03-​​25

 

Die Such­ab­frage muss also fol­gen­der­ma­ßen aus­se­hen bei einem eng­li­schen Exch­ange Ser­ver mit korea­ni­schen Sprach­pa­ket:

Search-​​Mailbox –Iden­tity „Mail­box Name“ –Sear­ch­Query ‚received<=2020 – 03-​​25 AND sent<=2020 – 03-​​25‘ –Dele­te­Con­tent –Force

 

Wenn ihr mit dem Search-​​Mailbox Befehl arbei­ten müsst, dann ist lei­der manch­mal her­um­pro­bie­ren ange­sagt mit ver­schie­de­nen Sprach­ver­sio­nen in der Search Query.

Viel Erfolg 🙂

Was den­ken Sie?