Á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!

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük