Exchange 2010 puste grupy dystrybucyjne

Często tworzymy grupy dystrybucyjne do jakiś calów, a później o nich zapominamy.
Zdarza się również, że grupy te nie są już używane i już nikt do nich nie należy.
Dlatego od czasu do czasu warto sprawdzić czy posisiadamy puste grupy dystrybucyjne i je usunać.

Grupy takie możemy wyszukać na dwa sposoby.

Pierwszy, za pomocą konsoli EMS wpisująć poniższe polecenia:

$DGs = Get-DistributionGroup -resultsize unlimited
$DGs | where-object {!(Get-DistributionGroupMember $_)}

Wówczas otrzymamy listę pustych grup dystrybucyjnych.

Drugi sposób to skorzystanie ze zwykłej konsoli PowerShell z wykorzystaniem Quest ActiveDirectory:

Get-QADGroup -SizeLimit 0 -Empty $true -GroupType Distribution

Dzięki powyższemu poleceniu możemy również znaleźć puste grupy Security.

 

 

Exchange 2010 dodanie uprawnien do wysylania na restricted distribution group

W Microsoft Exchange w grupach dystrybucyjnych mamy możliwość ustawienia parametru każdej z grup aby nie przyjmowała wiadomości od wszystkich tylko od określonych osób.

Ustawiamy to we właściwościach danej grupy w zakładce Mail Flow Settings, Message Delivery Restrictions.

W sekcji Accept messages from zaznaczamy Only senders in the following list i dodajemy użytkowników którzy będą mieli prawo wysyłać emaile do danej grupy.

Emaile od innych osób będą odrzucane.

DistributionGroupRestricted

Problem pojawia się jeżeli takich grup mamy wiele i nie wiemy które z nich mają taką opcję ustawioną.

Continue reading

Exchange 2010 Grupy dystrybucyjne usunięcie wylaczonych kont AD

Kiedyś pisaliśmy na temat usunięcia wyłączonych skrzynek z grup dystrybucyjnych. Problem w tym, że czasami potrzebujemy usunąć z grup dystrybucyjnych konta użytkowników którzy mają zablokowane konto w Active Directory.

Możemy to zrobić w prosty sposób używając Exchange Management Shell oraz poniższego zapytania:

$groups = Get-DistributionGroup -ResultSize Unlimited
$report = foreach($group in $groups){
 Get-DistributionGroupMember $group |
 ?{$_.RecipientType -like '*User*' -and $_.ResourceType -eq $null} |
 Get-User | ?{$_.UserAccountControl -match 'AccountDisabled'} |
 Select-Object Name,RecipientType,@{n='Group';e={$group}}
}
$report | Export-CSV d:\scripts\disabled_group_members.csv -NoType

Continue reading

Exchange 2010 grupy dystrybucyjne ukrywanie czlonkow

W Microsoft Exchange 2003 ukrycie osób znajdujących się w grupie dystrybucyjnej było bardzo proste Exchange Tasks>Hide Membership.

Niestety w Microsoft Exchange 2010 nie jest to już takie łatwe ani intuicyjne.

Oczywiście aby ukryć członków grupy dystrybucyjnej i zabezpieczyć się przed możliwością jej „rozwinięcia” w Outlooku możemy utworzyć dynamiczną grupę dystrybucyjną.

Dzięki temu możemy określić na jakiej podstawie członkowie grupy mają być dodani dynamicznie do grupy podczas wysyłania wiadomości na grupę.
Może to być np.: na podstawie wpisu w polu Company, Citi itp.

Problem pojawia się kiedy osoby znajdujące się w grupie nie mają wspólnych wartości atrybutów, wówczas musimy użyć innego sposobu.

W Exchange 2010 możemy ukryć grupę dystrybucyjną modyfikując jej właściwości.

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

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

Exchange 2010 usunięcie wyłączonych kont z grup dystrybucyjnych

W celu utrzymania porządku w grupach dystrybucyjnych, dobrze jest od czasu do czasu usunąć z tych grup użytkowników którzy mają wyłączone konta.

Poniżej prezentujemy skrypt który przeszukuje wszystkie grupy dystrybucyjne, następnie usuwa z nich wszystkich użytkowników którzy są wyłączeni (RecipientTypeDetails – DisabledUser), oraz dodatkowo możemy określić z jakich OU mają to być użytkownicy.

 

Dodatkowo skrypt tworzy plik wynikowy .csv w którym zapisane są poniższe informacje:

  • nazwa grupy dystrybucyjnej
  • DisplayName użytkownika
  • SamAccountName
  • scieżka AD w której znajduje się użytkownik

Continue reading

Exchange 2010 puste grupy dystrybucyjne

W dużym środowisku Exchange często tworzymy skrzynki funkcyjne, grupy dystrybucyjne, które są potrzebne w danym momencie.

Często jest tak, że później zapominamy o utworzonych grupach, które przestają być używane po pewnym czasie.

Dlatego aby zrobić porządek z grupami dobrze jest od czasu do czasu sprawdzić czy nie posiadamy grup „pustych” do których nikt nie jest przypisany.

W tym celu możemy uruchomić poniższe polecenie, które zwróci nazwę, adres smtp oraz właściciela grupy nie zawierającej żadnych osób ani grup:

$DistrGroups = Get-DistributionGroup -ResultSize Unlimited
ForEach ($DistrGroup in $DistrGroups) { 
 if (!$(Get-DistributionGroupMember -Identity $DistrGroup.’DistinguishedName’)) { 
  Write-Host $DistrGroup.DisplayName "," $DistrGroup.PrimarySmtpAddress "," $DistrGroup.ManagedBy
  }
}

 

Search-Mailbox usunięcie wiadomości wysłanych do grupy dystrybucyjnej

 

Jeżeli ktoś przypadkowo wyśle wiadomość do grupy dystrybucyjnej która nie powinna do niej trafić możemy tą wiadomość usunąć ze skrzynek osób znajdujących się w grupie za pomocą polecenia Search-Mailbox.

Polecenie Search-Mailbox łaczymy z poleceniem listującym wszystkie osoby znajdujące się w grupie dystrybucyjnej.

Poniżej znajduje się przykład który powoduje usunięcie wysłanego wcześniej emaila o temacie Confidential Report ze skrzynek osób należących do grupy VIPs.

Get-DistributionGroupMember VIPs | Search-Mailbox -SearchQuery subject:"Confidential Report" -DeleteContent -Force:$TRUE

 

W celu dokładniejszego określenia emaila który ma zostać usunięty możemy skorzystać z dodatkowych parametrów wykorzystywanych w Search-Mailbox.

Listę przydatnych parametrów prezentujemy poniżej:

Continue reading