letar du efter ett snabbt sätt att skapa en Active Directory (AD) rapport med PowerShell? Du har kommit till rätt ställe! I den här artikeln lär du dig hur du skapar egna rapporter om användarkonton i din annonsmiljö med hjälp av Get-ADObject
cmdlet.
Föreställ dig att du arbetar på ett startföretag och lär dig att företaget fick finansiering av investerare för att växa företaget genom att anställa nya personer för flera positioner., Din chef ger dig en begäran om att ge henne en rapport om huvudantalet för varje kontor för att se till att arbetsplatsen har tillräckligt med kontorsutrymme.
normalt skulle du manuellt visa annonskonton genom att använda programkonsolen Active Directory Users and Computers (ADUC) som är installerad på din stationära dator. Med hjälp av ADUC tar det dock i genomsnitt en minut per ny anställd att granska information för varje annonskonto.,
du söker snabbt på Internet efter några alternativ och upptäcker att du kan automatisera att samla in annonsrapporteringsdata med hjälp av en PowerShell cmdlet som heter Get-ADObject
. I den här artikeln lär du dig vad Get-AdObject
PowerShell cmdlet gör och hur du använder den här praktiska annonsen PowerShell cmdlet korrekt för att automatisera rapportskapandet.
Innehållsförteckning
förutsättningar/krav
den här artikeln kommer att vara en genomgång medGet-ADObject
., Om du planerar att följa med, se till att du har följande förutsättningar på plats:
- inloggad på en domän-gick Windows 10 PC som användare med rätt att fråga annonsanvändare
- i en Windows Server 2016 eller högre Active Directory-miljö. Labbet du kommer att arbeta med i den här artikeln heter mylab.lokalt.
- Remote Server Administration Tools (RSAT) paket
Snabbtips: om du inte har RSAT installerat och du är på den senaste versionen av Windows 10, kan du snabbt installera det med kommandot PowerShell
Install-WindowsFeature -Name RSAT-AD-PowerShell
.,
Get-ADObject: Det är Alternativ och Parametrar
Det huvudsakliga syftet med Get-ADObject
cmdlet för att ansluta till en AD-domän controller eller Lightweight Directory Service (LDS) server och returnerar information om olika Active Directory-objekt.
för att söka efter ANNONSOBJEKT harGet-ADObject
cmdlet ett antal parametrar som gör att du kan ansluta till olika domänkontrollanter, söka i en global katalog, autentisera via alternativa autentiseringsuppgifter och även ange LDAP-filter och begränsa objekt som returneras av scope för en sökbas.,
Observera att
Get-ADObject
cmdlet som standard bara returnerar en enda uppsättning av 1000 ANNONSOBJEKT. Det bästa sättet att åsidosätta denna konfiguration är att använda parameternResultSetSize
som anger det maximala antalet objekt som ska returneras. Om du vill ta emot alla objekt ställer du in den här parametern till $Null (null-värde). Då kan du använda Ctrl+C för att stoppa frågan och returnera objekt.,
För mer information omGet-ADObject
s parametrar, kolla in hjälpdokumentationenGet-ADObject
.
Learning Project Outline
den här artikeln lär digGet-ADObject
PowerShell cmdlet genom att tillämpa den på ett verkligt scenario. Du lär dig genom att närma sig scenariot som förklaras i de inledande styckena.
scenariot
i den här artikeln kommer du att lära dig hur du använderGet-ADObject
för att generera två rapporter att skicka till din chef., Den första rapporten kommer att bryta ner alla användarkonton i varje avdelning. Chefen vill ha separata CSV-filer för varje avdelning. Den andra uppgiften kommer att fråga alla inaktiverade användarkonton i en viss OU och det är barn ou.,
i slutet av artikeln kommer du att kunna generera CSV-filer som ser ut som följande:
annonsmiljön
strukturen för Active Directory organizational unit (ou) som du kommer att arbeta med i den här artikeln ser ut som nedan., Du kan se att vi har en föräldraavdelning OU med tre barn OUs kallas redovisning, marknadsföring och det. Inuti var och en av dessa barn OUs är två barnbarn OUs kallas användare och datorer.
- Department (OU)
– Accounting (OU)
– Users
– Computers
– Marketing (Nested OU)
– Users
– Computers
– IT (Nested OU)
– Users
– Computers
Shortcut: du kan bygga dessa ou med
New-ADOrganizationalUnit
PowerShell cmdlet. För ett skript för att göra snabbt arbete av detta kolla in Create-OU-Structure. ps1 script.,
Du kommer också att arbeta med dussintals olika annonsanvändarkonton som finns inuti var och en av användarna som visas nedan. Dessa namn valdes slumpmässigt.
- redovisning (accountant_user1-5)
- marknadsföring (market_user_user1-5)
- IT (it_user1-5)
genväg: om du vill snabbt skapa dessa användarkonton inuti ovannämnda OUs, ladda ner och kör populate-AD_Accounts.ps1 script.,
skapa Active Directory-rapporter med Get-ADObject
tillräckligt med introduktion och bakgrundsinformation omGet-ADObject.
låt oss äntligen komma ner för att lära oss hur denna PowerShell cmdlet fungerar i den verkliga världen!
i det här första exemplet har du till uppgift att förse din chef med en CSV-fil med en rapport för alla användarkonton som finns i konto -, marknadsförings-och IT-avdelningen.,
förstå Filterparametern
den enda parametern som krävs förGet-ADObject
PowerShell cmdlet ärFilter
. Detta är en parameter är ett sätt att begränsa antalet objekt som returneras. Eftersom det är en nödvändig parameter måste du definiera den även om du vill returnera alla objekt med ett jokertecken (*
). Detta talar om för Get-ADObject
att returnera alla objekt.
det enklaste exemplet på att använda parameternFilter
är att returnera alla objekt i en hel ANNONSDOMÄN som nedan.,
PS51> Get-ADObject -Filter *
du ser parameternFilter
som används för att både returnera alla objekt och begränsa omfattningen av returnerade objekt i hela den här artikeln.
För mer information om parameterns syntax för
Filter
, körGet-Help about_ActiveDirectory_Filter
I PowerShell-konsolen.
begränsa sökområdet med hjälp av parametern SearchBase
exemplet du arbetar med är ett perfekt användningsfall förGet-ADObject
’sSearchBase
parameter., ParameternSearchBase
låter dig begränsa sökfrågan och därmed returneras objekt via Get-ADObject
genom att begränsa räckvidden till en viss OU.
genom att begränsa räckvidden minskar detta den tid det tar för Get-ADObject
att köras genom att utesluta andra Ou i annonsen och bara rikta in den specifika OU som är relevant för att hämta de data du behöver.
i det här exemplet drar du ut alla ANNONSANVÄNDARE i den överordnade avdelningen OU och alla underordnade användare som nedan. Detta kommer att returnera alla användare i Avdelningen OU och i alla barn OUs.,
PS51> Get-ADObject -Filter * -SearchBase 'OU=Department,DC=mylab,DC=local'
utnyttja Filterparametern
Från och med nu kan du fråga alla användarobjekt i Avdelningen OU och alla underordnade ou. Men det är inte nödvändigt just nu. Istället, låt oss bara dra ut alla Bokföringsanvändare först. Ett sätt att göra det är att faktiskt använda parametern Filter
istället för att bara ge ett jokertal.
för att begränsa resultaten, användFilter
– värdet förDepartment -eq 'Accounting'
., Detta begränsar resultaten till endast de objekt i Avdelningen OU som har ett attribut för annonsavdelning som är inställt på redovisning.
Du kan se nedan att du lagrar alla objekt i variabeln $accounting_users
. Detta kommer att användas senare.
PS51> $accounting_users = Get-ADObject -SearchBase 'OU=Department,DC=mylab,DC=local' -Filter {Department -eq "Accounting"}
mata ut Annonsobjekt till en CSV-fil
Nu när$accounting_users
innehåller alla tillämpliga objekt, kan du bara PipaName
ochDepartment
egenskaper för varje objekt tillExport-Csv
cmdlet., Denna cmdlet skapar en ny CSV-fil och lagrar varje annonsobjekt som en rad.
Du bör nu ha en CSV-fil som heter report_accounting_users.csv på skrivbordet ser ut som skärmdumpen nedan.
samla in de andra Användarobjekten
nu när du vet grunderna i hur du använder Get-ADObject
för att hitta ANNONSANVÄNDARE, utöka det för att hitta användarobjekten för de andra avdelningarna. Du kommer att använda samma allmänna koncept som tidigare.,
hitta först alla ANNONSANVÄNDARE i San Francisco-kontoret.
hitta sedan alla användare som arbetar i Floridas kontor. Det här exemplet är lite annorlunda eftersom du använder Select-Object
cmdlets beräknade egenskaper. Detta gör att du kan omvandla objektets egenskapsnamn från st
som kommer från Get-ADObject
till en mer beskrivande State
.,
slutligen, samla alla It-användare. Den här gången använder du parametern Filter
istället för att använda attributet Department AD för att hitta alla objekt med ett namn som börjar med det.
Obs! istället för att använda
objectClass -eq 'user'
I föregående exempel kunde du också ha använtGet-AdUser
cmdlet.,
hitta inaktiverade konton med LDAP-filtret
i föregående exempel använde du parametern Filter
för att begränsa de objekt som returneras av Get-ADObject
. Ett annat sätt att göra det är att använda parameternLDAPFilter
. Den här parametern utför samma uppgift men låter dig ange ett filter via en LDAP-söksträng., ParameternLDAPFilter
anses vara ett mer avancerat alternativ för att söka i Active Directory.
låt oss nu skapa en rapport för att hitta alla inaktiverade användare i din organisation med hjälp av parametrarna LDAPFilter
och SearchBase
för att inrikta sig på en viss OU.
inställningen useraccountcontrol:1.2.840.113556.1.4.803:=2 är ett annonsattribut som har angetts för alla inaktiverade användare i Active Directory NTDS-databasen. Det är ett sätt för annonsen att flagga konton som inte är aktiva (inloggningen är inaktiverad)., Här är fler exempel på LDAP-frågor som du kanske tycker är användbara.
kommandot nedan kör LDAP-filterparametern som används för att visa endast inaktiverade användare och skapar sedan en rapport medExport-CSV
cmdlet som du har gjort tidigare.
slutresultatet
Du bör nu ha fem CSV-filer på skrivbordet redo för din chef!,
sammanfattning
i den här artikeln lärde du dig att söka i Active Directory med hjälp avGet-ADObject
PowerShell cmdlet.
vad nästa?
för att ta det du har lärt dig längre, ta den här processen för att generera annonsrapporter till nästa nivå genom att exportera data till en databas kanske. En gång i en databas kan du få åtkomst till ANNONSRAPPORTERINGSDATA med antingen en anpassad webbplats eller ett program som Microsoft SharePoint. Det här är bara en idé. Det finns otaliga andra!,
möjligheten att söka Active Directory är en grundläggande skillset som behövs i många organisationer och en som i slutändan kommer att spara dig och ditt team timmar av tid.
Ytterligare läsning
- Active Directory Scripts Galore: kom och hämta det!
- Microsoft dokumentation