Můj první článek na tomto blogu
Nedávno jsem se setkal s prosbou zda je možno udělat report nad funkcionalitou antispamu Exchange a trošku jsem narazil na problém, jak dostat nějaký inteligentní formát v rámci, kterého bych mohl hezky a přehledně vidět:
- Kolik bylo zpracováno zpráv
- Jaký agent provedl zablokování zprávy
- Nějaké další informace k zablokování zprávy antispamem
Data jsou v Exchange na spoustě míst a je možno se k nim dostat různými způsoby a to buď pomocí Get-MessageTracking, z log souboru, ze kterého čte Message Tracking a nebo pomocí Get-AgentLog, což mi přišlo asi nejlepší pro sestavení zdroje dat.
Napadlo mě pro zpracování výstupu použít Excel, ale stejně dobře a možná i lépe to jde zpracovat například v PowerBI for Desktop.
Výstup by mohl vypadat nějak takto (Excel):
No a nebo by mohl vypadat třeba takto (PowerBI for Desktop):
Jelikož pracuji s reálnými daty, tak jsem musel příjemce a odesílatele rozmazat, aby mě pak někdo nenapadl za únik informací a emailových adres.
Excel má jednu velkou výhodu a to, že je možno připravit automatické makro, které data vzdáleně načte ze serveru. Data potřebujeme načíst do nějakého CSV souboru a k tomu nám poslouží právě Exchange Management Shell a pomocí příkazu vytvoříme CSV. Důležitý je koncový delimiter v daném přikladu, jelikož výstupní data mohou obsahovat čárky a právě čárka je výchozím delimiterem pro příkaz Export-CSV.
Get-AgentLog -StartDate „1/1/2016“ | Export-Csv -Path C:\Users\<username>\Desktop\Report_Antispam.csv -Encoding Unicode -Delimiter „|“
Toto je nutné dělat každý týden třeba pomocí naplánované úlohy a vytahovat data do adresáře, odkud je mohu pomocí excelového makra načítat.
Nicméně i na úrovni excelu a s jedno týdenním intervalem mám v datovém zdroji celkem 5000 řádků, což znamená, že mou organizací přešlo skrze antispam 5000 zpráv za týden což odpovídá cca 6 osobám ve firmě.
Proto jsem v rámci excelu vytvořil list s názvem „Config“ do kterého jsem v rámci jedné buňky zapsal cestu k danému adresáři s daty
A do konzole Microsoft Visual Basic for Application zadám toto makro:
Toto makro načte automaticky data ze zadané cesty a uloží do samostatného listu s názvem „Source“, ze kterého vytvořím následně kontingenční tabulku a nebo použiji data pro PowerBI for Desktop.
Ještě pro lepší třídění je nutno doplnit na konec 2 slouce do daného excelového souboru v listu „Source“ vzorec pro výpočet data a času z hodnoty „Timestamp“.
Například pomocí vzorců:
- =DATUM(ROK(D2);MĚSÍC(D2);DEN(D2))
- =ČAS(HODINA(D2);MINUTA(D2);0)
A máme hotovo. Tak hodně štěstí a kdyby vám něco nefungovalo tak mi napište do komentářů a já se vám pokusím poradit.
PS: Exchange umožňuje načítat spoustu různých dat a ty následně zpracovávat pomocí inteligentních nástrojů