PowerShell cmdlet Get-ADComputer mogu se koristiti za dobivanje različitih podataka o računalnim računima (poslužiteljima i radnim stanicama) u domeni Active Directory. Ovo je jedan od najkorisnijih cmdleta za odabir i pretraživanje računala po različitim kriterijima u AD domeni (za dobivanje podataka o AD korisničkim računima koristi se drugi cmdlet - Get-ADUser).
sadržaj:
- Osnovna sintaksa i upotreba Get-ADComputer Cmdlet-a
- Primjeri cmdleta Get-ADComputer
Pretpostavimo da je vaš zadatak pronaći u Active Directoryu sva neaktivna računala koja nisu registrirana u domeni više od 120 dana i blokirati račune tih računala.
Prije nego što počnete koristiti cmdlet Get-ADComputer, morate povezati modul Active Directory za Windows PowerShell.
Uvoz-modul aktivni direktorij
Omogući-WindowsOtionalFeature -Online -FeatureName RSATClient-Roles-AD-Powershell
Osnovna sintaksa i upotreba Get-ADComputer Cmdlet-a
Pomoć o parametrima cmdleta Get-ADComputer standardno se poziva pomoću Get-Help:
Get-Help Get-ADComputer
Da biste dobili informacije o računu domene određenog računala ili poslužitelja, navedite njegovo ime kao argument parametra -identitet:
Get-ADComputer -Identity SRV-DB01
DistinguishedName: CN = DB01, OU = poslužitelji, OU = MSK, DC = winitpro, DC = hr DNSHostName: DB01.winitpro.ru Omogućeno: Istinsko ime: DB01 ObjectClass: računalo ObjectGUID: 1234567c-13f8-4a2c-8b00-b30a32324103 SamAcc DB01 $ SID: S-1-5-21-3243682314-1360322815-2238451561-4318 UserPrincipalName:
Cmdlet je vratio samo osnovna svojstva objekta Computer iz AD-a. Zanima nas vrijeme zadnje registracije računala u AD domeni, ali te informacije nisu u izlazu naredbe. Popis svih dostupnih svojstava ovog računala iz Active Directorya:
Get-ADComputer -Identity SRV-DB01 -Properties *
Get-ADComputer -Filter * -Properties * | Get-članica
Kao što vidite, vrijeme posljednjeg prijava računala na mrežu označeno je u atributu računala LastLogonDate - 21.09.2015. 12:20:17.
Cmdlet Get-ADComputer omogućava vam prikaz bilo kojeg od svojstava računala u rezultatima naredbe. Uklanjamo sve nepotrebne podatke, ostavljajući u izlazu samo vrijednosti polja ime i LastLogonDate.
Get-ADComputer -identity SRV-DB01 -Properties * | Naziv FT, LastLogonDate -Autosize
Dakle, dobili smo podatke o posljednjem trenutku registracije u domeni za jedno računalo. Sada moramo promijeniti naredbu tako da vraća podatke o vremenu zadnje registracije na mreži za sva računala u domeni. Da biste to učinili, zamijenite parametar -identitet na -filter:
Get-ADComputer -Filter * -Properties * | Naziv FT, LastLogonDate -Autosize
Dobili smo tablicu koja sadrži samo 2 polja: ime računala i datum LastLogonData. U ovu tablicu možete dodati druga polja objekta Računalo iz AD-a. Za prikaz informacija o računalima u spremniku određene domene (OU), upotrijebite parametar SearchBase:Get-ADComputer -SearchBase 'OU = Moskva, DC = winitpro, DC = loc' -Filter * -Properties * | Naziv FT, LastLogonDate -Autosize
Rezultate upita sortiramo prema vremenu zadnje prijave u mrežu (polje LastLogonDate) pomoću naredbe vrsta:
Get-ADComputer -Filter * -Properties * | Poredaj LastLogonDate | Naziv FT, LastLogonDate -Autosize
Dakle, dobili smo popis računala sa domenama i vrijeme njihovog posljednjeg ulaska u mrežu Active Directorya. Sada želimo blokirati račune računala koji se ne koriste više od 120 dana.
Pomoću Get-Date dobivamo trenutni datum u varijabli i oduzimamo 120 dana od trenutnog datuma:
$ date_with_offset = (Datum-datum) .Dodaj (-120)
Dobivena varijabla s datumom može se koristiti kao filtar za Get-ADComputer zahtjev polje LastLogonDate
Get-ADComputer -Properties LastLogonDate -Filter LastLogonDate -lt $ date_with_offset | Poredaj LastLogonDate | Naziv FT, LastLogonDate -Autosize
Tako smo dobili popis neaktivnih računala koja nisu bila registrirana na mreži dulje od 120 dana. Koristeći cmdlet Set-ADComputer ili Disable-ADAccount možete onemogućiti te račune.
vijeće. Prvi put je bolje testirati rezultate naredbe prekidačem -WHATIF, zahvaljujući kojem tim ne vrši nikakve promjene, pokazujući što će se dogoditi kad se izvrši.
Get-ADComputer -Properties LastLogonDate -Filter LastLogonData -lt $ date_with_offset | Set-ADComputer - omogućeno $ false -whatif
Sada možete blokirati sve primljene račune:
Get-ADComputer -Properties LastLogonDate -Filter LastLogonData -lt $ datecutoff | Set-ADComputer -Enabled $ false
vijeće. Popis blokiranih, isključenih i neaktivnih računala i korisnika domene također se može dobiti pomoću zasebnog cmdleta Search-ADAccount..
Primjeri cmdleta Get-ADComputer
Slijedi nekoliko korisnijih primjera naredbi koje koriste cmdlet Get-ADComputer pomoću kojih možete odabrati i pretraživati računala domene prema određenim kriterijima.
Nabavite ukupan broj aktivnih (otključanih) računala u Active Directoryu:
(Get-ADComputer -Filter omogućeno -eq "true")
Pročitajte broj poslužitelja sustava Windows Server u domeni:
(Get-ADComputer -Filter omogućeno -eq "true" -and OperatingSystem -Like '* Windows Server *').
Nabavite popis računala u određenom OU čija imena počinju s BuhPC:
Get-ADComputer -Filter Ime-slično "BuhPC *" -Stražna baza 'OU = Moskva, DC = winitpro, DC = loc' -Properties IPv4Address | Naziv tablice formata, DNSHostName, IPv4Address | ft -Wrap -Auto
Prilikom pretraživanja po OU možete koristiti dodatni parametar -SearchScope 1, što znači da morate tražiti samo u korijenskoj particiji. parametar -SearchScope 2 znači rekurzivnu pretragu računala u svim ugniježđenim OU-ima.
Odaberite sve radne stanice s operativnim sustavom Windows 10:
Get-ADComputer -Filter OperatingSystem -like '* Windows 10 *'
Nabavite popis poslužitelja u domeni s instaliranom verzijom OS-a, IP adresom i servisnim paketom:Get-ADComputer -Filter 'operativni sustav-sličan' * Windows poslužitelj * "-i omogućen -eq" true "'-Properties Name, Operativni sustav, OperatingSystemVersion, OperatingSystemServicePack, IPv4Address | Sort-Object-Operativni sustav svojstva | Select-Object -Project Name, Operativni sustav, OperatingSystemVersion, OperatingSystemServicePack, IPv4Address | ft -Wrap -Auto
Izlaz je bila jedna tako lijepa tablica s popisom sustava Windows Server u AD-u.
Atribut -LDAPFilter omogućuje vam korištenje različitih LDAP upita kao parametara cmdleta Get-ADComputer:
Get-ADComputer -LDAPFilter "(ime = * db *)" | ft
Odaberite zaključana računala u određenom OU:
Get-ADComputer -filter * -SearchBase 'OU = Računala, dc = winitpro, dc = loc' | Where-Object $ _. Omogućeno -eq $ False
Da biste izbrisali sve računalne račune u domeni koja se nije prijavila na domenu više od 6 mjeseci, možete upotrijebiti naredbu:
get-adcomputer -properties lastLogonDate -filter * | gdje je $ _. lastLogonDate -lt (datum-datum) .addmonths (-6) | Uklonite-ADComputer
Rezultat naredbe Get-ADComputer može se preuzeti u tekstualnu datoteku:
Get-ADComputer -Filter OperatingSystem -Like '* Windows Server 2008 *' -Properties OperatingSystem | Odaberite DNSHostName, OperatingSystem | Format-tablica -AutoSize C: \ Script \ server_system.txt
Možete dobiti i izbor računala i izvesti ga u CSV datoteku:
Get-ADComputer -Filter * -Property * | Select-Object Name, OperatingSystem, OperatingSystemServicePack | Izvezi-CSV All-Windows.csv -NoTypeInformation -Encoding UTF8
Ili nabavite HTML izvještajnu datoteku s popisom računala i potrebnim atributima računala:
Get-ADComputer -Filter OperatingSystem -Like '* Windows Server 2012 *' -Properties * | Select-Object Name, OperatingSystem | ConvertTo-Html | Izvanmrežna datoteka C: \ ps \ ad_computer.html
Da biste izveli određenu radnju sa svim računalima s popisa, morate koristiti Foreach petlju. U ovom primjeru želimo dobiti popis poslužitelja u domeni s modelom i proizvođačem:
$ Computers = Get-ADComputer -Filter OperatingSystem -Like '* Windows Server *'
Foreach ($ Computer in $ Computer)
$ Hostname = $ Computer.Name
$ ComputerInfo = (Get-WmiObject -Computername $ Hostname Win32_ComputerSystem)
$ Proizvođač = $ Computer.Manufacturer
$ Model = $ Computer.Model
Host pisanja "Ime: $ ime hosta"
Domaćin pisanja "Proizvođač: $ Proizvođač"
Host pisanja "Model: $ Model"
Host pisanja ""
$ Content = "$ ime hosta; $ proizvođač; $ model"
Dodajte sadržaj -vrijednost $ Sadržaja -put "C: \ PS \ ServersInfo.txt"
Ili možete koristiti sintaksu kraće petlje. Pretpostavimo da moramo izvršiti određenu naredbu na svim računalima u određenom OU-u (u ovom primjeru želimo pokrenuti naredbu za ažuriranje postavki grupnih pravila na svim poslužiteljima):
get-adcomputer -SearchBase "OU = serveri, DC = winitpro, DC = loc" -Filter * | % Invoke-Command -Compjuter $ _. Ime -ScriptBlock gpupdate / force
Koristeći Get-AdComputer i prijavu skripte PowerShell možete kontrolirati različite postavke računala. Na primjer, pratim status SCCM agenta na računalima korisnika. Kad se svako računalo digne, pokreće skriptu za prijavu koja pomoću Set-ADComputer sprema status usluge ccmexec na besplatni atribut računala - extensionAttribute10.
Zatim pomoću sljedeće naredbe mogu pronaći računala na kojima usluga CCMExec nedostaje ili se ne radi:
get-adcomputer -filter extensionAttribute10 -ne "SCCM agent: Running" -SearchBase "OU = Računala, OU = MSK, DC = winitpro, DC = en" -properties dNSHostName, extensionAttribute10, LastLogonDate | select-object dNSHostName, extensionAttribute LastLogonDate