Weboldal keresés

Active Directory-lekérdezések a PowerShell segítségével


style="letter-spacing: 0px; text-transform: unset; background-color: transparent;">A PowerShell hatékony környezet az információk lekérdezéséhez a Windows rendszerben. A PowerShell fontos segítség lehet, nstyle="letter-spacing: 0px; text-transform: unset; background-color: transparent;">nem csak a szerverbeállítások vagy munkaterhelések szerkesztéséhez szükséges szkriptekhez, hanem átfogó információkereséshez és jelentéskészítéshez. Ebben a cikkben bemutatunk néhány PowerShell-parancsmagot, amelyek kiterjedt információkat gyűjthetnek az Active Directoryból (AD). Az ilyen lekérdezési eredmények a hibaelhárítás szempontjából is érdekesek. A ScriptRunner egyébként beépített lekérdezéseket is tartalmaz, amelyek ugyanazokat, de gyorsabban hajtják végre, mint a szkriptezett PowerShell-lekérdezések - kiegészítve saját szkriptezett lekérdezéseivel (a "szkripttel" függvény használatával).

Ha az Active Directory Management modul telepítve van a Windows 10/11 vagy a Windows Server 2019/2022 rendszerben, akkor a PowerShellben is elérheti az Active Directory (AD) egyes adatait. A Get-Command Get-Ad* parancs már számos olyan parancsmagot jelenít meg, amelyek képesek megjeleníteni az Active Directoryból származó információkat.

Ez a hálózaton keresztül is zökkenőmentesen működik. A Get-Command -Module ActiveDirectory parancsmag megjeleníti az összes olyan parancsmagot, amely képes kezelni az Active Directory-t. A Get-Module -ListAvailable parancs ismét megjeleníti az összes modult. Így a többi modul neve is megjeleníthető, és parancsmagjaik kiolvashatók a Get-Command segítségével.


Felhasználói fiókokból származó adatok megjelenítése

Az egyes Get parancsmagok szűrőkkel bővíthetők. Például, ha meg szeretné jeleníteni az összes olyan felhasználót, aki jelenleg nincs letiltva, használhatja a következőket:

get-aduser -ldapfilter "(&(&(objectCategory=user)(userAccountControl=512)))" | where-object -property enabled -eq truepowershell-ad-infos-01

Felhasználói információk beszerzése az AD-ből

Az Active Directory-felhasználók számának megjelenítése (AD) felhasználók), használhatja:

 (Get-ADUser -Filter "Name -like '*'").count

Ha egy felhasználói fiók utolsó bejelentkezését szeretné megjeleníteni, a PowerShell különböző paraméterekkel is elérhető:

Get-ADUser "<Name>" -Properties LastLogonDate | FT -Property Name, LastLogonDate -A

Az összes felhasználói fiók bejelentkezési dátuma listaként is megjeleníthető a PowerShellben:

Get-ADUser -Filter {(Enabled -eq $true)} -Properties LastLogonDate | select samaccountname, Name, LastLogonDate | Sort-Object LastLogonDate

A zárolt felhasználói fiókok a Search-ADAccount -lockedout funkcióval jeleníthetők meg. A PowerShell segítségével a fiókok újra feloldhatók, például a Get-ADUser -Identity joost | Unlock-ADAccount

Számítógépes fiókok megjelenítése az Active Directoryban

Az AD számítógépfiókjainak megjelenítéséhez további parancsmagok állnak rendelkezésre. A csővezeték segítségével az eredmény átadható a "Kiválasztás"-nak, és az adatok szűrhetők a kívánt információk szerint:

 Get-ADComputer -filter 'name -like "*"' -Properties * | select name,OperatingSystem,IPv4Address

A felhasználói fiókokhoz hasonlóan a számítógépes fiókokat is megszámolhatja az Active Directoryban:

(Get-ADComputer -Filter "Name -like '*'").count

Domainvezérlők lekérdezése

Az Active Directoryból származó információk olvasásakor a környezetben lévő tartományvezérlők fontos szerepet játszanak. A tartományvezérlők adatainak megtekintéséhez használja a Get-ADDomaincontroller parancsmagot. Ha információkat szeretne megjeleníteni a környezetben lévő összes tartományvezérlőről, szűrheti az adatokat, például a következőkkel:

(Get-ADForest).Domains | %{ Get-ADDomainController -Filter * -Server $_ }

A tartományvezérlő információinak megjelenítése a PowerShellben

A parancsmag további lehetőségeivel később foglalkozunk.

Az ingyenes Microsoft Active Directory Documentation Script segítségével áttekintést kaphat arról, hogy a PowerShell-szkriptek mire képesek az információk kinyerésére. Csak le kell futtatnia a szkriptet a kicsomagolás után. A szkript jelentéseket is generálhat.

A PowerShell-szkripttel az AD-ből is részletes információkat olvashat

Egy másik szkript ebben a szakaszban: "ADinfo.ps1".

Az indítás után a szkript az Active Directoryból is megjeleníti az információkat.

Az információk PowerShellből HTML-fájlokba történő kimenete szintén nem jelent problémát a PowerShell számára

A PowerShell azonban még több lehetőséget kínál. Lehetőség van csoportszabályzatok felolvasására is, beleértve a jelentések készítését. Az ehhez tartozó parancs így néz ki:

Get-GPOReport -All -Domain "joos.int" -ReportType HTML -Path "C:\temp\report.html"

A PowerShellben a Get-ADDefaultDomainPasswordPolicy használatával is megtekintheti a tartomány jelszóházirend-beállításait. A beállításokat a csoportházirend-kezelő konzol (gpmc.msc) szabályozza a megfelelő házirendhez. A jelszóházirend-konfiguráció elérési útja a következő: "Számítógép-konfiguráció/Szabályzatok/Windows-beállítások/Biztonsági beállítások/Fiókházirendek/Jelszóházirendek".

DNS-adatok és tartományokra és általános struktúrákra vonatkozó információk lekérdezése

Az Active Directory és a DNS szorosan együttműködik. Ha problémák vannak az Active Directoryban, vagy ha szükséges a DNS-zónák dokumentálása, ezt nagyon egyszerűen megteheti a Get-DnsServerZone -ComputerName segítségével.

Az Active Directory DNS-rekordjai fontos szerepet játszanak abban, hogy a tartományvezérlők kapcsolódjanak egymáshoz. Az ellenőrzés a parancssorban is elvégezhető az "nslookup" paranccsal:

  1. Indítsa el az „nslookup” alkalmazást.
  2. Írja be a „set type=all” parancsot.
  3. Írja be: „_ldap._tcp.dc._msdcs.”, például: „_ldap._tcp.dc._msdcs.joos.int”.

A PowerShellben a különféle parancsmagok segítségével is lekérheti az adatokat az egyes tartományokból. A Get-ADDomain és Get-ADForest parancsmag információkat jelenít meg az erdőről és a tartományokról. A csövek használhatók az eredmények átadására a parancsmagokból más parancsmagoknak, például a Get-ADDomainController. Ez akkor hasznos, ha például tartományonként szeretné megjeleníteni az FSMO szerepköröket. Minden tartományban három FSMO-szerep található, amelyeket a következő paranccsal jeleníthet meg:

Get-ADDomain | Select InfrastructureMaster, RID-Master, PDCEmulator

A sémamester és a tartománynév-mester erdőnként csak egyszer létezik. Ezek az információk viszont megjeleníthetők a CMDlet Get-ADForest segítségével:

Get-ADForest | Select-Object DomainNamingMaster, SchemaMaster

A Get-ADDomain kezdetben megjeleníti a tartomány működési főkiszolgálóit (infrastruktúra, RID és PDC), DNS-nevét, tartományvezérlőit, működési módját, főbb szervezeti egységeit és egyéb információkat.

A < AzGet-ADForest parancsmag emellett megjeleníti a tartománynév-főcímet, a sémamestert, a helyeket, az UPN-utótagokat és a tartományokat. A két parancsmag néhány másodperc alatt minden lényeges információt megad a tartományokról, struktúrákról és erdőkről. Ha egyetlen tartományvezérlő FSMO-szerepköreit szeretné megjeleníteni, a következőket használhatja:

(Get-ADDomainController).OperationMasterRoles

Get-ADDomainController -Filter {OperationMasterRoles -like "PDC*"} | Select Name

Ha szeretnél A tartományvezérlők alaposabb megismeréséhez használja a Get-ADDomaincontroller parancsmagot a tartományvezérlőkhöz. Itt láthatja a tartományvezérlőn aktív IP-címet és FSMO-szerepköröket is. Ezenkívül azt is láthatja, hogy mely tartományvezérlők vannak konfigurálva globális katalógusként, és melyik operációs rendszer melyik kiadásban van telepítve a kiszolgálón. A hely, amelyhez a tartományvezérlő hozzá van rendelve, és a szerver mely portokra figyel a hálózaton, szintén itt található.

Információk lekérdezése a tartományvezérlőkről az Active Directoryban

Lekérdezés és törlésvédelem beállítása a PowerShellben

Az Active Directory törlésvédelme megakadályozza az objektumok véletlen törlését. A PowerShellben ellenőrizheti, hogy a védelem aktív-e. Egy objektum védelmét a következő módon is aktiválhatja:

Get-ADObject ‹DN of object› -Properties ProtectedFromAccidentalDeletion

A törlés elleni védelem a következőkkel aktiválható:

Set-ADObject ‹DN of object› -ProtectedFromAccidentalDeletion $true

Good2know

 

To go along with this topic, check out this ScriptRunner webinar:

Active Directory management - Easy as that with PowerShell

Managing Active Directory users and groups is one of the central, recurring tasks of IT administration. In this webinar, we will show you how to standardize, automate and delegate these tasks in a time-saving way using PowerShell.

How to query Active Directory with ScriptRunner

 

Query Screenshot ScriptRunner
ScriptRunner already comes with different, ready to use types of queries. Common use cases are AD queries, which can be executed directly within the Windows domain.

The appropriate queries are also available for Azure straight away. It is also possible to execute self-written scripts as queries by selecting the option "...with a script".

With "List of Entries", predefined lists can be stored as selection, the last option "File of Entries" can be used to retrieve options in a file e.g. *.CSV.

Kapcsolódó cikkek