Get-ADComputer prikazuje podatke o računalniku v Active Directory prek PowerShell

PowerShell cmdlet Get-računalnik se lahko uporablja za pridobivanje različnih informacij o računalniških računih (strežniki in delovne postaje) v domeni Active Directory. To je eden najbolj uporabnih ukaznih polj za izbiro in iskanje po računalnikih po različnih merilih v domeni AD (za pridobivanje informacij o uporabniških računih AD se uporablja še en cmdlet - Get-ADUser).

Vsebina:

  • Osnovna sintaksa in uporaba Get-ADComputer Cmdlet
  • Primeri cmdletov Get-ADComputer

Recimo, da je vaša naloga najti v Active Directoryu vse neaktivne računalnike, ki niso bili registrirani v domeni več kot 120 dni, in blokirati račune teh računalnikov..

Preden začnete uporabljati ukazno ploščo Get-ADComputer, morate povezati modul Active Directory za Windows PowerShell.

Uvozni modul aktivni imenik

Namig. V programu PowerShell 3.0 (uveden v Windows Server 2012) in višjih različicah je ta modul privzeto povezan pri nameščanju orodij za oddaljeno upravljanje strežnika -> Orodja za upravljanje vlog -> AD DS in Orodja LDS AD -> Modul Active Directory za Windows PowerShell. Če želite uporabiti ukazno ploščo Get-ADComputer v odjemalcih Windows 10.8.1 in Windows 7, morate prenesti in namestiti RSAT za različico OS in omogočiti modul AD-PowerShell z nadzorne plošče ali z ukazom:
Omogoči-WindowsOtionalFeature -Online -FeatureName RSATClient-Roles-AD-Powershell

Osnovna sintaksa in uporaba Get-ADComputer Cmdlet

Pomoč glede parametrov cmdleta Get-ADComputer se standardno prikliče s pomočjo Get-Help:

Get-Pomoč Get-ADComputer

Če želite pridobiti informacije od AD z uporabo ukaznih kod modula AD za Powershell, ni potrebno imeti skrbniških pravic domene, dovolj je, da je račun, pod katerim se vodi cmdlet, vključen v skupino uporabnikov domene (Potrjeni uporabniki / Uporabniki domen).

Če želite dobiti informacije o domenskem računu določenega računalnika ali strežnika, podajte njegovo ime kot argument parametra -Identiteta:

Get-ADComputer -Identity SRV-DB01

DistinguishedName: CN = DB01, OU = strežniki, OU = MSK, DC = winitpro, DC = sl DNSHostName: DB01.winitpro.ru Omogočeno: Resnično ime: DB01 ObjectClass: računalnik ObjectGUID: 1234567c-13f8-4a2c-8b00-b30a32324103 SamAcc DB01 $ SID: S-1-5-21-3243682314-1360322815-2238451561-4318 UserPrincipalName: 

Cmdlet je iz AD-ja vrnil samo osnovne lastnosti predmeta Computer. Zanima nas čas zadnje registracije računalnika v domeni AD, vendar te informacije niso v izhodu ukaza. Seznam aktivnih lastnosti tega računalnika iz seznama Active Directory:

Get-ADComputer -Identity SRV-DB01 -Vsebine *

Z Get-Member lahko dobite seznam vseh lastnosti računalniškega razreda v AD-ju:

Get-ADComputer -Filter * -Properties * | Pridružite se članu

Kot lahko vidite, je čas, ko se je računalnik nazadnje prijavil v omrežje, naveden v atributu računalnika LastLogonDate - 21.9.2015 12:20:17.

Cmdlet Get-ADComputer vam omogoča, da v rezultatih ukazov prikažete katero koli od lastnosti računalnika. Odstranimo vse nepotrebne podatke, v izhodu pustimo samo vrednosti polja Ime in LastLogonDate.

Get-ADComputer -identity SRV-DB01 -Prednosti * | Ime FT, LastLogonDate -Autosize

Tako smo dobili podatke o zadnjem času registracije v domeni za en računalnik. Zdaj moramo spremeniti ukaz, tako da bo vrnil podatke o času zadnje registracije v omrežju za vse računalnike v domeni. Če želite to narediti, zamenjajte parameter -Identiteta naprej -Filter:

Get-ADComputer -Filter * -Properties * | Ime FT, LastLogonDate -Autosize

Dobili smo tabelo, ki vsebuje samo 2 polja: ime računalnika in datum LastLogonData. V to tabelo lahko dodate druga polja predmeta Computer iz AD. Za prikaz informacij o računalnikih v vsebniku določene domene (OU) uporabite parameter SearchBase:
Get-ADComputer -SearchBase 'OU = Moskva, DC = winitpro, DC = loc' -Filter * -Properties * | Ime FT, LastLogonDate -Autosize

Rezultate poizvedbe razvrstimo po času zadnje prijave v omrežje (polje LastLogonDate) s pomočjo ukaza Razvrsti:

Get-ADComputer -Filter * -Properties * | Razvrsti LastLogonDate | Ime FT, LastLogonDate -Autosize

Tako smo dobili seznam domenskih računalnikov in čas njihovega zadnjega vstopa v omrežje Active Directory. Zdaj želimo blokirati računalniške račune, ki jih ne uporabljamo več kot 120 dni.

Z uporabo Get-Date dobimo trenutni datum v spremenljivki in odštejemo 120 dni od trenutnega datuma:

$ date_with_offset = (Datum-datuma) .Dnevni dnevi (-120)

Pridobljeno spremenljivko z datumom lahko uporabite kot filter za zahtevo Get-ADComputer v polju LastLogonDate

Get-ADComputer -Properties LastLogonDate -Filter LastLogonDate -lt $ date_with_offset | Razvrsti LastLogonDate | Ime FT, LastLogonDate -Autosize

Tako smo dobili seznam neaktivnih računalnikov, ki v omrežju niso bili registrirani več kot 120 dni. Uporaba cmdlet Set-računalnik ali Disable-ADAccount lahko onemogočite te račune.

Namig. Prvič je bolje, da rezultate ukaza preizkusite s stikalom -Whatif, zahvaljujoč kateri ekipa ne opravi nobenih sprememb, kar pokaže, kaj se bo zgodilo, ko bo izveden.

Get-ADComputer -Properties LastLogonDate -Filter LastLogonData -lt $ date_with_offset | Set-ADComputer -Enabled $ false -whatif

Zdaj lahko blokirate vse prejete računalniške račune:

Get-ADComputer -Properties LastLogonDate -Filter LastLogonData -lt $ datecutoff | Set-ADComputer -Enabled $ false

Namig. Seznam blokiranih, odklopljenih in neaktivnih računalnikov in uporabnikov domen lahko dobite tudi z ločenim ukaznim ukazom Search-ADAccount..

Primeri cmdletov Get-ADComputer

Spodaj je nekaj uporabnejših primerov ukazov z ukaznim ukazom Get-ADComputer, ki jih lahko uporabite za izbiro in iskanje domenskih računalnikov po določenih kriterijih.

Pridobite skupno število aktivnih (odklenjenih) računalnikov v Active Directoryu:

(Get-ADComputer -Filter omogočeno -eq "true") Štetje

Preberite število strežnikov Windows Server v domeni:

(Get-ADComputer -Filter omogočeno -eq "true" -and OperatingSystem -Like '* Windows Server *').

Pridobite seznam računalnikov v določenem OU, katerih imena se začnejo z BuhPC:

Get-ADComputer -Filter Name -like "BuhPC *" -SearchBase "OU = Moskva, DC = winitpro, DC = loc" -Vsebine IPv4Address | Ime tabele formatiranja, DNSHostName, IPv4Address | ft-wrap-auto

Pri iskanju po OU lahko uporabite dodaten parameter -SearchScope 1, kar pomeni, da morate iskati samo v korenski particiji. Parameter -SearchScope 2 pomeni rekurzivno iskanje računalnikov v vseh ugnezdenih OU.

Izberite vse delovne postaje z operacijskim sistemom Windows 10:

Get-ADComputer -Filter OperatingSystem -like '* Windows 10 *'

Pridobite seznam strežnikov v domeni z nameščeno različico OS, naslovom IP in servisnim paketom:
Get-ADComputer -Filter "operacijski sistem - podoben" * Windows strežnik * "- in omogočen -eq" true "'-Properties Name, Operatingsystem, OperatingSystemVersion, OperatingSystemServicePack, IPv4Address | Razvrsti-objekt-operacijski sistem lastnosti Select-Object-ime lastnosti, operacijski sistem, OperatingSystemVersion, OperatingSystemServicePack, IPv4Address | ft-wrap-auto

Izhod je bila tako lepa tabela s seznamom Windows Server v AD.

Atribut -LDAPFilter vam omogoča uporabo različnih poizvedb LDAP kot parametra v ukazni vrstici Get-ADComputer, na primer:

Get-ADComputer -LDAPFilter "(ime = * db *)" | ft

Izberite zaklenjene računalnike v določenem OU:

Get-ADComputer -filter * -SearchBase 'OU = Računalniki, dc = winitpro, dc = loc' | Kjer-Predmet $ _. Omogočeno -eq $ False

Če želite izbrisati vse računalniške račune v domeni, ki se v domeno niso prijavili več kot 6 mesecev, lahko uporabite ukaz:

get-adcomputer -properties lastLogonDate -filter * | kjer je $ _. lastLogonDate -lt (datum-datum) .addmonths (-6) | Odstrani-ADComputer

Rezultat ukaza Get-ADComputer lahko prenesete v besedilno datoteko:

Get-ADComputer -Filter OperatingSystem -Like '* Windows Server 2008 *' -Properties OperatingSystem | Izberite DNSHostName, OperatingSystem | Format-Tabela -AutoSize C: \ Script \ server_system.txt

Prav tako lahko dobite izbor računalnikov in jih izvozite v datoteko CSV:

Get-ADComputer -Filter * -Prostilost * | Izberi-ime predmeta, OperatingSystem, OperatingSystemServicePack | Export-CSV All-Windows.csv -NoTypeInformation -Encoding UTF8

Ali pridobite datoteko s poročilom HTML s seznamom računalnikov in potrebnimi atributi računalnika:

Get-ADComputer -Filter OperatingSystem -Like '* Windows Server 2012 *' -Properties * | Izberi-ime predmeta, OperatingSystem | ConvertTo-Html | Odstranjena datoteka C: \ ps \ ad_computer.html

Če želite izvesti določeno dejanje z vsemi računalniki s seznama, morate uporabiti zanko Foreach. V tem primeru želimo dobiti model strežnikov v domeni z modelom in proizvajalcem:

$ Computers = Get-ADComputer -Filter OperatingSystem -Like '* Windows Server *'
Foreach ($ računalnik v $ računalnikov)

$ Hostname = $ Computer.Name
$ ComputerInfo = (Get-WmiObject -Ime računalnika $ Hostname Win32_ComputerSystem)
$ Proizvajalec = $ Computer.Manufacturer
$ Model = $ Computer.Model
Host pisanja "Ime: $ ime gostitelja"
Gostitelj pisanja "Proizvajalec: $ Proizvajalec"
Gostitelj pisanja "Model: $ Model"
Gostitelj pisanja ""
$ Content = "$ ime gostitelja; $ proizvajalec; $ model"
Dodaj vsebino -Vrednost $ Vsebina -Pot "C: \ PS \ ServersInfo.txt"

Lahko pa uporabite sintakso krajše zanke. Recimo, da moramo v vseh računalnikih v določenem OU izvesti določen ukaz (v tem primeru želimo zagnati ukaz za posodabljanje nastavitev skupinskih pravilnikov na vseh strežnikih):

get-adcomputer -SearchBase "OU = strežniki, DC = winitpro, DC = loc" -Filter * | % Pokliči-ukaz-računalnik $ _. Ime -ScriptBlock gpupdate / force

Z uporabo Get-AdComputer in prijave v skript PowerShell lahko nadzorujete različne nastavitve računalnika. Na primer, spremljam stanje agenta SCCM v računalnikih uporabnikov. Ko se vsak računalnik zažene, zažene skript za prijavo, ki s pomočjo Set-ADComputer shrani stanje storitve ccmexec v brezplačen računalniški atribut - extensionAttribute10.

Nato lahko z naslednjim ukazom poiščem računalnike, na katerih storitev CCMExec manjka ali ne deluje:

get-adcomputer -filter extensionAttribute10 -ne "SCCM agent: Running" -SearchBase "OU = računalniki, OU = MSK, DC = winitpro, DC = en" -properties dNSHostName, extensionAttribute10, LastLogonDate | select-object dNSHostName, extensionAttribute LastLogonDate