Ádám, az Automatizáló
A PowerShell népszerű használata az Active Directory Directory Services (AD) szolgáltatással működik. Olyan sok időt takarít meg a PowerShell az AD objektumokkal. A PowerShell használatával az AD csoporttagok és csoportok beszerzése rengeteg időt takarít meg.
Az Active Directory csoportok nagyszerű módja a felhasználói fiókok szegmentálásának. A csoportok lehetővé teszik az adminisztrátorok számára, hogy az erőforrásokhoz való hozzáférést számos rendszerben meghatározzák.
Ebben a cikkben a PowerShell használatával szerezzünk be AD csoporttagokat és exportáljuk az AD csoporttagokat. Ezután felhasználhatja ezeket az információkat rengeteg érdekes jelentés előállításához.
Tartalomjegyzék
Előfeltételek
Ha követni szeretné ezt a cikket, győződjön meg arról, hogy a következő követelmények már készen állnak:
- Windows 10, tartományhoz csatlakoztatott számítógépen dolgozik
- Olyan felhasználóval jelentkezett be, aki képes olvasni az AD csoport- és felhasználói fiókokat
- Telepítse a PowerShell Active Directory modult
Az alapok megtanulása
Az AD csoportok és csoporttagok lekérdezéséhez két PowerShell-parancsmag áll a rendelkezésére – Get-AdGroup
és Get-AdGroupMember
.
Get-ADGroup
lekérdez egy tartományvezérlőt, és visszaadja az AD csoport objektumait. Get-AdGroupMember
az egyes csoportok belsejébe néz, és visszaadja az adott csoportban létező összes felhasználói fiókot, csoportot, névjegyet és egyéb objektumot.
Az AD-csoportok megszerzése
Az AD-csoportok PowerShell használatával történő kereséséhez használja a Get-ADGroup
parancsmagot. Paraméterek nélkül a Get-ADGroup
lekérdezi az AD-t, és a Filter
paraméter segítségével lekérdezi az AD összes csoportját. A Filter
paraméter kötelező. Létezik a visszaküldött csoportok korlátozása különböző kritériumok alapján.
Például az összes csoport megkereséséhez a kritériumok figyelembevétele nélkül használja a Get-ADGroup
t, és adjon meg egy helyettesítő karaktert ( csillag) a Filter
paraméterhez. Az alábbiakban láthat egy példát. Az összes csoport végiggörgetése eltarthat egy ideig, ha a tartományában több száz vagy akár ezren vannak.
Ha egyetlen csoportot kell találnia, akkor használja a Identity
paramétert.
A Identity
paraméter közös paraméter az összes Active Directory PowerShell-parancsmag között. Ez lehetővé teszi, hogy a lekérdezést egyetlen AD objektumra korlátozza. Például, ha ellenőriznie kell, hogy létezik-e HR nevű csoport, akkor az alábbi parancs futtatásával tudhatja meg.
Az AD csoport tagjainak megszerzése
A PowerShell használatával az AD csoport tagjainak felsorolásához a Get-ADGroupMember
parancsmagra van szükség. Ez a parancsmag felhasználói, csoportos és számítógépes objektumokat kap egy adott csoportba. Talán meg kell találnia az Adminisztrátorok csoport összes tagját. A legegyszerűbb formájában egyszerűen használja a Identity
paramétert, és ismét meghatározza a csoport nevét az alábbiak szerint.
Ne feledje, hogy az
Get-AdGroupMember
csak a felhasználók, csoportok és számítógépek számára adja vissza a csoporttagságot. Nem ad vissza más AD objektumokat, például névjegyeket.
Csoporttagok felsorolása a csoporttagok belsejében
Mint azt Ön is tudja, az AD csoportok nem csak felhasználói fiókokat tartalmazhat, hanem más fészkelésnek is nevezett csoportokat. Ha egy csoport be van ágyazva egy másik csoportba, akkor a csoport tagjai ugyanazokat az engedélyeket öröklik, mint a szülőcsoport.
Alapértelmezés szerint a PowerShell Get-AdGroupMember
parancsmag teszi nem küldhet vissza beágyazott csoporttagokat. Ennek orvoslásához használhatja a Recursive
paramétert. Megtalálhatja például a HR csoportba beágyazott csoportok tagjait a Recursive
paraméter használatával, az alábbiak szerint.
Több csoport / tag egyszerre történő megszerzése
Ha egyszerre sok különböző csoport vagy csoporttag számára kell lekérdeznie az AD-t, akkor ezt egy PowerShell foreach ciklus segítségével is megteheti. Egy foreach hurok parancsot vagy kódot futtat a gyűjtemény minden eleméhez. Ebben az esetben a gyűjtemény a csoportnevek listája lesz.
Talán meg kell találnia az összes csoporttagot a HR, a Számvitel és az IT csoportokban. Ehhez először létre kell hoznia a csoportnevek gyűjteményét vagy tömbjét. Az alábbi példa ezt a gyűjteményt $groupNames
néven definiálja. Ezután futtassa az adott gyűjtemény minden nevéhez a Get-ADGroupMember
parancsot, megadva az egyes csoportok nevét a Identity
paraméterhez.
Alternatív megoldásként használhatja a
ForEach-Object
parancsmagot a csoportok közötti áthidalásra.
Alternatív hitelesítő adatok használata
Mint sok más PowerShell-parancsmag, az AD csoport parancsmagjai is Credential
paraméter.Alapértelmezés szerint, amikor egy AD csoport parancsmagot futtat, a bejelentkezett hitelesítő adatokat használja az Active Directory lekérdezéséhez. Ez a viselkedés azt írja elő, hogy egy tartományhoz csatlakoztatott számítógépen kell lennie, amely Active Directory-felhasználóként van bejelentkezve, és rendelkezik engedéllyel.
De mi van akkor, ha munkacsoportos számítógépet használ, vagy ha másként kell hitelesítenie az AD-t felhasználó? Ebben az esetben használhatja a Credential
paramétert. Ez a paraméter lehetővé teszi a hitelesítéshez használt felhasználónév és jelszó megadását.
Például valószínűleg a felhasználói fiókjának nincs joga AD-feladat végrehajtására. További jogokkal rendelkező szolgáltatási fiókja van. Be lehet jelentkezni szokásos felhasználóként, de továbbra is hitelesítenie kell magát a szolgáltatási fiókkal az alábbiak szerint.
A Get-Credential
parancsmag felhasználónév / jelszó megadását kéri egy bizonylat. Ez a hitelesítő adat továbbításra kerül a Get-AdGroup
parancsmag számára hitelesítés céljából.
A
Credential
paraméter mindenütt megtalálható a PowerShellben a hitelesítési hitelesítő adatok megadásához. További információ: A PowerShell Get-Credential parancsmag és minden hitelesítő adat használata.
Csoporttagok megszerzése a Get-ADGroup segítségével?
Lehet, hogy ellentmondásosan hangzik, de a Get-ADGroup
parancsmaggal is megkaphatja a csoport tagjait.
Kiderült, hogy Get-ADGroup
tulajdonságot ad vissza az egyes csoportokhoz members
néven. Ez egy olyan AD-objektumok gyűjteménye, amelyek egy csoport tagjai.
Például, ha a Get-ADGroupMember
használata nélkül újból megkeresheti a csoport tagjait abban a HR-csoportban, akkor tegyen ilyesmit:
Miért használja ezt a módszert a másikra? A fő különbség az, hogy a members
tulajdonságok minden típusú AD objektumot tartalmaznak – nem csak a felhasználókat, a számítógépeket és más csoportokat.
Talán vannak kapcsolatai különböző csoportokon belül . A Get-ADGroupMember
futtatásakor ezek a névjegyek nem jelennek meg. De ha azt mondja a Get-ADGroup
-nek, hogy adja vissza a csoport összes tagját, és bővítse a gyűjteményt az alábbiak szerint, akkor láthatja a névjegyeket.
Adott AD-attribútumok megkeresése
A fenti alapok részben egyszerűen visszaadta az összes csoportot és csoporttagot. Az egyes csoportok és csoporttagok számára visszaküldött információk csak az egyes objektumtípusokhoz társított AD-attribútumok részhalmazai.
Talán meg szeretné tekinteni a felhasználói fiók e-mail címét, utolsó bejelentkezési dátumát vagy más társított AD attribútumát. ? Ehhez kreatívnak kell lennie.
Talán megtalálta az összes csoporttagot a HR csoportban, de látnia kell az egyes felhasználói fiókok e-mail címét is?
Eredmények szűrése
Eddig a pontig megtalálta az összes csoportot és csoporttagot, de napi munkakörnyezetben erre ritkán van szükség. Valószínű, hogy csak korlátozott számot kell találnia az egyes elemekből. Az AD csoport parancsmagjainak néhány módja van ennek kezelésére.
A szűrő paraméter
Mint korábban említettük, mindkét parancsmag rendelkezik a Filter
paraméter. Ez a paraméter sokféle módon korlátozhatja a visszaadottakat a cikk hatályán kívül.
A Filter
paraméter használatával korlátozhatja az eredményeket bármelyik AD-vel. attribútum, például név, csoporttípus, e-mail cím, a felhasználók utolsó bejelentkezése és így tovább.
Például talán csak biztonsági csoportokat szeretne keresni. Ebben az esetben meg kell adnia egy GroupCategory
attribútumot, és feltételt kell beállítania, hogy csak a Security
csoportokat adja vissza.
Lehet, hogy meg akarja találni az összes biztonsági csoportot, de ezek nem lehetnek tartományi helyi csoportok. Ezután hozzá kell adnia egy másik feltételt (ezúttal a -ne
operátort használva), hogy megakadályozza a tartományi helyi csoportok visszaadását.
Ha meg szeretné tudni, hogyan hozhat létre lekérdezési szűrőket, feltétlenül nézze meg az Active Directory és az LDAP szűrők tanulását a PowerShellben.
A csoporteredmények korlátozása szervezeti egységenként (OU)
Lehet, hogy több csoportja van beágyazva szervezeti egységekbe. Nem feltétlenül akar minden csoportot megtalálni, hanem csak egy adott szervezeti egységben található csoportokat. Ebben az esetben használhatja a SearchBase
paramétert.
A SearchBase
paraméter lehetővé teszi, hogy meghatározza a szervezeti egység megkülönböztetett jellemzőit. név (DN) a csoportok keresésének megkezdéséhez. Például lehet, hogy a tartománya gyökerénél található egy Helyek nevű szervezeti egység. A Locations OU-ban minden egyes OU-helyet létrehozott, például Austin, NYC és Los Angeles. Csak csoportokat keres az NYC OU-ban, és korlátoznia kell a többiek láthatását.
Az alábbiakban egy példa az AD OU felépítésére látható.Figyelje meg, hogy a Locations OU-kon kívül más csoportok is léteznek.
Talán meg kell találnia az összes olyan AD-csoportot, amely csak a NYC OU-ban található. A lekérdezés korlátozásához használja a SearchBase
paramétert, amely megadja a DN-t az alábbiak szerint. A Locations OU összes csoportja visszatér.
De most meg kell találnia az összes szervezeti egység összes csoportját a Locations OU alatt. A Get-ADGroup
csak magában a Helyek szervezeti egységben ad vissza csoportokat – a gyermek szervezeti egységekben nem.
A gyermek szervezeti egységeken belüli csoportok visszaadásához a SearchScope
paraméter. Ez a paraméter hasonlít a Recursive
paraméterhez, mivel a gyermekobjektumokat is megvizsgálja.
Például a Helyek OU alatt található OU összes csoportjának megkereséséhez adja meg Subtree
vagy 2
. Ez az SearchScope
érték azt mondja a Get-ADGroup
számára, hogy rekurzívan nézzen meg minden gyermeket, nagygyermeket és a lefelé tartó OU-kat.
A SearchScope
paraméterbeállítások teljes lebontásához lásd a Get-ADGroup
dokumentációt.
AD csoportok és tagok exportálása
Tehát végre tudja, hogyan kell lekérdezni és visszaküldeni a szükséges csoportokat és csoporttagokat. Ezeket az információkat a PowerShell konzolhoz küldjük. De most ezeket az információkat CSV fájlba vagy Excel munkalapba kell beolvasnia.
Az egyetlen dolog, amit most tennie kell, az az, hogy az összes információt elküldi egy fájlba.
Exportálás ide CSV
Az AD-információk egyik legnépszerűbb formátuma a CSV. A PowerShell rendelkezik egy praktikus parancsmaggal, amely lehetővé teszi CSV-fájlok egyszerű létrehozását a PowerShell kimenetéből Export-Csv
néven.
CSV-fájlt a cikk bármelyik parancsából létrehozhat csövezéssel a Export-Csv
címre. Az alábbi példa felhasználásával átirányítja az összes olyan kimenetet, amely Get-AdGroup
visszatérne a konzolhoz, ahelyett, hogy CSV-fájlba kerülne. >
További információ erről a praktikus parancsmagról: Export-Csv: A PowerShell módja a CSV-fájlok első osztályú állampolgárként való kezelésének.
Exportálás Excelbe
A PowerShellnek nincs natív módja az információk Excelbe történő exportálására. De mindig letöltheti az ImportExcel nevű ingyenes közösségi modult. Ez a modul CSV-szerű exportképességeket hoz közvetlenül az Excel munkalapokra. A PowerShell modul telepítéséhez futtassa az Install-Module ImportExcel -Scope CurrentUser
futtatást.
A fenti példa segítségével CSV-fájl helyett exportálnia kellett a csoportokat egy Excel munkalapra, használja a Export-Excel
parancsmagot az alábbiak szerint.
Az ImportExcel modul rengeteg funkcióval rendelkezik az Excel programmal. Ha kíváncsi munkalapra van szüksége, akkor valószínűleg van egy funkciója az Ön számára.
Az ImportExcel modul használatával kapcsolatos további információkért olvassa el ezt a cikket. Remek bevezetést nyújt néhány általánosan használt esethez.
Következtetés
Csak két PowerShell-parancsmag használatával megteheti szinte bármi az AD csoportokkal. Ez a cikk csak az Ön számára elérhető funkciók bevezetője volt. Használja az itt összegyűjtött ismereteket, kövesse a cikk mélyebb tantárgy merüléseire mutató linkeket, és nézze meg, mit építhet!