bent u op zoek naar een snelle manier om een Active Directory (AD) rapport aan te maken met PowerShell? U bent hier aan het juiste adres! In dit artikel leert u hoe u aangepaste rapporten van gebruikersaccounts kunt maken in uw ADVERTENTIEOMGEVING met behulp van de Get-ADObject
cmdlet.
stel je voor dat je bij een startend bedrijf werkt en ontdek dat het bedrijf financiering kreeg van Investeerders om het bedrijf te laten groeien door nieuwe mensen aan te nemen voor verschillende functies., Uw manager geeft u een verzoek om haar te voorzien van een rapport over de head count voor elk kantoor om ervoor te zorgen dat de werkplek voldoende kantoorruimte heeft.
normaal gesproken kunt u AD-accounts handmatig weergeven met behulp van de aduc-toepassingsconsole (Active Directory Users and Computers) die op uw desktopcomputer is geïnstalleerd. Echter, het gebruik van ADUC duurt gemiddeld een minuut per nieuwe werknemer om informatie te bekijken voor elke advertentie account.,
u zoekt snel op het Internet naar enkele opties en ontdekt dat u het verzamelen van de AD-rapportgegevens kunt automatiseren met behulp van een PowerShell-cmdlet genaamd Get-ADObject
. In dit artikel leer je wat de Get-AdObject
PowerShell cmdlet doet en hoe je deze handige AD PowerShell cmdlet correct kunt gebruiken om het maken van rapporten te automatiseren.
inhoudsopgave
Prerequisites/Requirements
Dit artikel wordt een doorloop met Get-ADObject
., Als u van plan bent mee te gaan, moet u de volgende voorwaarden hebben:
- ingelogd op een Windows 10-PC met een domein als gebruiker met rechten om AD-gebruikers
- te bevragen in een Active Directory-omgeving van Windows Server 2016 of hoger. Het lab waarmee je in dit artikel gaat werken heet mylab.lokaal.
- Remote Server Administration Tools (RSAT) package
snelle tip: als RSAT niet is geïnstalleerd en u de nieuwste versie van Windows 10 hebt, kunt u het snel installeren met behulp van het PowerShell-commando
Install-WindowsFeature -Name RSAT-AD-PowerShell
.,
Get-ADObject: het zijn opties en Parameters
het belangrijkste doel van de Get-ADObject
cmdlet is om verbinding te maken met een AD domeincontroller of LDS-server (Lightweight Directory Service) en informatie over verschillende Active Directory-objecten te retourneren.
om AD-objecten te bevragen, heeft de cmdletGet-ADObject
een aantal parameters waarmee u verbinding kunt maken met verschillende domeincontrollers, een globale catalogus kunt doorzoeken, kunt verifiëren via alternatieve referenties en ook LDAP-filters kunt opgeven en objecten kunt beperken die door scope worden geretourneerd voor een zoekbasis.,
merk op dat standaard de
Get-ADObject
cmdlet slechts een enkele set van 1000 AD objecten retourneert. De beste manier om deze configuratie te negeren is door de parameterResultSetSize
te gebruiken die het maximum aantal objecten specificeert dat geretourneerd moet worden. Als je alle objecten wilt ontvangen, stel je deze parameter in op $Null (null waarde). Vervolgens kunt u Ctrl+C gebruiken om de query en terugkeer van objecten te stoppen.,
voor meer informatie over Get-ADObject
’s parameters, bekijk de Get-ADObject
help documentatie.
Learning Project Outline
Dit artikel leert u de Get-ADObject
PowerShell cmdlet door het toe te passen op een real-world scenario. U zult leren door het benaderen van het scenario uitgelegd in de inleidende paragrafen.
het Scenario
In dit artikel gaat u leren hoe u Get-ADObject
gebruikt om twee rapporten te genereren om naar uw manager te sturen., Het eerste rapport zal alle gebruikersaccounts in elke afdeling opsplitsen. De baas wil aparte CSV-bestanden voor elke afdeling. De tweede taak zal alle uitgeschakelde gebruikersaccounts in een specifieke organisatie-eenheid en het kind-organisatie-eenheden opvragen.,
aan het eind van het artikel, zult u in staat zijn om het genereren van CSV-bestanden die lijken op het volgende:
De AD-Omgeving
Het Active Directory-organisatie-eenheid (OU) structuur zult u werken met de in dit artikel ziet er uit als hieronder., U kunt zien dat we een ouder afdeling OU met drie kinderen ou ‘ s genaamd Accounting, Marketing en IT. In elk van deze Kind-ou ’s zijn twee kleinkind-ou’ s genaamd Gebruikers en Computers.
- afdeling (OU)
– Accounting (OU)
– gebruikers
– Computers
– Marketing (geneste OU)
– gebruikers
– Computers
– IT (geneste OU)
– gebruikers
– Computers
snelkoppeling: u kunt deze ou ‘ s bouwen met de
New-ADOrganizationalUnit
PowerShell cmdlet. Voor een script om hier snel werk van te maken, kijk dan op het Create-OU-Structure.ps1 script.,
u zult ook werken met tientallen verschillende ad-gebruikersaccounts in elk van de gebruikers-eenheden, zoals hieronder weergegeven. Deze namen werden willekeurig gekozen.
- Accounting (accountant_user1-5)
- Marketing (market_user_user1-5)
- IT (it_user1-5)
snelkoppeling: als u snel deze gebruikersaccounts wilt aanmaken binnen de hiervoor genoemde organisatie-eenheden, download en voer het script Populate-AD_Accounts.ps1 uit.,
Active Directory-rapporten maken met behulp van Get-ADObject
genoeg inleiding en achtergrondinformatie over Get-ADObject.
laten we eindelijk leren hoe deze PowerShell-cmdlet in de echte wereld werkt!
in dit eerste voorbeeld moet u uw manager een CSV-bestand voorzien van een rapport voor alle gebruikersaccounts die bestaan in de OU ‘ s van de Accounting -, Marketing-en IT-afdeling.,
inzicht in de Filterparameter
de enige vereiste parameter van deGet-ADObject
PowerShell cmdlet isFilter
. Dit is een parameter is een manier om het aantal geretourneerde objecten te beperken. Omdat het een vereiste parameter is, moet je het definiëren, zelfs als je alle objecten wilt retourneren met een jokerteken (*
). Dit vertelt Get-ADObject
om alle objecten terug te geven.
het eenvoudigste voorbeeld van het gebruik van de parameter Filter
is het retourneren van alle objecten in een volledig AD-domein zoals hieronder.,
PS51> Get-ADObject -Filter *
u zult de parameter Filter
zien die gebruikt wordt om zowel alle objecten te retourneren als Om de reikwijdte van geretourneerde objecten in dit artikel te beperken.
voor meer informatie over de syntaxis van de parameter
Filter
voerGet-Help about_ActiveDirectory_Filter
uit in de PowerShell-console.
beperkend zoekbereik met behulp van de Zoekbase Parameter
het voorbeeld waarmee u werkt is een perfect use case voor Get-ADObject
’s SearchBase
parameter., Met de parameter SearchBase
kunt u de zoekopdracht beperken en dus objecten die worden geretourneerd via Get-ADObject
door de scope te beperken tot een bepaalde organisatie-eenheid.
door de scope te beperken, verkort dit de tijd die nodig is om Get-ADObject
uit te voeren door andere ou ‘ s in AD uit te sluiten en alleen gericht te zijn op de specifieke OU die relevant is voor het ophalen van de gegevens die u nodig hebt.
in dit voorbeeld, trek alle AD-gebruikers in de ouderafdeling OU en alle dochter-ou ‘ s eruit zoals hieronder. Dit retourneert alle gebruikers in de afdeling OU en in alle Kind-ou ‘ s.,
PS51> Get-ADObject -Filter * -SearchBase 'OU=Department,DC=mylab,DC=local'
gebruikmakend van de Filterparameter
vanaf nu kunt u alle gebruikersobjecten in de afdeling OU en alle dochter-ou ‘ s opvragen. Maar dat is nu niet nodig. In plaats daarvan, laten we gewoon trekken uit alle Accounting gebruikers eerste. Een manier om dat te doen is om de parameter Filter
te gebruiken in plaats van alleen een jokerwaarde te geven.
om de resultaten te beperken, gebruikt u de waarde Filter
van Department -eq 'Accounting'
., Dit beperkt de resultaten tot alleen die objecten in de afdeling OU die een ad afdeling attribuut ingesteld op Accounting.
hieronder kunt u zien dat u alle objecten in de variabele $accounting_users
opslaat. Dit wordt later gebruikt.
PS51> $accounting_users = Get-ADObject -SearchBase 'OU=Department,DC=mylab,DC=local' -Filter {Department -eq "Accounting"}
AD-objecten uitvoeren naar een CSV-bestand
nu $accounting_users
alle toepasselijke objecten bevat, kunt u alleen de Name
en Department
eigenschappen voor elk object naar de Export-Csv
cmdlet., Deze cmdlet maakt een nieuw CSV-bestand en slaat elk AD-object als een rij op.
u moet nu een CSV-bestand hebben met de naam report_accounting_users.csv op uw bureaublad op zoek naar de screenshot hieronder.
verzamelen van andere gebruikersobjecten
Nu u de basis van het gebruik van Get-ADObject
kent, kunt u AD-gebruikers vinden door dit uit te breiden om de gebruikersobjecten voor de andere afdelingen te vinden. U zult hetzelfde algemene concept gebruiken als voorheen.,
zoek eerst alle AD-gebruikers in het kantoor van San Francisco.
Zoek vervolgens alle gebruikers die in het kantoor in Florida werken. Dit voorbeeld is een beetje anders omdat je de berekende eigenschappen van Select-Object
cmdlet gebruikt. Hiermee kunt u de objecteigenaam omzetten van gewoon st
die afkomstig is van Get-ADObject
naar een meer beschrijvende State
.,
verzamel tenslotte alle IT-gebruikers. In plaats van het attribuut Department AD te gebruiken, gebruikt u deze keer de parameter Filter
om alle objecten te vinden met een naam die daarmee begint.
opmerking: in plaats van
objectClass -eq 'user'
in het vorige voorbeeld, had u ook deGet-AdUser
cmdlet kunnen gebruiken.,
het vinden van Uitgeschakelde Accounts met het LDAP-Filter
In het vorige voorbeeld gebruikte u de parameter Filter
om de objecten te beperken die worden geretourneerd door Get-ADObject
. Een andere manier om dat te doen is door de parameter LDAPFilter
te gebruiken. Deze parameter voert dezelfde taak uit, maar stelt u in staat om een filter op te geven via een LDAP query-zoekstring., De parameter LDAPFilter
wordt beschouwd als een meer geavanceerde optie om in Active Directory te zoeken.
laten we nu een rapport maken om alle Uitgeschakelde gebruikers in uw organisatie te vinden met behulp van de LDAPFilter
en SearchBase
parameters om een specifieke organisatie-eenheid te targeten.
De UserAccountControl:1.2.840.113556.1.4.803:=2 instelling is een ad attribuut gespecificeerd voor alle gehandicapte gebruikers in de Active Directory NTDS database. Het is een manier voor AD om accounts te markeren die niet actief zijn (Aanmelden is uitgeschakeld)., Hier zijn meer voorbeelden van LDAP-query ‘ s die u misschien nuttig vindt.
het onderstaande commando voert de LDAP-filterparameter uit die gebruikt wordt om alleen gehandicapte gebruikers weer te geven en maakt vervolgens een rapport aan met behulp van de Export-CSV
cmdlet zoals u eerder hebt gedaan.
het eindresultaat
u moet nu vijf CSV-bestanden op uw bureaublad klaar hebben voor uw manager!,
samenvatting
In dit artikel hebt u geleerd hoe u in Active Directory kunt zoeken met deGet-ADObject
PowerShell-cmdlet.
wat nu?
om verder te gaan met wat u hebt geleerd, kunt u dit proces van het genereren van AD-rapporten naar een hoger niveau tillen door de gegevens naar een database te exporteren. Eenmaal in een database, je zou kunnen hebben de advertentie rapport gegevens toegankelijk met behulp van een op maat gemaakte website of een applicatie zoals Microsoft SharePoint. Dit is maar één idee. Er zijn talloze anderen!,
De mogelijkheid om Active Directory te doorzoeken is een fundamentele skillset die in veel organisaties nodig is en die u en uw team uiteindelijk uren tijd bespaart.
verder lezen
- Active Directory Scripts in overvloed: kom het halen!
- Microsoft Documentation