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 '*'").countHa 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 -AAz ö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 LastLogonDateA 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,IPv4AddressA 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 '*'").countDomainvezé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
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:
- Indítsa el az „nslookup” alkalmazást.
- Írja be a „set type=all” parancsot.
- Í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, PDCEmulatorA 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, SchemaMasterA 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).OperationMasterRolesGet-ADDomainController -Filter {OperationMasterRoles -like "PDC*"} | Select NameHa 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 ProtectedFromAccidentalDeletionA törlés elleni védelem a következőkkel aktiválható:
Set-ADObject ‹DN of object› -ProtectedFromAccidentalDeletion $true
To go along with this topic, check out this ScriptRunner webinar:Active Directory management - Easy as that with PowerShellManaging 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
|







