gedelegeerde machtigingen voor Active Directory weergeven of verwijderen
Active Directory (AD) – delegatie is een cruciaal onderdeel van de IT-infrastructuur van veel organisaties. Door beheer te delegeren, kunt u gebruikers of groepen alleen de machtigingen verlenen die ze nodig hebben zonder gebruikers toe te voegen aan bevoorrechte groepen (bijvoorbeeld Domeinadministrators, Accountoperators). De eenvoudigste manier om delegatie te bereiken is met behulp van de wizard delegeren van beheer in de MMC-module (Microsoft Management Console) Active Directory-gebruikers en Computers.
gerelateerd: Active Directory beheren met PowerShell
hoewel de wizard delegeren een eenvoudige manier biedt om machtigingen te delegeren, is er geen overeenkomstige wizard voor het verwijderen van gedelegeerde machtigingen. Iemand bij Microsoft moet deze tekortkoming hebben opgemerkt en creëerde een command-line programma genaamd Dsrevoke.exe waarmee de machtigingsitems kunnen worden verwijderd die zijn toegevoegd door de wizard delegeren van controle.
echter, de Dsrevoke.exe-programma heeft twee belangrijke technische beperkingen, die zijn gedocumenteerd in het Microsoft-artikel “Wanneer u het opdrachtregelprogramma Dsrevoke gebruikt om machtigingen voor alle organisatie-eenheden in een op Windows Server 2003 gebaseerd domein te rapporteren, retourneert de tool mogelijk niet alle toegangsbeheer-items.”Deze beperkingen zijn:
- Dsrevoke.exe kan slechts tot 1.000 ou ‘ s in één zoekopdracht vinden. De voorgestelde oplossing voor deze beperking is om het zoeken van het programma te starten in een dieper geneste organisatie-eenheid (OU) om het aantal resultaten te verminderen.
- Dsrevoke.exe mislukt als een organisatie-eenheid een forward slash ( / ) – teken in hun naam bevat. Er is geen oplossing voor deze beperking anders dan het hernoemen van de gewraakte ou ‘ s.
bij het werken met Dsrevoke.exe onlangs was ik in staat om te werken rond het eerste probleem, maar toen liep ik in het tweede probleem. Om organisatorische redenen was het hernoemen van de OU ‘ s om het slash-teken te verwijderen geen optie. Trouwens, de slash is een geldig karakter in een OU naam, en Dsrevoke.exe moet werken, ongeacht of een organisatie-eenheid een schuine streep in zijn naam bevat of niet. Ook was werken rond de 1000 OU limiet in mijn omgeving tijdrovend.
vanwege deze problemen besloot ik te kijken of er ingebouwde alternatieven voor Dsrevoke waren.executable. Beginnend in recente versies van Windows, de Dsacls.het exe-programma biedt een manier om de machtigingen te verwijderen die zijn toegevoegd door de wizard delegeren van controle. Hoewel het niet faalt als een OU een slash bevat in zijn naam, Dsacls.exe kan geen subcontainers zoeken naar permissies zoals Dsrevoke.exe wel.
ik besloot eerst gewoon een eenvoudig script te schrijven om naar ou ‘s te zoeken en Dsacl’ s aan te roepen.exe om de gedelegeerde machtigingen van elke organisatie-eenheid te verwijderen. Echter, toen ik dacht over hoe ik wilde een dergelijk script te ontwerpen, het kwam bij me op dat ik zou ook graag een lijst van die OUs had machtigingen gedelegeerd aan een bepaalde gebruiker of groep te zien. Dsrevoke.exe en Dsacls.exe kan een lijst met permissies produceren, maar de uitvoer is erg lang en technisch. Ik wilde iets simpelers.
vanwege de beperkingen in Dsrevoke.exe en Dsacls.exe, en mijn wens om kortere output te krijgen, heb ik besloten om een Windows PowerShell script te schrijven om de functionaliteit die ik wilde krijgen. Het resultaat is Remove-DSACE. ps1. Voordat ik dit script te bespreken, hoewel, ik moet wat achtergrondinformatie over wat er gebeurt wanneer u de delegatie van controle Wizard te gebruiken, evenals betrekking hebben op een aantal fundamentele Windows-beveiligingsconcepten.
gedelegeerde machtigingen toevoegen met de Wizard
zoals ik al eerder zei, biedt de wizard delegeren van controle een eenvoudige manier om machtigingen te delegeren. Stel dat u bijvoorbeeld wilt dat leden van de Wachtwoordherstelgroep wachtwoorden kunnen resetten voor gebruikers in de organisatie-eenheid alle gebruikers in uw ADVERTENTIEDOMEIN. Om dit te doen, moet u deze stappen uit te voeren:
- Open de Active Directory-console gebruikers en Computers.
- Klik met de rechtermuisknop op de OU alle gebruikers en kies delegeren, zoals weergegeven in Figuur 1. Klik op de knop Volgende om verder te gaan langs de welkomstpagina van de wizard.
- klik op de pagina Gebruikers of groepen van de wizard op de knop Toevoegen.
- voer in het dialoogvenster Gebruikers, Computers of groepen selecteren de naam van de groep in (wachtwoordreset), klik op de knop Namen controleren om te controleren of de naam van de groep correct is en klik op OK, zoals weergegeven in Figuur 2.
- nadat u ervoor hebt gezorgd dat de naam van de groep wordt weergegeven op de pagina Gebruikers of groepen, klikt u op Volgende, zoals weergegeven in Figuur 3.
- Selecteer op de pagina Taken delegeren gebruikerswachtwoorden opnieuw instellen en wachtwoordwijziging forceren bij volgende aanmelding en klik op Volgende, zoals weergegeven in Figuur 4.
- controleer de informatie op de laatste pagina van de wizard en klik op Voltooien.
wanneer u op de knop Voltooien klikt, voegt de wizard delegeren van controle de gevraagde machtigingen toe aan de organisatie-eenheid voor alle gebruikers. U kunt de effecten van de delegatie bekijken door met de rechtermuisknop op de organisatie-eenheid alle gebruikers te klikken, Eigenschappen te kiezen en het tabblad beveiliging te selecteren. (Als het tabblad Beveiliging niet zichtbaar is, schakelt u de optie Geavanceerde functies in het menu Beeld van de Active Directory-gebruikers en Computers-console in.) Voor een gedetailleerde weergave, kunt u klikken op de Meer Opties knop. Figuur 5 toont het dialoogvenster Geavanceerde beveiligingsinstellingen dat wordt weergegeven.
ACLs, ACEs, and Trustees-Oh My!
om de informatie te begrijpen die wordt verstrekt in het dialoogvenster Geavanceerde beveiligingsinstellingen, moet u de volgende beveiligingsconcepten van Windows kennen: access control list (ACL), access control entry (ACE), trustee en overerving. U moet deze concepten ook begrijpen om Remove-DSACE.ps1.
ACL te gebruiken. Er zijn twee soorten ACL ‘s: discretionaire ACL’ s (DACL ‘s) en systeemacl’ s (SACL ‘ s). Een DACL identificeert de accounts die toegang tot een object zijn toegestaan of geweigerd. Een SACL beschrijft hoe een beheerder pogingen om toegang te krijgen tot een object (bijvoorbeeld auditing) wil loggen.
ACE. Een ACL bestaat uit Azen. Elke ACE identificeert een trustee en geeft de toegang van de trustee (toestaan, weigeren, of audit) voor het object. De wizard delegeren van beheer voegt Azen toe aan de DACL van een ADVERTENTIECONTAINER. Figuur 5 toont de DACL voor alle gebruikers OU. In deze figuur is de term permission entry synoniem met ACE.
Trustee. Een trustee is de entiteit (een gebruiker, beveiligingsgroep of aanmeldingssessie) waarop een ACE van toepassing is. Elke aas is van toepassing op een enkele trustee. In Figuur 5 is de term Principal synoniem met trustee. Figuur 5 laat zien dat er twee azen zijn toegewezen aan de Wachtwoordresetgroep. Met andere woorden, de Password Reset group is de trustee (principal) voor deze twee azen.
vererving. Een ACE kan direct op een object worden toegepast, of het kan worden overgenomen van het bovenliggende object van de bron. In Figuur 5, de twee azen voor de alle gebruikers OU die de wachtwoord Reset groep bevatten als een trustee zijn niet overgenomen van de ouder container (dat wil zeggen, de overgenomen van kolom leest geen) omdat de delegatie van controle Wizard ze direct toegevoegd aan de DACL. Figuur 6 toont de DACL voor de boekhoudkundige organisatie-eenheid. De DACL van de Accounting OU bevat twee azen voor de Wachtwoordresetgroep, maar deze azen worden overgenomen van de all Users OU (dat wil zeggen, de overgenomen van kolom leest OU=All Users,DC=fabrikam,DC=local).
introductie van Remove-DSACE. ps1
ik schreef Remove-DSACE. ps1 (afkorting voor remove directory service ACEs) om de volgende doelen te bereiken:
- zoek ou ‘ s die niet-geërfde Azen bevatten die een trustee bevatten.
- Recurse in sub-ou ‘ s indien gevraagd.
- niet-geërfde azen met een trustee verwijderen.
- produceer beknopte output.
de syntaxis van het script is als volgt:
Remove-DSACE path
de parameter-Report or-Remove bepaalt of het script niet-overgenomen Azen zal weergeven of verwijderen. Als u-Report opgeeft, vindt het script niet-overgenomen Azen die trustees bevatten, maar verwijdert het ze niet. Als u ‘- Remove ‘ opgeeft, verwijdert het script de niet-overgenomen Azen. Het is erg belangrijk om te begrijpen dat het script alle niet-geërfde Azen voor de trustee zal verwijderen, niet alleen Azen toegevoegd door de delegatie van controle Wizard. Dit komt omdat er geen manier is om te bepalen hoe de niet-geërfde Azen werden toegevoegd.
de parameters-Report en-Remove zijn optioneel, maar het script neemt standaard de parameter-Report aan. Het script zal een fout werpen als je beide parameters tegelijkertijd opgeeft.
u gebruikt de parameter-Path om een of meer DNS (distinguished names) van AD OUs op te geven. De parameter-Path is optioneel en accepteert pipeline invoer. Hoewel u meerdere DNs kunt opgeven, kunt u geen jokertekens gebruiken.
de parameter-Trustee noemt de trustee die in de ACEs moet worden gevonden. Het script onderzoekt elke OU ‘ s DACL voor niet-geërfde azen met de benoemde trustee. U kunt meerdere trustees opgeven met behulp van een door komma ‘ s gescheiden lijst of een array, maar u kunt geen jokertekens gebruiken. U kunt trustee namen opgeven met behulp van een van de naam formaten in Tabel 1.
Formaat | Voorbeeld |
---|---|
Windows NT 4.0 notatie van naamgeving (NT4) | FABRIKAM\KenDyer |
Het object DN | CN=Ken Dyer,CN=Users,DC=fabrikam,DC=com |
Het object canonieke naam | fabrikam.com/Users/Ken Dyer |
Het object user principal name (UPN) |
U -Recurse parameter als u wilt zoeken naar organisatie-Eenheden onder de opgegeven OU. Als u verbinding wilt maken met een specifieke domeincontroller (DC), kunt u de naam van de server opgeven met de parameter
-ServerName. Zowel de parameters-Recurse als-ServerName zijn optioneel.
het script ondersteunt alternatieve referenties. De parameter-Credential gebruikt een PSCredential object dat de gebruikersnaam en het wachtwoord bevat die het script moet gebruiken om verbinding te maken met het domein.
het script ondersteunt ook de parameter-Confirm. De parameter-Confirm is alleen zinvol in combinatie met de parameter-Remove. De parameter-Confirm is standaard ingeschakeld, tenzij je het uitschakelt door-Confirm:$FALSE op te geven of door de variabele $ConfirmPreference op None in te stellen. Je moet de parameter-Confirm alleen uitschakelen als je er absoluut zeker van bent dat je de juiste Azen verwijdert.
het script produceert uitvoerobjecten die de in Tabel 2 vermelde eigenschappen bevatten.
eigenschap | beschrijving |
---|---|
Pad | De OU ‘s DN |
Trustee | De trustee’ s naam in het DOMEIN\naam formaat |
ACEs | Het aantal niet-erfelijke Azen in de OU ‘ s ACL |
Resultaat* | Het woord “Verwijderd” of een foutbericht |
*Het Resultaat is eigendom bestaat alleen bij gebruik van de parameter Verwijderen. |
het script bevat alleen ou ‘ s met niet-geërfde Azen die een trustee bevatten. Geërfde Azen voor een trustee zijn niet opgenomen in de output. Figuur 7 toont twee voorbeelden. Het eerste commando in Figuur 7 geeft geen uitvoer omdat de DACL voor de Accounting OU geen niet-overgenomen Azen bevat voor de Wachtwoordresetgroep. (De Accounting-OU heeft twee azen voor de Wachtwoordresetgroep, maar deze azen worden overgenomen van de OU voor alle gebruikers, zoals weergegeven in Figuur 6.) Het tweede commando in Figuur 7 produceert output. Er zijn twee niet-overgenomen Azen voor de Wachtwoordresetgroep in de OU alle gebruikers (zoals te zien in Figuur 5).
Real-World voorbeeld
laten we eens kijken hoe je Remove-DSACE.ps1 zou kunnen gebruiken in de echte wereld. Stel dat een beheerder in de fabrikam.het lokale domein had de wizard delegeren van controle gebruikt om machtigingen te delegeren aan de groep secretariële medewerkers in de OU ‘s voor alle gebruikers en enkele van de OU’ s eronder, maar hij weet niet meer welke ou ‘ s. U moet deze gedelegeerde machtigingen verwijderen, zodat u de machtigingen aan andere groepen kunt delegeren.
eerst moet u een lijst zien van de OU ‘ s die niet-geërfde Azen hebben met daarin de groep secretariële medewerkers. Om dit te doen, kunt u het commando:
Remove-DSACE -Report ` -Path "OU=All Users,DC=fabrikam,DC=local" ` -Trustee "FABRIKAM\Secretarial_Staff" ` -Recurse | Format-List
dit commando en de uitvoer ervan zijn weergegeven in Figuur 8.
uit deze output kunt u zien dat er drie ou ‘ s zijn die niet-geërfde Azen hebben die de Secretariaatsgroep bevatten. Nadat u hebt geverifieerd dat u deze Azen kunt verwijderen, kunt u de parameter-Report vervangen door de parameter-Remove en het commando herhalen, zoals weergegeven in Figuur 9. Zoals ik al eerder zei, als de groep secretariële medewerkers andere machtigingen buiten de wizard delegeren van controle is toegewezen, worden deze ook verwijderd.
neem de controle over Ad delegatie
de wizard delegeren van controle is een zeer nuttig hulpmiddel, maar er is geen gemakkelijke manier om snel de effecten ervan te bekijken of om te keren. Hoewel u Dsrevoke kunt gebruiken.exe en Dsacls.exe om deze taken uit te voeren, deze tools hebben een aantal beperkingen. Als u in plaats daarvan het script Remove-DSACE.ps1 gebruikt, hebt u betere controle over gedelegeerde machtigingen in AD. U kunt dit script downloaden door op de knop Download de Code aan de bovenkant van de pagina te klikken.
gerelateerde video ‘ s van Brian Desmond (alleen VIP-toegang):
Sessie 1: Mastering Active Directory Permissions Delegation
Sessie 2: Mastering Active Directory Security Permissions Delegation
Leave a Reply