Adam the Automator (Suomi)
PowerShellin suosittu käyttö toimii Active Directory Directory Services (AD) -palvelun kanssa. PowerShell voi tehdä niin paljon aikaa säästäviä asioita AD-objektien kanssa. PowerShell get AD -ryhmän jäsenet ja ryhmät säästävät paljon aikaa.
Active Directory -ryhmät ovat loistava tapa segmentoida käyttäjätilit. Ryhmät sallivat järjestelmänvalvojien määrittää resurssien käyttöoikeuden moniin järjestelmiin.
Tässä artikkelissa käytetään PowerShelliä AD-ryhmän jäsenten hankkimiseen ja AD-ryhmän jäsenten viemiseen. Tämän jälkeen voit luoda näitä tietoja mielenkiintoisten raporttien luomiseen.
Sisällysluettelo
Edellytykset
Jos haluat seurata tätä artikkelia, varmista, että sinulla on seuraavat vaatimukset käyttövalmiina:
- Työskentely Windows 10 -verkkotunnuksella liitetyllä tietokoneella
- Kirjautunut sisään käyttäjällä, joka pystyy lukemaan AD-ryhmien ja käyttäjätilejä
- Pyydä PowerShell Active Directory -moduulia asentamaan
Perustietojen oppiminen
AD-ryhmien ja ryhmän jäsenten kyselyä varten sinulla on kaksi PowerShell-cmdlet-moduulia käytettävissäsi – Get-AdGroup
ja Get-AdGroupMember
.
Get-ADGroup
kyselee toimialueen ohjainta ja palauttaa AD-ryhmän objektit. Get-AdGroupMember
etsii jokaisen ryhmän sisältä ja palauttaa kaikki ryhmässä olevat käyttäjätilit, ryhmät, yhteystiedot ja muut objektit.
AD-ryhmien saaminen
Voit etsiä AD-ryhmiä PowerShellin avulla käyttämällä Get-ADGroup
-cmdlet-komentoa. Ilman parametreja Get-ADGroup
kysyy AD: tä ja palauttaa kaikki toimialueen ryhmät parametrilla Filter
. Parametri Filter
vaaditaan. Palautettujen ryhmien olemassaoloa on rajoitettu useiden ehtojen perusteella.
Jos esimerkiksi haluat etsiä kaikki ryhmät huomioimatta mitään ehtoja, käytä Get-ADGroup
ja määritä jokerimerkki ( tähti) parametrille Filter
. Alla on esimerkki. Kaikkien näiden ryhmien selaaminen voi viedä hetken, jos verkkotunnuksessasi on satoja tai jopa tuhansia.
Jos haluat löytää yhden ryhmän, voit käytä parametria Identity
.
Parametri Identity
on yleinen parametri kaikkien Active Directory PowerShell-cmdlet-komentojen joukossa. Sen avulla voit rajoittaa kyselysi yhteen AD-objektiin. Jos esimerkiksi haluat tarkistaa, onko olemassa ryhmä nimeltä HR, voit selvittää sen suorittamalla alla olevan komennon.
AD-ryhmän jäsenten saaminen
PowerShellin käyttäminen AD-ryhmän jäsenten luettelointiin edellyttää cmdlet Get-ADGroupMember
. Tämä cmdlet-tiedosto saa käyttäjän, ryhmän ja tietokoneen objektit tiettyyn ryhmään. Ehkä sinun on löydettävä kaikki Järjestelmänvalvojat-ryhmän jäsenet. Yksinkertaisimmassa muodossaan sinun tarvitsee yksinkertaisesti käyttää Identity
-parametria määrittämällä uudelleen ryhmän nimi kuten alla.
Huomaa, että
Get-AdGroupMember
palauttaa ryhmän jäsenyyden vain käyttäjille, ryhmille ja tietokoneille. Se ei palauta muita AD-objekteja, kuten yhteystietoja.
Ryhmän jäsenten luettelointi ryhmän jäsenten sisällä
Kuten ehkä tiedätkin, AD-ryhmät voi sisältää paitsi käyttäjätilejä myös muita ryhmiä, joita kutsutaan myös pesinnöiksi. Kun ryhmä on sisäkkäin toisen ryhmän sisällä, kyseisen ryhmän jäsenet perivät samat oikeudet, jotka on annettu vanhemmalle ryhmälle.
Oletuksena PowerShell Get-AdGroupMember
cmdlet tekee ei palauta sisäkkäisiä ryhmän jäseniä. Voit korjata tämän käyttämällä parametria Recursive
. Voit esimerkiksi löytää HR-ryhmän sisällä sisäkkäin olevien ryhmien jäseniä käyttämällä Recursive
-parametria alla esitetyllä tavalla.
Useiden ryhmien / jäsenten saaminen kerralla
Jos sinun on kysyttävä AD: ltä useita eri ryhmiä tai ryhmän jäseniä kerralla, voit tehdä sen myös PowerShell foreach -silmukalla. Foreach-silmukka suorittaa komennon tai koodin jokaiselle kokoelman kohteelle. Tässä tapauksessa kokoelma on luettelo ryhmien nimistä.
Ehkä sinun on löydettävä kaikki ryhmän jäsenet HR-, kirjanpito- ja IT-ryhmistä. Voit tehdä sen luomalla ensin kokoelman tai ryhmän näistä ryhmien nimistä. Alla olevassa esimerkissä tämä kokoelma määritellään nimellä $groupNames
. Suorita sitten jokaiselle kyseisen kokoelman nimelle Get-ADGroupMember
ja anna kunkin ryhmän nimi Identity
-parametrille.
Vaihtoehtoisesti voit käyttää
ForEach-Object
cmdlet-komentoa ryhmittelyyn.
Vaihtoehtoisten kirjautumistietojen käyttäminen
Kuten monissa muissa PowerShell-cmdlet-sovelluksissa, AD-ryhmän cmdlet-tiedostoissa on Credential
parametri.Oletusarvoisesti aina, kun suoritat AD-ryhmän cmdlet-sovelluksen, se käyttää kirjautunutta kirjautumistietojasi Active Directory-kyselyyn. Tämän käyttäytymisen mukaan sinun on oltava toimialueeseen liitetyssä tietokoneessa, joka on kirjautunut sisään Active Directory -käyttäjänä, jolla on lupa.
Mutta entä jos olet työryhmätietokoneessa tai sinun on todennettava AD: lle eri nimellä käyttäjä? Siinä tapauksessa voit käyttää parametria Credential
. Tämän parametrin avulla voit määrittää käyttäjänimen ja salasanan, joita käytetään todennuksessa.
Esimerkiksi käyttäjätililläsi ei ehkä ole oikeutta suorittaa AD-tehtävää. Sinulla on palvelutili, jolla on lisäoikeuksia. Voit kirjautua sisään tavallisena käyttäjänä, mutta silti todentaa palvelutilillä alla esitetyllä tavalla.
cmdlet Get-Credential
kehottaa luomaan käyttäjätunnuksen / salasanan. valtakirja. Tämä tunniste välitetään sitten Get-AdGroup
cmdlet-sovellukseen todennusta varten.
Parametri
Credential
on PowerShellissä kaikkialla todennusvaltuuksien toimittamiseen. Lisätietoja on artikkelissa PowerShell Get-Credential -cmdlet-komennon ja kaikkien käyttöoikeustietojen käyttäminen.
Ryhmän jäsenten saaminen Get-ADGroupilla?
Se saattaa kuulostaa epäluuloiselta, mutta voit saada myös ryhmän jäseniä Get-ADGroup
-cmdlet-komennolla.
On käynyt ilmi, että Get-ADGroup
palauttaa ominaisuuden jokaiselle ryhmälle nimeltä members
. Tämä on kokoelma AD-objekteja, jotka ovat ryhmän jäseniä.
Voit esimerkiksi etsiä ryhmän jäseniä uudelleen kyseisestä HR-ryhmästä käyttämättä Get-ADGroupMember
, tee jotain tällaista:
Miksi käyttää tätä menetelmää muiden kanssa? Suurin ero on, että members
-ominaisuudet sisältävät kaikenlaisia AD-objekteja – ei vain käyttäjiä, tietokoneita ja muita ryhmiä.
Ehkä sinulla on yhteystietoja eri ryhmissä . Kun suoritat Get-ADGroupMember
, nämä yhteystiedot eivät näy. Mutta jos käsket Get-ADGroup
palauttamaan kaikki ryhmän jäsenet ja laajentamaan kokoelmaa alla olevan kuvan mukaisesti, näet yhteystiedot.
Erityisten AD-attribuuttien etsiminen
Yllä olevassa Perusteet-osiossa yksinkertaisesti palautit kaikki ryhmät ja ryhmän jäsenet. Kullekin ryhmälle ja ryhmän jäsenelle palautetut tiedot ovat vain osajoukko kuhunkin objektityyppiin liittyvistä AD-määritteistä.
Ehkä haluat nähdä käyttäjätilin sähköpostiosoitteen, viimeisen kirjautumispäivän tai muun siihen liittyvän AD-määritteen ? Tätä varten sinun on oltava luovaa.
Ehkä pystyit löytämään kaikki ryhmän jäsenet HR-ryhmästä, mutta sinun on myös tarkasteltava kunkin käyttäjätilin sähköpostiosoitetta?
Tulosten suodattaminen
Tähän asti olet löytänyt kaikki ryhmät ja ryhmän jäsenet, mutta päivittäisessä työympäristössä sinun ei tarvitse tehdä tätä harvoin. Mahdollisuudet ovat, että sinun on löydettävä vain rajoitettu määrä kutakin tuotetta. AD-ryhmän cmdlet-moduuleilla on muutama tapa, jolla voit käsitellä tätä.
Suodatinparametri
Kuten aiemmin mainittiin, molemmissa cmdlet-tiedostoissa on Filter
parametri. Tämän parametrin avulla voit rajoittaa palautettavaa monin eri tavoin tämän artikkelin ulkopuolella.
Parametrin Filter
avulla voit rajoittaa tuloksia millä tahansa AD: llä määritteen, kuten nimi, ryhmätyyppi, sähköpostiosoite, viimeinen sisäänkirjautuminen käyttäjille ja niin edelleen.
Haluat ehkä esimerkiksi löytää vain suojausryhmiä. Siinä tapauksessa sinun on määritettävä GroupCategory
-attribuutti ja asetettava ehto varmistamaan, että vain Security
-ryhmät palautetaan.
Ehkä haluat löytää kaikki suojausryhmät, mutta ne eivät saa olla toimialueen paikallisia ryhmiä. Lisäät sitten toisen ehdon (tällä kertaa -ne
-operaattorilla), jotta estät verkkotunnuksen paikallisten ryhmien palauttamisen.
Jos haluat oppia kyselysuodattimien luomisesta, muista tutustua PowerShellin Active Active Directory- ja LDAP-suodattimien oppimiseen.
Ryhmätulosten rajoittaminen organisaatioyksiköittäin
Ehkä sinulla on useita ryhmiä sisäkkäin organisaatioyksiköissä. Et välttämättä halua etsiä kaikkia ryhmiä, mutta vain ryhmiä tietystä organisaatioyksiköstä. Siinä tapauksessa voit käyttää parametria SearchBase
.
Parametrin SearchBase
avulla voit määrittää organisaation yksikön erotetun nimi (DN) aloittaaksesi ryhmien etsimisen. Esimerkiksi, kenties verkkotunnuksesi juuressa on kentällä OU nimeltä Locations. Locations OU: ssa olet luonut kaikki OU: n sijainnit, kuten Austin, NYC ja Los Angeles. Etsit vain ryhmiä NYC OU: ssa ja sinun on rajoitettava muiden näkymistä.
Alla on esimerkki AD OU -rakenteesta.Huomaa, että muita ryhmiä on Locations OU: iden ulkopuolella.
Ehkä sinun on löydettävä kaikki AD-ryhmät, jotka ovat vain NYC OU: ssa. Voit rajoittaa kyselyä käyttämällä SearchBase
-parametria, joka antaa DN: n alla olevan kuvan mukaisesti. Kaikki sijainnit-organisaatioyksikön sisällä olevat ryhmät palautetaan.
Mutta nyt sinun on löydettävä kaikki ryhmät kaikista organisaatioyksiköistä sijaintitietoyksikön alta. Get-ADGroup
palauttaa ryhmät vain itse Locations OU: ssa – ei alikäyttöyksiköissä.
Jos haluat palauttaa ryhmiä alayksiköiden sisällä, sinun on käytettävä SearchScope
-parametri. Tämä parametri on samanlainen kuin Recursive
-parametri, koska se tarkastaa myös lapsiobjekteja.
Esimerkiksi löytääksesi kaikki ryhmät mistä tahansa OU: sta Locations OU -kohdasta, määritä Subtree
tai 2
. Tämä arvo arvolle SearchScope
käskee Get-ADGroup
tarkastelemaan rekursiivisesti kaikkia lapsia, pikkulapsia ja alaspäin olevia yksiköitä.
SearchScope
-parametriasetusten täydellinen erittely on Get-ADGroup
-dokumentaatiossa.
AD-ryhmien ja jäsenten vienti
Joten tiedät vihdoin kyselyn ja palautuksen tarvitsemillesi ryhmille ja ryhmän jäsenille. Kaikki nämä tiedot lähetetään PowerShell-konsoliin. Mutta nyt sinun on saatava nämä tiedot CSV-tiedostona tai Excel-laskentataulukoksi.
Ainoa asia, joka sinun on nyt tehtävä, on lähettää kaikki nämä tiedot tiedostoon.
Vie a CSV
Yksi suosittu muoto AD-tietojen viemiseen on CSV. PowerShellissä on kätevä cmdlet-komento, jonka avulla voit helposti luoda CSV-tiedostoja PowerShell-lähdöistä nimeltä Export-Csv
.
Voit luoda CSV-tiedoston mistä tahansa tämän artikkelin käsittelemästä komennosta lähettämällä se osoitteeseen Export-Csv
. Alla olevan esimerkin avulla uudelleenohjataan kaikki lähdöt, jotka Get-AdGroup
olisi palannut konsoliin, sen sijaan CSV-tiedostoon.
Lisätietoja tästä kätevästä cmdlet-ohjelmasta on Export-Csv: PowerShell-tapa käsitellä CSV-tiedostoja ensimmäisen luokan kansalaisina.
Vie Exceliin
PowerShellillä ei ole alkuperäistä tapaa viedä tietoja Exceliin. Mutta voit aina ladata ilmaisen yhteisömoduulin nimeltä ImportExcel. Tämä moduuli tuo CSV: n kaltaiset vientikyvyt suoraan Excel-laskentataulukoihin. Asenna PowerShell-moduuli suorittamalla Install-Module ImportExcel -Scope CurrentUser
.
Yllä olevan esimerkin avulla sinun on vietävä ryhmät Excel-laskentataulukkoon CSV-tiedoston sijaan. käytä Export-Excel
cmdlet-ohjelmaa alla olevan kuvan mukaisesti.
ImportExcel-moduulissa on paljon toimintoja Excelin kanssa. Jos tarvitset mielikuvituksellisen laskentataulukon, sillä on todennäköisesti toiminto sinulle.
Lisätietoja ImportExcel-moduulin käytöstä on tässä artikkelissa. Se tarjoaa erinomaisen johdannon joihinkin yleisiin käyttötapauksiin, joita se voi käsitellä.
Päätelmä
Voit käyttää vain kahta PowerShell-cmdletiä melkein mistä tahansa AD-ryhmien kanssa. Tämä artikkeli oli vain intro käytettävissäsi olevista toiminnoista. Käytä täällä kerättyä tietoa, seuraa artikkelin linkkejä syvempiin aihesukelluksiin ja katso, mitä voit rakentaa!