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
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 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 *
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