PowerShell-parancsmag Get-ADComputer felhasználható különféle információk megszerzésére az Active Directory tartományban található számítógépes fiókokról (szerverek és munkaállomások). Ez az egyik leghasznosabb parancsmag a számítógépek kiválasztásához és a kereséshez az AD tartomány különböző kritériumai szerint (az AD felhasználói fiókokról való információhoz egy másik parancsmag használható - Get-ADUser).
Tartalom:
- Alapszintű szintaxis és a Get-ADComputer Cmdlet használata
- Get-ADComputer parancsmag-példák
Tegyük fel, hogy az a feladat, hogy megtalálja az Active Directory-ban az összes inaktív számítógépet, amelyet a tartományban nem regisztráltak 120 napnál hosszabb ideig, és blokkolja e számítógépek fiókjait..
A Get-ADComputer parancsmag használatának megkezdése előtt csatlakoztatnia kell az Active Directory modult a Windows PowerShellhez.
Import-Modul aktív könyvtár
Engedélyezés - WindowsOptionalFeature -Online -FeatureName RSATClient-Roles-AD-Powershell
Alapszintű szintaxis és a Get-ADComputer Cmdlet használata
A Get-ADComputer parancsmag paramétereivel kapcsolatos súgót általában a Get-Help használatával hívják meg:
Get-Help Get-ADComputer
Ha egy adott számítógép vagy szerver tartományfiókjáról szeretne információt kapni, akkor adja meg annak nevét paraméter argumentumaként -azonosság:
Get-ADComputer -Identity SRV-DB01
DistinguishedName: CN = DB01, OU = Szerverek, OU = MSK, DC = winitpro, DC = hu DNSHostName: DB01.winitpro.ru Engedélyezve: Valódi név: DB01 ObjectClass: számítógép ObjectGUID: 1234567c-13f8-4a2c-8b00-b30a32324103 Samcc DB01 $ SID: S-1-5-21-3243682314-1360322815-2238451561-4318 UserPrincipalName:
A parancsmag csak a Computer objektum alapvető tulajdonságait adta vissza az AD-től. Érdekel az a dátum, amikor az utolsó számítógépes regisztráció történt az AD tartományban, de ezek az információk nem szerepelnek a parancs kimenetében. Sorolja fel a számítógép összes elérhető tulajdonságát az Active Directory-ból:
Get-ADComputer -Identity SRV-DB01 -Tulajdonságok *
Get-ADComputer-Szűrő * - Tulajdonságok * | Get-tag
Mint láthatja, a számítógép utolsó hálózati bejelentkezési idejét a LastLogonDate - 2015.09.21. 12:20:17 számítógépes attribútum jelzi..
A Get-ADComputer parancsmag lehetővé teszi a számítógép tulajdonságainak megjelenítését a parancs eredményeiben. Távolítunk el minden felesleges információt, csak a mező értékeit hagyjuk a kimeneten név és LastLogonDate.
Get-ADComputer -identity SRV-DB01 -Properties * | FT név, LastLogonDate -Autosize
Tehát megkaptuk az adatokat a domain regisztrációjának legutóbbi időpontjáról egy számítógépre. Most meg kell változtatnunk a parancsot úgy, hogy az a tartomány összes számítógépére visszatérjen információt a hálózat utolsó regisztrációjának idejéről. Ehhez cserélje ki a paramétert -azonosság tovább -szűrő:
Get-ADComputer-Szűrő * - Tulajdonságok * | FT név, LastLogonDate -Autosize
Van egy olyan tábla, amely csak 2 mezőt tartalmaz: számítógép neve és dátuma LastLogonData. A számítógép-objektum egyéb mezőit hozzáadhatja az AD-ből ehhez a táblázathoz. Egy adott domain (OU) tárolóban található számítógépekkel kapcsolatos információk megjelenítéséhez használja a paramétert searchbase:Get-ADComputer -SearchBase 'OU = Moszkva, DC = winitpro, DC = loc' -Filter * -Properties * | FT név, LastLogonDate -Autosize
A lekérdezés eredményeit a parancs segítségével a hálózatba való utolsó bejelentkezés időpontja szerint rendezzük (LastLogonDate mező) fajta:
Get-ADComputer-Szűrő * - Tulajdonságok * | Rendezés LastLogonDate | FT név, LastLogonDate -Autosize
Tehát megkaptuk a tartományi számítógépek listáját és az Active Directory hálózatba való utolsó belépésük idejét. Most blokkolni szeretnénk azokat a számítógépes fiókokat, amelyeket 120 napja nem használtak.
A Get-Date használatával az aktuális dátumot kapjuk meg a változóban, és 120 napot vonunk le az aktuális dátumtól:
$ date_with_offset = (Get-Date) .AddDays (-120)
A kapott dátummal rendelkező változó szűrőként használható a Get-ADComputer kérésére a LastLogonDate mezőben
Get-ADComputer - Tulajdonságok LastLogonDate -Filter LastLogonDate -lt $ date_with_offset | Rendezés LastLogonDate | FT név, LastLogonDate -Autosize
Így olyan inaktív számítógépek listáját kaptunk, amelyeket 120 napnál hosszabb ideig nem regisztráltak a hálózaton. A parancsmag használata Set-ADComputer vagy a Disable-ADAccount funkcióval letilthatja ezeket a fiókokat.
tanács. Először jobb, ha a kapcsolóval teszteljük a parancs eredményeit -WhatIf, ennek köszönhetően a csapat nem hajt végre változtatásokat, megmutatva, mi fog történni, amikor végrehajtják.
Get-ADComputer - Tulajdonságok LastLogonDate -Filter LastLogonData -lt $ date_with_offset | Set-ADComputer - Engedélyezve $ false -whatif
Most már blokkolhatja az összes fogadott számítógépes fiókot:
Get-ADComputer - Tulajdonságok LastLogonDate -Filter LastLogonData -lt $ datecutoff | Set-ADComputer - Ennabled $ false
tanács. A blokkolt, leválasztott és inaktív számítógépek és a tartományi felhasználók listáját a külön-Search-ADAccount parancsmag segítségével is beszerezheti..
Get-ADComputer parancsmag-példák
Az alábbiakban bemutatunk néhány hasznosabb példát a Get-ADComputer parancsmag segítségével végrehajtott parancsokra, amelyek segítségével kiválaszthatják és kereshetik a tartományi számítógépeket bizonyos feltételekhez.
Szerezze be az összes aktív (nem nyitott) számítógépet az Active Directory-ban:
(Get-ADComputer -Filter engedélyezett -eq "true")
Olvassa el a tartományban lévő Windows Server kiszolgálók számát:
(Get-ADComputer-Szűrő engedélyezve -eq "true" és az operációs rendszer -Mint '* Windows Server *').
Készítsen egy olyan OU számítógépek listáját, amelyek neve BuhPC-vel kezdődik:
Get-ADComputer-Szűrő Név-szerű "BuhPC *" -SearchBase 'OU = Moszkva, DC = winitpro, DC = loc' -Tulajdonságok IPv4Cím | Formátumtáblázat neve, DNSHostName, IPv4Cím | ft -Wrap -Automatikus
Ha az OU alapján keres, akkor további paramétert is használhat -SearchScope 1, ami azt jelenti, hogy csak a gyökérpartícióban kell keresnie. paraméter -SearchScope 2 a számítógépek rekurzív keresését jelenti az összes beágyazott egységben.
Válassza ki az összes Windows 10 rendszert futtató munkaállomást:
Get-ADComputer-Szűrő OperatingSystem-szerű '* Windows 10 *'
Szerezzen egy olyan domain kiszolgálóinak listáját, amelyeken telepítve van az operációs rendszer verziója, IP-címe és szervizcsomagja:Get-ADComputer - Szűrő 'operációs rendszer-szerű' * Windows szerver * 'és engedélyezve -eq' true '' - Tulajdonságok neve, operációs rendszer, OperatingSystemVersion, OperatingSystemServicePack, IPv4Cím | Sort-Object - Tulajdonság operációs rendszer | Select-Object - Tulajdonság neve, Operatingsystem, OperatingSystemVersion, OperatingSystemServicePack, IPv4Address | ft -Wrap -Automatikus
A kimenet egy ilyen szép tábla volt az AD-ben lévő Windows Server listájával.
A -LDAPFilter attribútum lehetővé teszi különféle LDAP lekérdezések használatát a Get-ADComputer parancsmag paramétereként, például:
Get-ADComputer -LDAPFilter "(név = * db *)" | ft
Válasszon zárolt számítógépeket egy adott OU-ban:
Get-ADComputer -szűrő * -SearchBase 'OU = Computers, dc = winitpro, dc = loc' | Hol-objektum $ _. Engedélyezve -eq $ hamis
A tartomány összes olyan számítógépes fiókjának törléséhez, amely 6 hónapnál hosszabb ideig nem jelentkezett be a tartományba, használhatja a következő parancsot:
get-adcomputer -properties lastLogonDate -filter * | ahol $ _. lastLogonDate -lt (get-date) .addmonths (-6) | Remove-ADComputer
A Get-ADComputer parancs eredménye letölthető egy szöveges fájlba:
Get-ADComputer-Szűrő OperatingSystem -Like '* Windows Server 2008 *' -Tulajdonságok OperatingSystem | Válassza a DNSHostName, az operációs rendszer | Táblázat formátum - Automatikus méret C: \ Script \ kiszolgáló_rendszer.txt
Azt is beszerezheti a kiválasztott számítógépeket, és exportálhatja azokat egy CSV-fájlba:
Get-ADComputer-szűrő * -tulajdon * Select-Object név, OperatingSystem, OperatingSystemServicePack | Exportálás-CSV All-Windows.csv -NoTypeInformation -Kódolás UTF8
Vagy szerezzen be egy HTML jelentésfájlt a számítógépek listájával és a szükséges számítógépes attribútumokkal:
Get-ADComputer-Szűrő OperatingSystem -Like '* Windows Server 2012 *' -Tulajdonságok * | Kiválasztás-objektum neve, operációs rendszer | ConvertTo-Html | Kimenő fájl C: \ ps \ ad_computer.html
Egy adott művelet végrehajtásához a listán szereplő összes számítógéppel a Foreach hurkot kell használni. Ebben a példában szeretnénk beszerezni a tartomány szervereinek listáját a modellvel és a gyártóval:
$ Számítógépek = Get-ADComputer-Szűrő OperatingSystem -Mint '* Windows Server *'
Foreach ($ számítógép dollárban számítógépekben)
$ Hostname = $ Computer.Name
$ ComputerInfo = (Get-WmiObject -computername $ Gazdagépnév Win32_ComputerSystem)
$ Gyártó = $ Számítógép.Gyártó
$ Model = $ Computer.Model
Író-fogadó "Név: $ Hostname"
Write-Host "Gyártó: $ Manufacturer"
Írás-fogadó "Modell: $ Modell"
Írás-fogadó ""
$ Content = "$ Hostname; $ Gyártó; $ Model"
Adjon hozzá tartalmat -érték $ Tartalom -útvonal "C: \ PS \ ServersInfo.txt"
Vagy használhat rövidebb hurok-szintaxist is. Tegyük fel, hogy egy speciális parancsot végre kell hajtanunk egy adott OU minden számítógépén (ebben a példában a parancsot futtatni akarjuk az összes kiszolgálón a csoportszabályok frissítéséhez):
get-adcomputer -SearchBase "OU = Szerverek, DC = winitpro, DC = loc" -Szűrő * | % Invoke-Command-Computer $ _. Név -ScriptBlock gpupdate / force
A Get-AdComputer és a PowerShell parancsfájl bejelentkezés használatával különféle számítógépes beállításokat vezérelhet. Például figyelemmel kíséri az SCCM ügynök állapotát a felhasználók számítógépein. Amikor minden számítógép elindul, fut egy bejelentkezési szkriptet, amely a Set-ADComputer használatával menti a ccmexec szolgáltatás állapotát egy ingyenes számítógép-attribútumba - extensionAttribute10.
Ezután a következő parancs segítségével meg tudom találni azokat a számítógépeket, amelyeken a CCMExec szolgáltatás hiányzik vagy nem fut:
get-adcomputer -filter extensionAttribute10 -ne "SCCM Agent: Futás" -SearchBase “OU = Computers, OU = MSK, DC = winitpro, DC = hu” -tulajdonságok dNSHostName, extensionAttribute10, LastLogonDate | select-object dNSHostName, extensionAttribute LastLogonDate