Näytä tai poista Active Directoryn delegoidut käyttöoikeudet

Active Directory (AD) – delegaatio on kriittinen osa monien organisaatioiden IT-infrastruktuuria. Delegoimalla hallinnon voit myöntää käyttäjille tai ryhmille vain heidän tarvitsemansa käyttöoikeudet lisäämättä käyttäjiä etuoikeutettuihin ryhmiin (esim.toimialueen ylläpitäjät, Tilioperaattorit). Yksinkertaisin tapa suorittaa delegointi on ohjatun ohjauksen delegointi Microsoft Management Console (MMC) Active Directory Users and Computers-laajennuksen avulla.

Related: Managing Active Directory with PowerShell

vaikka ohjatun ohjauksen delegointi tarjoaa helpon tavan delegoida käyttöoikeuksia, vastaavaa ohjattua toimintoa ei ole delegoitujen käyttöoikeuksien poistamiseen. Joku Microsoftilla on varmasti huomannut tämän puutteen ja luonut Komentoriviohjelman nimeltä Dsrevoke.exe, joka voi poistaa ohjatun ohjausobjektin delegoinnin lisäämät käyttöoikeusmerkinnät.

kuitenkin Dsrevoke.exe-ohjelmalla on kaksi tärkeää teknistä rajoitusta, jotka on dokumentoitu Microsoftin artikkelissa “kun käytät Dsrevoke-komentorivityökalua kaikkien Windows Server 2003-pohjaisen toimialueen organisaatioyksiköiden käyttöoikeuksien ilmoittamiseen, työkalu ei välttämättä palauta kaikkia kulunvalvontamerkintöjä.”Nämä rajoitukset ovat:

  • Dsrevoke.exe voi löytää vain 1 000 ou: ta yksittäisessä haussa. Ehdotettu kiertää tämän rajoituksen on aloittaa ohjelman haku syvemmin sisäkkäinen organisaatioyksikkö (OU) vähentää tulosten määrää.
  • Dsrevoke.exe epäonnistuu, jos minkä tahansa ou: n nimessä on etuviiva ( / ). Ei ole kiertää tämän rajoituksen muuta kuin nimetä rikkonut OUs.

työskenneltäessä Dsrevoken kanssa.exe äskettäin, pystyin kiertää ensimmäinen ongelma, mutta sitten törmäsin toiseen ongelmaan. Organisaatiosyistä OUs: n nimeäminen uudelleen slash-hahmon poistamiseksi ei ollut vaihtoehto. Sitä paitsi, slash on voimassa merkki OU nimi, ja Dsrevoke.exe: n pitäisi toimia riippumatta siitä, sisältääkö OU nimessään viillon vai ei. Lisäksi työskentely 1000 OU: n rajan ympärillä ympäristössäni oli aikaa vievää.

näiden ongelmien vuoksi päätin katsoa, olisiko Dsrevokelle olemassa sisäänrakennettuja vaihtoehtoja.exe. Alkaen viimeaikaisissa Windows-versioissa, Dsacls.exe ohjelma tarjoaa tavan poistaa käyttöoikeudet lisätään Delegation of Control Wizard. Vaikka se ei epäonnistu, jos OU sisältää slash sen nimessä, Dsacls.exe ei voi etsiä alihankkijoilta käyttöoikeuksia, kuten Dsrevoke.exe tietää.

päätin ensin vain kirjoittaa yksinkertaisen käsikirjoituksen etsiäkseni OUs: ia ja soittaakseni Dsacl: ää.exe poistaa siirretyt käyttöoikeudet jokaisesta OU: sta. Kuitenkin, kun ajattelin, miten halusin suunnitella tällaisen käsikirjoituksen, se tapahtui minulle, että haluaisin myös nähdä luettelon, joka OUs oli käyttöoikeudet delegoitu tietylle käyttäjälle tai ryhmälle. Dsrevoke.exe ja Dsacl.exe voi tuottaa listaa käyttöoikeuksista, mutta ulostulo on hyvin pitkä ja tekninen. Halusin jotain yksinkertaisempaa.

Dsrevoken rajoitusten vuoksi.exe ja Dsacl.exe, ja minun halu saada lyhyempi lähtö, päätin kirjoittaa Windows PowerShell script saada toiminnallisuutta halusin. Tuloksena on Poista-DSACE. ps1. Ennen kuin keskustelen tästä komentosarjasta, minun on kuitenkin annettava taustatietoa siitä, mitä tapahtuu, kun käytät ohjatun ohjatun ohjauksen delegointia, sekä katettava joitakin Windowsin peruskäsitteitä.

delegoitujen käyttöoikeuksien lisääminen ohjatun toiminnon avulla

kuten aiemmin mainitsin, ohjatun ohjatun ohjauksen delegointi tarjoaa helpon tavan siirtää käyttöoikeuksia. Oletetaan esimerkiksi, että haluat salasanojen Palautusryhmän jäsenten pystyvän nollaamaan salasanoja kaikille käyttäjille MAINOSALUEELLASI. Voit tehdä tämän, sinun täytyy suorittaa nämä vaiheet:

  1. avaa Active Directory Users and Computers-konsoli.
  2. napsauta hiiren kakkospainikkeella kaikki käyttäjät-yksikköä ja valitse delegoitu ohjaus, kuten kuvassa 1 esitetään. Napsauta Seuraava-painiketta edetäksesi ohjatun tervetuliaissivun ohi.

Kuva 1: ohjatun ohjauksen delegoinnin aloittaminen

  1. Napsauta ohjatun toiminnon käyttäjät tai ryhmät-sivulla Lisää-painiketta.
  2. Kirjoita Valitse käyttäjät, tietokoneet tai ryhmät-valintaikkunaan ryhmän nimi (salasanan palautus), napsauta Tarkista nimet-painiketta varmistaaksesi, että ryhmän nimi on oikea, ja valitse OK, kuten kuvassa 2 esitetään.
kuva 2: merkitään ryhmän nimi
kuva 2: merkitään ryhmän nimi
  1. kun olet varmistanut, että ryhmän nimi on lueteltu käyttäjät tai ryhmät-sivulla, valitse seuraava, kuten kuvassa 3.
kuva 3: varmistetaan, että ryhmän nimi on luettelossa
kuva 3: Varmista, että ryhmän nimi on luettelossa
  1. Valitse tehtävät Delegoitavaksi-sivulta Nollaa käyttäjän salasanat ja pakota salasanan vaihto seuraavan kirjautumisen yhteydessä ja valitse seuraava, kuten kuvassa 4 esitetään.
Kuva 4: tehtävien valinta, joille
Kuva 4: tehtävien valinta, joille tehtävät siirretään
  1. Tarkista ohjatun toiminnon viimeisellä sivulla olevat tiedot ja napsauta Finish.

kun napsautat Valmis-painiketta, ohjatun ohjauksen delegointi lisää pyydetyt käyttöoikeudet kaikille käyttäjille OU: hun. Voit tarkastella delegoinnin vaikutuksia napsauttamalla hiiren kakkospainikkeella kaikki käyttäjät OU-kohtaa, valitsemalla Ominaisuudet ja valitsemalla Suojaus-välilehden. (Jos suojaus-välilehti ei ole näkyvissä, ota käyttöön lisäominaisuudet-asetus Active Directory-käyttäjien ja tietokoneiden konsolin Näytä-valikosta.) Saadaksesi yksityiskohtaisen näkymän, voit napsauttaa Lisäasetukset-painiketta. Kuvassa 5 on näkyviin tuleva suojausasetukset – valintaikkuna.

 kuva 5: Dacl: n tarkistaminen kaikille käyttäjille OU
kuva 5: Dacl: n tarkistaminen kaikille käyttäjille OU

ACLs, ACEs, and Trustees—Oh My!

ymmärtääksesi lisäasetukset-valintaikkunassa annettavat tiedot, sinun on tiedettävä seuraavista Windowsin suojauskäsitteistä: access control list (ACL), access control entry (ACE), trustee ja inheritance. Sinun on myös ymmärrettävä nämä käsitteet käyttääksesi Remove-DSACE. ps1.

ACL. ACL: iä on kahdenlaisia: harkinnanvaraisia ACL: iä (dacls) ja system ACL: iä (SACLs). DACL tunnistaa tilit, joilla on lupa tai evätty pääsy objektiin. SACL kuvaa, miten järjestelmänvalvoja haluaa kirjata yritykset päästä objektiin (eli valvonta).

ässä. Eturistiside koostuu Ässistä. Jokainen ässä tunnistaa toimitsijamiehen ja määrittää toimitsijamiehen pääsyn (Salli, Estä tai auditoi) objektille. Ohjausvelhon delegaatio lisää Ässät MAINOSKONTIN DACL: ään. Kuvassa 5 esitetään DACL kaikille käyttäjille OU. Tässä luvussa termi lupamerkintä on synonyymi ACE: lle.

luottamusmies. Toimitsijamies on yhteisö (käyttäjä, tietoturvaryhmä tai kirjautumisistunto), johon ACE: tä sovelletaan. Jokainen ässä koskee yhtä edunvalvojaa. Kuviossa 5 termi pääoma on synonyymi omaisuudenhoitajalle. Kuva 5 osoittaa, että salasanan Palauttamisryhmässä on kaksi ässää. Toisin sanoen, salasanan palautus ryhmä on luottamusmies (rehtori) näiden kahden Ässän.

perintö. Ässä voidaan soveltaa suoraan objektiin, tai se voidaan periä resurssin pääobjektista. Kuvassa 5, kaksi ässää kaikille käyttäjille OU, jotka sisältävät salasanan palautus ryhmä kuin toimitsija ei peritty emoastiasta (eli peritty sarakkeesta lukee Ei mitään), koska delegointi Ohjausvelho lisäsi ne suoraan DACL. Kuvassa 6 esitetään KIRJANPITOYKSIKÖN DACL. Kirjanpito OU: n DACL sisältää kaksi ässää salasanan Palautusryhmälle, mutta nämä Ässät periytyvät kaikilta käyttäjiltä OU (eli peritty sarakkeesta lukee ou=kaikki käyttäjät, DC=fabrikam,DC=paikallinen).

 kuva 6: Dacl: n tarkistaminen kirjanpidossa ou
kuva 6: Dacl: n tarkistaminen kirjanpidossa OU

Esittelyssä Remove-DSACE. ps1

kirjoitin Remove-DSACE. ps1 (lyhenne sanoista remove directory service ACEs) saavuttaakseni seuraavat tavoitteet:

  • Etsi OUs sisältää ei-peritty Ässät sisältävät edunvalvojan.
  • Rekursioidu pyydettäessä alaotsikoihin.
  • Poista ei-perityt Ässät, joissa on edunvalvoja.
  • tuota tiivis tuotos.

käsikirjoituksen syntaksi on seuraava:

Remove-DSACE path 

parametri-Report tai-Remove määrittää, luetellaanko komentosarja ei-perittyjä Ässiä vai poistetaanko ne. Jos täsmennetään-raportti, skripti löytää ei-perityt Ässät, jotka sisältävät luottamusmiehiä, mutta se ei poista niitä. Jos määrität-Poista, skripti poistaa ei-perityt Ässät. On erittäin tärkeää ymmärtää, että käsikirjoitus poistaa kaikki ei-perityt Ässät edunvalvojalle, ei vain Ässät, jotka Ohjausvelhon delegaatio on lisännyt. Tämä johtuu siitä, että ei ole mitään keinoa määrittää, miten ei-peritty Ässät lisättiin.

– Report-ja-Remove-parametrit ovat valinnaisia, mutta skripti olettaa oletusarvoisesti-Report-parametrin. Skripti heittää virheen, jos määrität molemmat parametrit samaan aikaan.

voit määrittää-Path-parametrin avulla yhden tai useamman AD OUs: n erottuvan nimen (DNs). – Path-parametrin nimi on valinnainen ja hyväksyy putkilinjan syötön. Vaikka voit määrittää useita DNs, et voi käyttää yleismerkkejä.

– luottamusmies-parametri nimeää luottamusmiehen, joka löytyy Ässistä. Käsikirjoitus tutkii jokaisen OU: n DACL: n ei-perityille Ässille, jotka sisältävät nimetyn edunvalvojan. Voit määrittää useita luottamusmiehiä käyttämällä pilkulla rajattua luetteloa tai taulukkoa, mutta et voi käyttää yleismerkkejä. Voit määrittää luottamushenkilöiden nimet käyttäen mitä tahansa taulukossa 1 luetelluista nimimuodoista.

Muoto Esimerkki
Taulukko 1: Toimitsijamiehen parametrin nimimuodot
Windows NT 4.0 naming format (NT4) FABRIKAM\KenDyer
kohteen DN CN=Ken Dyer, CN=Users, DC=fabrikam, DC=com
kohteen kanoninen nimi fabrikam.com/Users/Ken Dyer
olion käyttäjänimi (UPN)

lisäät-Recurse-parametrin, jos haluat etsiä OUs: ia määritetyn OU: n alta. Jos haluat muodostaa yhteyden tiettyyn toimialueen ohjaimeen (DC), voit määrittää palvelimen nimen parametrilla
-ServerName. Sekä-Rekurse että-ServerName-parametrit ovat valinnaisia.

skripti tukee vaihtoehtoisia tunnistetietoja. – Credential parametri käyttää PSCredential objekti, joka sisältää käyttäjätunnuksen ja salasanan script tulisi käyttää yhteyden verkkotunnuksen.

skripti tukee myös-Confirm-parametria. – Confirm-parametri on merkityksellinen vain yhdessä-Remove-parametrin kanssa. – Confirm-parametri on oletusarvoisesti käytössä, ellet poista sitä käytöstä määrittämällä-Confirm:$FALSE tai asettamalla $ConfirmPreference-muuttujan nollaksi. Sinun pitäisi vain poistaa-Vahvista parametri, kun olet täysin varma olet poistamalla oikea Ässät.

skripti tuottaa tulostusobjekteja, jotka sisältävät taulukossa 2 luetellut ominaisuudet.

omaisuus kuvaus
Taulukko 2: Output Object Properties for Remove-DSACE.ps1
polku OU: N DN
välimies välimiehen nimi toimialueen\name muodossa
Ässät perimättömien Ässien määrä OU: n ETL: ssä
tulos * sana “poistettu” tai virheilmoitus
*Tulosominaisuus on olemassa vain käytettäessä-Remove-parametria.

käsikirjoituksessa on mukana vain ous, jonka perimättömät Ässät sisältävät edunvalvojan. Perityt Ässät edunvalvojalle eivät kuulu tuotokseen. Kuvassa 7 on kaksi esimerkkiä. Kuvan 7 ensimmäinen komento ei tuota tulosta, koska kirjanpidon OU: n DACL ei sisällä ei-perittyjä Ässiä salasanan Palauttamisryhmälle. (Kirjanpito OU on kaksi ässää salasanan palautus ryhmä, mutta nämä Ässät periytyvät kaikki käyttäjät OU, kuten kuvassa 6.) Toinen käsky Kuvassa 7 tuottaa tuotoksen. On olemassa kaksi ei-peritty Ässät salasanan palautus Ryhmä All Users OU (kuten kuvassa 5).

 Kuva 7: kahden komennon ulostulon Vertailu
Kuva 7: Vertaamalla kahden komennon ulostuloa

reaalimaailman esimerkki

Katsotaanpa, miten voisit käyttää Remove-DSACE.ps1: tä reaalimaailmassa. Oletetaan, että ylläpitäjä, fabrikam.local domain oli käyttänyt delegointi ohjaus ohjatun siirtää käyttöoikeudet sihteerit henkilöstöryhmään kaikki käyttäjät OU ja jotkut OUs sen alla, mutta hän ei muista, mikä OUs. Sinun täytyy poistaa nämä delegoidut käyttöoikeudet, jotta voit siirtää käyttöoikeudet muille ryhmille.

ensin on nähtävä lista niistä OUs: ista, joilla on ei-perittyjä Ässiä, jotka sisältävät sihteeristön henkilöstöryhmän. Voit tehdä niin, voit käyttää komentoa:

Remove-DSACE -Report ` -Path "OU=All Users,DC=fabrikam,DC=local" ` -Trustee "FABRIKAM\Secretarial_Staff" ` -Recurse | Format-List

tämä komento ja sen ulostulo on esitetty kuvassa 8.

 Kuva 8: listataan ne ou: t, joilla on ei-peritty Ässät, jotka sisältävät sihteeristön henkilöstöryhmän
kuvio 8: listataan ne ou: t, joilla on ei-peritty Ässät, jotka sisältävät sihteeristön henkilöstöryhmän

tästä tulosteesta voidaan nähdä, että on kolme ou: ta, joilla on ei-peritty Ässät, jotka sisältävät sihteeristön henkilöstöryhmän. Kun olet varmistanut, että voit poistaa nämä Ässät, voit korvata-Report-parametrin-Remove-parametrilla ja toistaa komennon kuvan 9 mukaisesti. Kuten aiemmin mainitsin, jos sihteeristön henkilöstöryhmälle on annettu muita oikeuksia Ohjausvelhon delegoinnin ulkopuolella, nekin poistetaan.

 Kuva 9: poistetaan ne ou: t, joilla ei ole perittyjä Ässiä ja jotka sisältävät sihteeristön henkilöstöryhmän
Kuva 9: Niiden ou: iden poistaminen, joilla on ei-perittyjä Ässiä, jotka sisältävät sihteeristön henkilöstöryhmän

ota AD: n delegointi

Ohjausvelhon delegointi on erittäin hyödyllinen työkalu, mutta ei ole helppoa tapaa nopeasti tarkastella tai kääntää sen vaikutuksia. Tosin Dsrevokea voi käyttää.exe ja Dsacl.exe suorittaa nämä tehtävät, nämä työkalut on joitakin rajoituksia. Jos käytät sen sijaan Remove-DSACE.ps1-komentosarjaa, voit hallita AD: n delegoituja oikeuksia paremmin. Voit ladata tämän script klikkaamalla lataa koodi-painiketta sivun yläreunassa.

Brian Desmondin aiheeseen liittyviä videoita (VIP access only):
Session 1: Mastering Active Directory Permissions Delegation
Session 2: Mastering Active Directory Security Permissions Delegation

Leave a Reply