Exchange 2010 ilosc urzadzen mobilnych uzytkownikow

W systemach Exchange Server każdy z użytkowników może podłaczyć się do swojej skrzynki za  pomocą urządzeń mobilnych.

Problem w tym, że czasami nie może zwłaszcza jeżeli często zmienia urządzenia mobilne.

Przyczyną tego jest przekroczenie maksymalnej ilości dozwolonych urządzeń które mogły być podłączone do określonej skrzynki.
Wartość ta ustawiana jest za pomocą ThrottlingPolicy w parametrze EASMaxDevices

Aby sprawdzić bieżące ustawienia w waszym środowisku wystarczy w Exchange Management Shell wpisać:

Get-ThrottlingPolicy | select name, EASMaxDevices, EASMaxConcurrency

 

W wyniku tego zapytania otryzmamy liste wszystkich dostępnych ThrottlingPolicy które są skonfigurowane z informacją o maksymalnej ilości urzadzeń mobilnych które mogą być przypisane dla skrzynki korzystającej z określonej ThrottlingPolicy, dodatkowo wyświetliliśmy też informacje na temat maksymalnej ilości urządzeń (połączeń), które mogą być wykonane jednocześnie do skrzynki.

easmaxdevices

  Continue reading

Print Friendly

Exchange 2010 lista skrzynek na które dawno nikt się nie logował

Poniżej prezentujemy krótki skrypt, który zwróci listę skrzynek na które dawno nikt się nie logował.

Datę dla której chcecie znaleźć skrzynki możecie określić za pomocą zmiennej $Days.
Domyślnie jest to 90 dni, czyli zwrócone zostaną wszystkie skrzynki na których ostatnie logowanie nastąpiło dawniej niż 90 dni temu.

 

Function New-Array {,$args}
$Report = New-Array

$days = "90"

$date_last = (Get-Date).AddDays(-$days) 
$mailboxes = Get-Mailbox -server mxmbx01 -ResultSize unlimited

foreach($mailbox in $mailboxes) 
{ 
  $mbx_DN = $mailbox.DistinguishedName 
  $email = $mailbox.PrimarySmtpAddress.toString()
  $Stat = Get-MailboxStatistics -Identity $mbx_DN | Where-Object {$_.lastLogonTime -lt $date_last} | Select-Object DisplayName, totalitemsize,LastLogonTime

 if ($Stat){
  $tmp = New-Object System.Object
  $tmp | Add-Member -type NoteProperty -name DisplayName -value $($stat.DisplayName)
  $tmp | Add-Member -type NoteProperty -name Email -value $email
  $tmp | Add-Member -type NoteProperty -name TotalSize_MB -value $($stat.TotalitemSize.value.ToMB())
  $tmp | Add-Member -type NoteProperty -name LastLogon -value $($stat.LastLogonTime)
  $Report += $tmp
 }
}
$Report | Export-Csv D:\Scripts\lastlogon_report.csv

 

Jako wynik działania skryptu otrzymacie plik .csv z wpisanymi DisplayName, adres email, TotalSize w MB, oraz czas ostatniego logowania do skrzynki.

 

 

Print Friendly

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

Print Friendly

Grupy dystrybucyjne – lista wszystkich użytkowników w grupie

Jak możemy uzyskać listę skrzynek należących do danej grupy dystrybucyjnej ?
W prosty sposób, poprzez wykorzystanie konsoli EMC i sprawdzenie kto jest członkiem grupy, lub poprzez wykorzystanie powershell w konsoli EMS i użycie polecenia:

Get-DistributionGroupMember Test_Group

 

Dzięki temu uzyskamy listę obiektów znajdujących się w grupie, zarówno skrzynek, kontaktów, jak i innych grup.

I tutaj pojawia się problem, ponieważ jeżeli dana grupa dystrybucyjna zawiera w sobie kolejna, a ta znowu kolejna itd to jak możemy uzyskać listę wszystkich osób które otrzymają emaila po wysłaniu wiadomości na grupę dystrybucyjną ?

Niestety korzystając tylko z polecenia Get-DistributionGroupMember nie uzyskamy takiej informacji.

Polecenie to zwraca jedynie obiekty znajdujące się bezpośrednio w grupie, bez zagnieżdżeń.

W takim przypadku musimy skorzystać poleceń powershell dostępnych dla Active Directory.

W tym celu w konsoli EMS importujemy moduł poleceń Active Directory jak poniżej:

import-module ActiveDirectory

Continue reading

Print Friendly

Exchange 2010 ilosc polaczen przez OWA

Aby dowiedzieć się jak wykorzystywane jest nasze OWA (Outlook Web Applications) przez użytkowników, możemy zastosować dwa poniższe rozwiązania.

W każdym środowisku Microsoft Exchange jeżeli mamy włączoną usługę OWA na skrzynkach użytkowników, możemy sprawdzić jak wiele osób tak naprawdę wykorzystuje dostęp za pomocą OWA do swoich skrzynek.

Pierwsze rozwiązanie to sprawdzenie ilości bieżących połączeń do skrzynek za pomocą OWA.

W tym celu musimy uruchomić poniższy skrypt, wywołując Get-CASActiveUsers dla wszystkich serwerów, które udostępniają połaczenia OWA czyli przeważnie wszystkie serwery z rolami CAS.

Skrypt wygląda jak poniżej:

Continue reading

Print Friendly

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

Print Friendly

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

Print Friendly

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).

 

 

Print Friendly

Exchange 2010 informacja o rozmiarze skrzynki

Informację o ilości miejsca które zajmuje dana skrzynka możemy bez problemów podglądnąć w konsoli Exchange Management Consol.

Niestety w przypadku gdy chcemy uzyskać informację o większej ilości skrzynek, lub o skrzynkach spełniających dany warunek, realizacja takiego zadania w EMC będzie bardzo czasochłonna.

W takim przypadku z pomocą przychodzi nam konsola Exchange Management Shell (EMS) w której za pomocą poleceń PowerShell możemy uzyskać wiele interesujących nas informacji na temat skrzynek znajdujących się w środowisku Microsoft Exchange.

Wyświetlenie wszystkich informacji o skrzynce:

Get-MailboxStatistics jan.kowalski@domena.com | FL

Continue reading

Print Friendly

Exchange 2010 ilość skrzynek Powershell

Nieraz spotykamy się z potrzebą określenia ile skrzynek w danym momencie znajduje się w poszczególnych bazach lub na całym serwerze Microsoft Exchange.

Informacje takie możemy w łatwy sposób otrzymać za pomocą Exchange Management Shell wykorzystując CmdLety dla Exchange 2010.

Przykładowe zastosowania:

Określenie ilości wszystkich skrzynek w Organizacji Exchange

(Get-Mailbox -ResultSize unlimited).count

opcji resultsize nie musimy stosować jeżeli nasze środowisko ma nie więcej niż 1000 skrzynek.

Liczba skrzynek w poszczególnych bazach:

Get-Mailbox -ResultSize unlimited | Group-Object -Property:Database | Select-Object Name,Count

Continue reading

Print Friendly