Exchange 2010 Administrator Audit Log – skrypt

Do tej pory opisaliśmy jak włączyć audyt operacji administratorów na Exchange 2010 oraz jak można w łatwy sposób przeszukiwać logi wykonanych operacji.

Jak włączyć Administrator Audit Log opisywaliśmy tutaj:

Exchange 2010 Administrator Audit Log – konfiguracja

Natomiast jak przeszukiwać logi opisaliśmy tutaj:

Exchange 2010 Administrator Audit Log – przeszukiwanie logów

 

Teraz skupimy się na zautomatyzowaniu zbierania logów z operacjami wykonywanymi przez administratorów Exchange.

Podczas konfiguracji Administrator Audit Log określaliśmy przez jaki czas będą przechowywane logi w ukrytej skrzynce arbitration mailbox.

Polecenie którym konfigurujemy jak długo logi mają być przetrzymywane przedstawiamy poniżej:

Set-AdminAuditLogConfig -AdminAuditLogAgeLimit 60.00:00:00

 

Ilość dni definiujemy poprzez zapis: dd.hh:mm:ss czyli w powyższym przykładzie jest to 60 dni.

Continue reading

Grupy dystrybucyjne znalezienie zagnieżdżonych grup

Ostatnio opisywaliśmy jak otrzymać listę wszystkich skrzynek znajdujących się w grupie dystrybucyjnej która posiada zagnieżdżone grupy.

 

Niestety za pomocą opisywanej metody nie możecie uzyskać listy grup znajdujących się w grupie dystrybucyjnej.

Aby taka listę otrzymać, musicie napisać mniej lub bardziej skomplikowany skrypt w powershell lub skorzystać z dodatku Quest Powershell Module for Active Directory.

 

Po zainstalowaniu modułu Quest, uruchamiamy konsole powershell i wpisujemy:

add-PSSnapin  quest.activeroles.admanagement

Continue reading

Exchange 2010 statystyka wysyłanych emaili – messagetrackinglog

emailOstatnio pisaliśmy o tym jak znaleźć wszystkich odbiorców danego emaila:

Exchange MessageTrackingLogs wyszukanie wszystkich odbiorców emaila

 

Teraz przedstawimy skrypt który pomoże nam wygenerować statystykę wysyłanych emaili.

Niemniej jednak nie interesuje nas ilość wszystkich wysyłanych emaili, ich rozmiar, tylko skupimy się na emailach wysyłanych poza naszą organizację Exchange i uzyskamy informację o tym z jakich adresów zostały wysłane, z jakim tematem, ile było tych emaili i do ilu odbiorców zostały przesłane.

Skrypt ten umożliwia uzyskanie informacji o adresach email które wysyłają najwięcej wiadomości na zewnątrz.
Jego działanie oparte jest na sprawdzeniu logów transportowych (TransportLogs) umieszczonych na serwerach Exchange z rolami Hub Transport.

Po otrzymaniu wyników skryptu możemy skorzystać ze skryptu z poprzedniego posta i dowiedzieć się do kogo została wysłana wiadomość.

 

Poniżej przedstawiamy kolejne fragmenty skryptu z opisem działania:

Pierwszy fragment zawiera:

  • definicje obiektów wynikowych z raportami
  • ścieżek do plików przechowujących wszystkie otrzymane wyniki
  • ustawienia do wysłania raportu emailem
  • $MAX_Recipients – liczba odbiorców powyżej której wygenerowany zostanie email z raportem

 

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
Set-AdServerSettings -ViewEntireForest $True

Function New-Array {,$args}

$Report = New-Array
$Report_SMTP = New-Array
$Rep_sum = New-Array
$Rep_SMTP_sum = New-Array

$data = $($((get-date).adddays(-1)).ToString('yyyy.MM.dd'))

#paths to output files
$Out_Rep_file = "d:\Scripts\Logs\Stats\msg_stat_out_$data.csv"
$Out_Rep_sum_file = "d:\Scripts\Logs\Stats\msg_stat_out_sum_$data.csv"

#files with emails with smtp traffic
$Out_Rep_SMTP_file = "d:\Scripts\Logs\Stats\msg_stat_smtp_out_$data.csv"
$Out_Rep_SMTP_sum_file = "d:\Scripts\Logs\Stats\msg_stat_smtp_out_sum_$data.csv"
#file with report attached to email (emails recipients grater than $MAX_Recipients)
$Email_HTML_File = "d:\Scripts\Logs\Stats\Report_outgoing_emails_$data.htm"

#settings for email with report
$mail_from = "exchangereport@domain.com"
$mail_to = "admin@domain.com"
$mail_smtp_host = "smtpserver.domain.local"
$mail_subject = "Report outgoing emails $data"

#variable that defines the threshold for recipients to write to email report
$MAX_Recipients = 100

Continue reading

Exchange MessageTrackingLogs wyszukanie wszystkich odbiorców emaila

Od czasu do czasu potrzebujemy otrzymać listę wszystkich osób do których został wysłany email o danym temacie.

Listę odbiorców w dość prosty sposób możemy uzyskać z transaction logs które umieszczone są na serwerach Exchange z rolami HT.

Oczywiście wcześniej musicie skonfigurować swoje środowisko tak aby logi te były przechowywane przez pare dni na serwerach.

Poniższy skrypt zwraca listę odbiorców, do których został wysłany email o temacie „Test email”, przy czym interesuje nas czas wysłania ostatni dzień.

Ilość dni określamy w zmiennej $DAYS natomiast poszukiwany temat wpisujemy do $SUBJECT.

Skrypt wygląda jak poniżej:

Continue reading

Exchange Lista uprawnień do folderów skrzynki Get-MailboxFolderPermission skrypt

Jeżeli potrzebujecie szybko dowiedzieć się jakie uprawnienia nadane są do poszczególnych folderów oraz podfolderów skrzynki użytkownika możecie skorzystać ze skryptu który prezentujemy poniżej.

W skrypcie wykorzystane jest polecenie Get-MailboxFolderPermission w powiązaniu z Get-MailboxFolderStatistics.

Dzięki Get-MailboxFolderStatistics uzyskamy listę wszystkich folderów oraz podfolderów znajdujących się w skrzynce.
Następnie dzięki Get-MailboxFolderPermission uzyskamy informacje na temat uprawnień przypisanych do danego folderu.

$MBXFolders = @()
$MBXFoldersCorr = New-Object System.Collections.ArrayList
$Permissions = @()
$MBX_tocheck = "JSmith"
$MBXFolders = Get-MailboxFolderStatistics $MBX_tocheck | select folderpath
foreach ($item in $MBXFolders) {
 $temp = $item.FolderPath
 $temp = $Temp.Replace("/","\")
 $MBXFoldersCorr.Add($temp) | out-null
}
foreach ($item in $MBXFoldersCorr) {
Try {
 $MailboxFolder = $MBX_tocheck + ":" + $item
 $Permissions += $(Get-MailboxFolderPermission $MailboxFolder -ErrorAction Stop | Select-Object FolderName,User,AccessRights)
 }
Catch {
 $ReturnedObj = New-Object PSObject
 $ReturnedObj | Add-Member NoteProperty -Name "FolderName" -Value $item
 $ReturnedObj | Add-Member NoteProperty -Name "User" -Value "*Not Applicable*"
 $ReturnedObj | Add-Member NoteProperty -Name "AccessRights" -Value "*Not Applicable*"
 $Permissions += $ReturnedObj
 Continue
 }
}
$Permissions | Sort-Object FolderName,User | Format-Table

 

Skrzynkę która chcecie sprawdzić musicie podać w zmiennej $MBX_tocheck.

Jako wynik działania skryptu otrzymacie liste z trzema kolumnami w których znajdziecieFolderName, User and AccessRights (uprawnienia).

 

 

Wyszukiwanie wiadomości skrypt GUI Message Tracking Log

Jeżeli ktoś często przegląda logi Message-Tracking za pomocą poleceń powershella lub narzędzia Message Tracking, to może zainteresuje się skryptem, który niedawno pojawił się na stronach TechNet.

Skrypt napisany jest w PowerShell-u niemniej jednak posiada nakładkę graficzną GUI.

Dzięki zastosowaniu skryptu mamy możliwość wyszukiwania określonych wiadomości na wszystkich serwerach z rolą HT, a nie tylko na jednym w danym wyszukiwaniu.

Możemy określić nadawcę, odbiorcę, zakres dat do przeszukania oraz EventID.

Continue reading