Powershell: Lista grup we wskazanym OU
Dzisiaj kilka słów o Powershellu w kontekście znajdywania grup w Active Directory. Choć tego typu obiekty można wyszukiwać również w interfejsie graficznym (np. przystawką Active Dirtectory Users and Computers), konsola PS daje ogromne możliwości filtrowania wyników i zapisywania ich.
Za znajdywanie grup w AD odpowiada cmdlet “Get-ADGroup”. To polecenie zwróci nam wszystkie grupy w AD wraz z podstawowymi informacjami (typ, ścieżka OU, nazwa):
Get-ADGroup -Filter * ‘OU=grupy,DC=spece,DC=it’
Oto przykład informacji o jednej grupie. W środowisku produkcyjnym, grup będzie dużo więcej (czasem dziesiątki tysięcy), co nie tylko będzie mało czytelne w konsoli PS, lecz także pochłonie trochę czasu na wygenerowanie wyniku.
GroupCategory : Security
GroupScope : Global
Name : secowagrupa12_Special
ObjectClass : group
ObjectGUID : 063ea243-d7a2-4eea-9aed-ca67aad551f1
SamAccountName : secowagrupa12_Special
SID : S-1-2-21-101536179-1125923169-1519857712-26115
Jednym z dostępnych parametrów jest “SearchBase”, który odpowiada za przeszukanie wskazanego OU. Ścieżkę OU podajemy w pojedyńczym cudzysłowiu:
Get-ADGroup -Filter * -SearchBase ‘OU=grupy,DC=spece,DC=it’
W ten sposób znajdziemy wyłącznie grupy typu “security” (odpowiednio, grupy dystrybucyjne znajdziemy podając parametr “Distribution”):
Get-ADGroup -Filter {GroupCategory -eq ‘security’} -SearchBase ‘OU=grupy,DC=spece,DC=it’
Jak zawsze przypominam o możliwościach filtrowania wyników poprzez wybranie interesujących nas parametrów.
Tutaj wyświetlimy wyłącznie nazwy grup i SID’y:
Get-ADGroup -Filter * -SearchBase ‘OU=grupy,DC=spece,DC=it’ | select SamAccountName,SID
Oczywiście wynik warto zrzucić do pliku CSV:
Get-ADGroup -Filter * -SearchBase ‘OU=grupy,DC=spece,DC=it’ | Export-Csv c:\lista_grup.csv
Jeśli interesuje Was Powershell, tutaj znajdziecie sporo przydatnych artykułów z tej dziedziny.
To ja mam taką zagwozdkę jak wybrać W PS wszystkie konta w AD które są wyłączone oraz mają atrybut mail nie pusty lub pole e-mail w zakładce General jest wypełnione?
-filter {Enabled -eq $false -and mail -like „*”}
Dzięki wielkie
spece żyją!