Jak exportovat členy skupiny Active directory v Powershellu

Dnes si ukážeme jak jednoduše pomocí Powershellu zjistit členy Active directory skupiny případně jejich počet a jak s ním dále pracovat a exportovat je do CSV souboru.
Na příkladech si to zkusíme jak s modulem pro práci s Active Directory RSAT, tak i bez něho pomocí WMI.

Jak získat informace z Active Directory

Každý doménový účet má právo číst Active Directory, nejsou potřeba žádná speciální oprávnění pro čtení AD pomocí Powershellu lze využít následující metody:

  • Čtení pomocí modulu RSAT pro prácí s AD v Powershellu – jak nainstalovat
  • Čtení pomocí WMI a vestavěného Namespace LDAP – funguje všude, není třeba nic instalovat, pouze pro základní práci

Počet členů skupiny Active Directory i vnořených

Někdy potřebuješ zjistit kolik členů má konkrétní skupina v AD.  Výsledkem bude pouze číslo. V příkladu jsou oba způsoby jak přes modul AD tak i přes WMI, kde není potřeba nic instalovat.

Skupiny mohou však být i vnořené to znamená že skupina v AD obsahuje další skupinu a ta obsahuje další skupinu a tak dále. Počet členu kompletně i s vnořenými skupinami lze zobrazit pomocí přepínače -Recursive.

#Název skupiny, jejíž členy chci sečíst
$groupName='How2DO'

#první způsob sečtení využívající modul AD pro PS
Get-ADGroup -Identity $groupName | Get-ADGroupMember | Measure-Object | select-object -ExpandProperty count

#druhý zkrácený způsob sečtení využívající modul AD pro PS
(Get-ADGroupMember -Identity $groupName).count

#druhý způsob, který zobrazí počet členů i vnořených skupin.
(Get-ADGroupMember -Identity $groupName -Recursive).count

#počet členů bez modulu RSAT Active directory  
Get-WmiObject -Namespace "root\directory\ldap" -Query "Select ds_member from ds_group where ds_name='$groupName'" | Select-Object -ExpandProperty ds_member | Measure-Object | select-object -ExpandProperty count

Výpis všech členů ze skupiny v Active Directory

Výpis všech členů konkrétní skupiny, můžeš si zvolit jaké parametry budou vypsány. Zde už je výpis pomoci WMI poměrně omezený lze vypsat pouze DN, šlo by to případně v cyklech procházet a na scriptovat, ale mnohem lepší je využít AD modul pro Powershell. Můžeš vypsat i vnořené členy, v AD může být členem skupiny opět další skupina.  

#Název skupiny, jejíž členy chci vyčíst
$groupName='How2DO'

#výpis členů skupiny i s atributy. Parametry, které nejsou základní specifikuj v: Get-ADUser -Properties l - zde l značí location tedy místo  
Get-ADGroup -Identity $groupName | Get-ADGroupMember | Get-ADUser -Properties l | Select-Object -Property name, userPrincipalName, l

#výpis všech členů i pokud existuje vnořená skupina
Get-ADGroup -Identity $groupName | Get-ADGroupMember -Recursive | Get-ADUser  -Properties  DisplayName 

#výpis členů bez modulu RSAT Active directory, bohužel je omezený pouze na distinguishedName  
Get-WmiObject -Namespace "root\directory\ldap" -Query "Select ds_member from ds_group where ds_name='$groupName'" | Select-Object -ExpandProperty ds_member 

Export členů skupiny Active Directory

Zde už doporučuji využítí Powershell modulu pro AD. Členy skupiny nejprve vyčtu vyberu parametry, které chci vypsat a daný výpis poté exportuji do souboru CSV pro další práci.

#Název skupiny, jejíž členy chci vyčíst
$groupName='How2DO'

#Export členů z AD skupiny i s atributy. 
#V části Export-Csv specifikuj cestu kam se má soubor CSV uložit.
Get-ADGroup -Identity $groupName | Get-ADGroupMember | Get-ADUser -Properties l | Select-Object -Property name, userPrincipalName, l | Export-Csv -Delimiter ";" -Path C:\Temp\AD.csv -Encoding UTF8

Pokud by jsi chtěl ještě nějaké další příklady, neváhej se ozvat v komentářích.

Jak exportovat členy skupiny Active directory v Powershellu
Tagy:                     

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *