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 PowerShellInstall-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 attGet-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 parametern ResultSetSize 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-ADObjects 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:

ad användarkonton av OU
inaktiverade användarkonton

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 medNew-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örFilter, 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., ParameternSearchBaselå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.

report_accounting_users.csv

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.

report_sanfrancisco_office_users.csv

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.,

report_florida_state_users.csv

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ändaobjectClass -eq 'user' I föregående exempel kunde du också ha använtGet-AdUser cmdlet.,

report_select_users.csv

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.

report_disabled_users.csv

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