Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Vijesti
  • Powershell dobija korisnike iz oglasa. Excel umjesto PowerShell-a: upiti prema AD-u i sistemski izvještaji „na koljenu“

Powershell dobija korisnike iz oglasa. Excel umjesto PowerShell-a: upiti prema AD-u i sistemski izvještaji „na koljenu“

U komentarima na prethodni članak sjetili smo se računovodstva u Excelu umjesto u 1C. Pa, hajde da provjerimo koliko poznajete Excel. Danas ću vam pokazati kako da dobijete podatke Aktivni direktorij i radite s njima bez makroa i PowerShell-a - samo sa standardnim Office mehanizmima. Na primjer, možete lako dobiti analitiku o korištenju operativnih sistema u vašoj organizaciji ako već nemate nešto poput Microsoft SCOM. Pa, ili se samo zagrijte i odvratite misli od scenarija.


Naravno, možete dobiti podatke kao u primjerima ispod doslovno jednom linijom u PowerShell-u. Ali, prvo, PowerShell je previše dosadan, a drugo, Excel može dinamički ažurirati podatke - rezultirajući dokumenti se mogu objaviti na mreži i zaboraviti na njihovo ažuriranje.

Za rad s podacima, koristit ću Power Query mehanizam. Za Office 2010 i 2013 moraćete da instalirate dodatak microsoft office 2016. ovaj modul je već ugrađen. Nažalost, standardno izdanje nam nije dovoljno, trebat će nam Professional.


Sam mehanizam je dizajniran da prima i obrađuje podatke od većine različitih izvora- od starih ODBC i tekstualnih datoteka, do Exchangea, Oraclea i Facebooka. Više detalja o mehanizmu i ugrađenom jeziku za skriptiranje "M" već je napisano na Habréu, ali ću pogledati nekoliko primjera korištenja Power Queryja za dobivanje podataka iz Active Directoryja.

Zagrijavanje: Da vidimo kada su se naši korisnici prijavili

Sam zahtjev za bazu podataka domena kreira se na kartici „Podaci ― Novi zahtjev ― Iz drugih izvora ― Iz Active Directory-a.



Navedite izvor podataka.


Morat ćete odabrati naziv domene i dati potrebne informacije o vezi. Zatim odaberite vrstu objekata, u ovom primjeru - korisnik. Sa desne strane u prozoru za pregled upit je već pokrenut i prikazuje se preview podaci.



Pripremamo zahtjev i divimo se pregledu.


Zahtjev pripremite unaprijed klikom na dugme „uredi“ i odabirom potrebnih kolona. U suštini, ove kolone su klase i svaka od njih sadrži skup specifičnih atributa. Aktivni objekt Imenik, osim glavne kolone displayName, što je samo po sebi atribut. Fokusiraću se na časove korisnik, osoba, top I securityPrincipal. Sada morate odabrati potrebnih atributa iz svake klase koristeći “extension” - ikonu sa dvije strelice u zaglavlju kolone:

  • Klasa korisnik proširite odabirom lastLogonTimestamp I userAccountControl;
  • V osoba hajde da izaberemo broj telefona;
  • V topwhenCreated;
  • i u securityPrincipalSamAccountName.


Proširujemo zahtjev.


Sada podesimo filter: posebno, da ne bi dobili blokirane naloge, atribut userAccountControl mora imati vrijednost od 512 ili 66048. Filter može biti drugačiji u vašem okruženju. Više o atributu možete pročitati u Microsoft dokumentaciji.



Primjena filtera.


Ponekad Excel pogrešno detektuje format podataka, posebno vrednost atributa lastLogonTimestamp. Ako vas takva nesreća iznenada zadesi, možete postaviti ispravan format na kartici "Pretvori".

Sada kolonu userAccountControl treba obrisati - ona uopće nije potrebna na ekranu. I kliknite na "Preuzmi i zatvori".


Rezultat je tanjir koji treba samo malo doraditi. Na primjer, preimenujte stupce u nešto čitljivije. I prilagodite automatsko ažuriranje podaci.


Automatsko ažuriranje prilikom otvaranja tabele ili po isteku vremena je konfigurisano na kartici „Podaci“ u „Svojstvima“.



Postavljanje ažuriranja podataka.


Nakon što je podešavanje završeno, možete bezbedno dati tabelu kadrovskoj službi ili službi bezbednosti - obavestite ih ko se i kada prijavio na sistem.


Šifra zahtjeva na jeziku “M” je ispod spojlera.

neka Source = ActiveDirectory.Domains("domain.ru"), domain.ru = Source()[#"Kategorije objekata"], user1 = domain.ru(), #"Remote Columns" = Table.RemoveColumns(user1,( "organizationalPerson", "shadowAccount", "posixAccount", "msExchOmaUser", "msExchBaseClass", "msExchIMRecipient", "msExchCertificateInformation", "msExchMultiMediaUser", "msExchMailStorage", "msExchCustomAtmailRecipient", "msExchCustomAtmailRecipient", "msExchCustomAttributes"), #"Expanded element securityPrincipal" = Table.ExpandRecordColumn(#"Uklonjene kolone", "securityPrincipal", ("sAMAccountName"), ("sAMAccountName")), #"Expanded element top" = Table.ExpandRecordColumn(#"Expanded element securityPrincipal ", "top", ("whenCreated"), ("whenCreated")), #"Expanded element person" = Table.ExpandRecordColumn(#"Prošireni element na vrhu", "person", ("telephoneNumber"), ("telephoneNumber ")), #"Expanded element user" = Table.ExpandRecordColumn(#"Prošireni element person", "user", ("lastLogonTimestamp", "userAccountControl"), ("lastLogonTimestamp", "userAccountControl")), #"Redovi sa primijenjenim filterom" = Table.SelectRows(#"Prošireni korisnički element", svaki ( = 512 ili = 66048)), #"Promijenjeni tip" = Table.TransformColumnTypes(#"Redovi s primijenjenim filterom",(("lastLogonTimestamp", type datetime))), #"Remoted columns1" = Table.RemoveColumns(#"Changed type",("userAccountControl")) u #"Remoted columns1"

Mi stvaramo adresar, ili šta raditi kada korporativni portal nije prijateljski sa AD

Druga varijanta koristeći Excel u sprezi sa Active Directory-jem - ovo je formiranje adresara na osnovu AD podataka. Jasno je da će adresar biti ažuran samo ako je domena uredna.


Kreirajmo zahtjev za objekt korisnik, proširite klasu korisnik V mail, i klasa osoba V broj telefona. Izbrišemo sve kolone osim razlikovno ime― struktura domena ponavlja strukturu preduzeća, dakle imena Organizacione jedinice odgovaraju nazivima odeljenja. Slično, sigurnosne grupe se mogu koristiti kao osnova za nazive odjela.


Sada sa linije CN=Korisničko ime, OU=Računovodstvo, OU=Odjeli, DC=domena, DC=ru morate direktno izdvojiti naziv odjela. Najlakši način da to učinite je da koristite graničnike na kartici Transform.



Izdvajanje teksta.


Kao graničnike koristim OU= I ,OU=. U principu, zarez je dovoljan, ali igram na sigurno.



Unesite graničnike.


Sada pomoću filtera možete odrezati nepotrebno OU, poput blokiranih korisnika i ugrađen, konfigurirajte sortiranje i učitajte podatke u tablicu.



Pogled na zbirnu tabelu.

Brzi izvještaj o sastavu radnih stanica, bez uvođenja agenasa ili druge pripreme

Pokušajmo sada da napravimo korisnu tabelu dobijanjem podataka na računarima. Napravićemo izvještaj o onima koje koristi kompanija operativni sistemi: da bismo to učinili, kreirat ćemo zahtjev, ali ovog puta ćemo odabrati kompjuter.



Pravimo zahtjev za kompjuterski objekat.


Napustimo klase stupaca kompjuter I top i proširite ih:

  • Klasa kompjuter proširite odabirom cn, operativni sistem, operativniSystemServicePack I OperationalSystemVersion;
  • u razredu top hajde da izaberemo whenCreated.


Napredni zahtjev.


Po želji možete napraviti izvještaj samo na serverskim operativnim sistemima. Na primjer, filtrirajte prema atributu OperationalSystem ili OperationalSystemVersion. Neću to raditi, ali ću ispraviti prikaz vremena stvaranja - zanima me samo godina. Da biste to učinili, na kartici "Konverzija" odaberite kolonu koja nam je potrebna i odaberite "Godina" u izborniku "Datum".



Izvlačimo godinu od trenutka kada je računar ušao u domenu.


Sada ostaje samo da obrišete kolonu displayname kao nepotrebnu i učitate rezultat. Podaci su spremni. Sada možete raditi s njima kao sa običnim stolom. Prvo, napravimo stožernu tabelu na kartici "Insert" - " Pivot table" Složimo se s izborom izvora podataka i konfigurirajmo njegova polja.



Postavke polja zaokretne tablice.


Sada ostaje samo da prilagodite dizajn svom ukusu i divite se rezultatu:



Zbirna tabela za računare u AD.


Ako želite, možete dodati sažetak grafikona, također na kartici „Insert“. U "Kategorija" (ili u "Redovi", po ukusu) dodajte operativni sistem, na podatke ― cn. Na kartici "Dizajn" možete odabrati vrstu grafikona koji vam se sviđa; ja sam više volio tortni grafikon.



Pie chart.


Sada je jasno vidljivo da je, uprkos ažuriranju koje je u toku, ukupan broj radnih stanica sa Windows XP i servera sa Windows 2003 prilično velik. I ima čemu težiti.


Šifra zahtjeva je ispod spojlera.

neka Source = ActiveDirectory.Domains("domain.ru"), domain.ru = Source()[#"Kategorije objekata"], computer1 = domain.ru(), #"Remote Columns" = Table.RemoveColumns(computer1,( "user", "organizationalPerson", "person")), #"Other uklonjene kolone" = Table.SelectColumns(#"Remoted columns",("displayName", "computer", "top")), #"Proširi stavku kompjuter" = Table.ExpandRecordColumn(#"Ostale udaljene kolone", "kompjuter", ("cn", "operatingSystem", "operatingSystemServicePack", "operatingSystemVersion"), ("cn", "operatingSystem", "operatingSystemServicePack", " OperationalSystemVersion")), #"Extended top" = Table.ExpandRecordColumn(#"Prošireni računar", "top", ("whenCreated"), ("whenCreated")), #"Extracted year" = Table.TransformColumns( #" Prošireni element vrh",(("whenCreated", Date.Year))), #"Remoted columns1" = Table.RemoveColumns(#"Extracted year",("displayName")) u #"Remoted columns1"

Dodaj oznake

Skripte za istovar svih korisnika iz MS Active Directory (ITGC)

Ivan Piskunov

Jedan od standardne procedure vršenje revizije ITGC za katalog Aktivni direktorij je preuzimanje svih korisnika domene. Na osnovu dobijenih podataka formiraju se procedure testiranja, na primjer, proučavanje liste administratora ili identifikacija korisnika kojima je istekla lozinka. Najefikasniji način za kreiranje takvog otpremanja bila bi upotreba standardni interfejs PowerShell , primjere kojih ćemo razmotriti u ovom članku

1. Ekspresno otpremanje pomoću PowerShell skripte

Ispod je PowerShell skripta, kao jedan od najjednostavnijih i brze načine dobiti listu svih korisnika AD domena CSV format, koji se otvara bez problema sa istim Excelom.

$objSearcher = New-Object System.DirectoryServices.DirectorySearcher $objSearcher.SearchRoot = "LDAP://ou=Korisnici,ou=Departmets,dc=test,dc=ru" $objSearcher.Filter = "(&(objectCategory=osoba) (!userAccountControl:1.2.840.113556.1.4.803:=2))" $users = $objSearcher.FindAll() # Broj naloga $users.Count $users | ForEach-Object ( $user = $_.Properties New-Object PsObject -Property @( Pozicija = $user.description Department = $user.department Prijava = $user.userprincipalname Telefon = $user.telephonenumber Soba = $user.physicaldeliveryofficename Puno ime = $user.cn ) ) | Export-Csv -NoClobber -Encoding utf8 -Path C: list_domain_users.csv

Da bi skripta radila na vašem sistemu, morate je malo ispraviti, odnosno enter potrebnih parametara, tj. kako unutra u ovom primjeru ovo su parametri Korisnici u odeljenju Odeljenja u domenu Test.ru. I također naznačite putanju do mjesta gdje je datoteka spremljena list_domain_users.csv

Nakon istovara, ako ga odmah otvorite list_domain_users.csv , izgledat će nečitljivo, međutim, koristeći standardna sredstva možemo ga lako dovesti u format koji nam je potreban. Otvorite u Excelu list_domain_users.csv , odaberite prvu kolonu, a zatim idite na karticu „Podaci“ i kliknite na „Tekst po kolonama“. Odaberite "razdvojeno" i kliknite "Dalje". Spremni!

!Neophodno je napomenuti da ova skripta neće prikazati više od 1000 korisnika. Prilično je pogodan za malu kompaniju, ali za one sa domenom velika količina korisnici bi trebali pribjeći metodama opisanim u nastavku.

2. Napredni PowerShell cmdlet za preuzimanje korisničkih učitavanja Active Directory

Modul Active Directory za Windows PowerShell alat (uveden u Windows Server 2008 R2 i novije verzije), omogućava vam kreiranje cmdlet-a koji izvode različite manipulacije sa objektima AD direktorija. Cmdlet se koristi za dobivanje informacija o korisnicima i njihovim svojstvima Get-ADUser.

Početi pokrenite Powershell prozor s administratorskim pravima i uvezite Active Directory modul za daljnje radnje:
Uvozni modul aktivni direktorij

To navesti sve račune domene i, pokrenimo naredbu:

Get-ADUser -filter *

To povući puna informacija o svim dostupnim atributima korisnik tuser, pokrenite naredbu

Get-ADUser -identitet tuser -svojstva *


Na primjer, zanimaju nas informacije o datum promjene lozinke i vrijeme kada ona ističe . Rezultat naredbe se može izvesti u tekstualnu datoteku:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Ime, PasswordExpired, PasswordLastSet, PasswordNeverExpires > C:tempusers.txt

Ili odmah prenijeti u CSV , koji će u budućnosti biti zgodan za izvoz u Excel (osim toga, koristeći sort-object mi ćemo sortirati tablicu po stupcu PasswordLastSet, a također ćemo dodati gdje uvjet - korisničko ime mora sadržavati string "Dmitry")

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | gdje ($_.name –kao “*Dmitry*”) | sort-objek PasswordLastSet | select-object Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv -path c:tempuser-password-expires-2015.csv

Dobar dan, dragi čitatelji i pretplatnici, nastavljamo proučavati mogućnosti Powershell-a i Active Directory-a. Kao što se sećate, svi njeni korisnički i kompjuterski nalozi se nalaze u bazi podataka NTDS.dit, sve je odlično i centralizovano. Kada kompanija ima više od jednog administratora sistema, može se pojaviti situacija u kojoj se gomilaju smeće i nepotrebni akreditivi. Svi smo mi ljudi i neke stvari možemo zaboraviti, a u nekim trenucima možemo biti ometeni, što će takođe dovesti do zaborava važna informacija. I dolazimo do zaključka da se Actvie imenik ne akumulira aktivni korisnici(otpušten ili zaboravljen), u svakom slučaju, dobro Administrator sistema moramo ih identificirati, onemogućiti i zatim izbrisati ako želimo, što ćemo i učiniti.

Preko ADUC snap-in

Prošli put sam vam već dao primjer korištenja Active snap-ina Korisnici imenika i računare, preko kojih smo tražili nestale računare na lokalnoj mreži koji se nisu pojavili mjesec dana. Sada ćemo to učiniti i sa korisničkim nalozima. Imam AD na Windows Server 2012 R2, otvorite ADUC, da biste to uradili pritisnite WIN+R i unesite dsa.msc.

U obrazac zahtjeva koji se otvori unesite:

  • Zatražite ime > za mene su ovo izgubljeni korisnici
  • Opis ako je potrebno
  • Zahtjev root > ovdje možete ostaviti cijeli domen, ili ga navesti na željenom OU

Zatim kliknite na dugme za zahtev.

Na kartici korisnika vidimo stavku "Broj dana od zadnja prijava u sistemu" postavio sam 60 dana na primjer.

Kao rezultat toga, dobićete potrebnu listu neaktivnih naloga zaposlenih.

Preko powershell snap-in-a

Ista stvar se može uraditi preko Powershell-a. Odmah ću vam dati kod čiji je zadatak pretraživanje neaktivni korisnici, za ovo sam odabrao period od 45 dana, onemogućio korisničke podatke i premjestio ih u posebno određeno OU.

$date_with_offset= (Get-Date).AddDays(-45)
$users = Get-ADUser -Properties LastLogonDate -Filter (LastLogonDate -lt $date_with_offset) | Sortiraj LastLogonDate
foreach ($user u $users) (set-aduser $user -enabled $false; move-adobject -identity $user -targetpath "ou=Otpušten,ou=Moskva L. korisnici,ou=Lokacija,dc=msk,dc= contoso,dc=com")
Get-ADUser -Svojstva LastLogonDate -Filter (LastLogonDate -lt $date_with_offset ) | Sortiraj LastLogonDate | FT Ime, LastLogonDate -AutoSize | Izlazna datoteka c:\Script\users.txt

  • U prvom redu deklarirate varijablu u kojoj postavljate pojam za pretraživanje
  • Kreirajte varijablu i napravite odabir na osnovu vremena posljednje prijave
  • Korisnici koji se sele

  • Pravljenje izvještaja u fajl

Više korisnih stvari o radu sa korisnikom. Prije korištenja naredbi ispod, potrebno je da učitate modul Active Directory putem naredbe

Get-Help Get-ADUser

0

Imam sljedeću radnu skriptu koja provjerava da li velika lista korisnika u CSV datoteci kao član AD grupe i zapisuje rezultate u results.csv.

Nisam siguran kako da konvertujem skriptu da bih mogao promijeniti $group = "InfraLite" u $group = DC .\List_Of_AD_Groups.CSV .

Dakle, skripta ne vraća samo podudaranja za jednu AD grupu, već vraća podudaranja za 80 AD grupa sadržanih u List_of_AD_groups.csv. Pisanje DA/NE za svaku AD grupu u novom CSV stupcu (ili ako to nije moguće, kreiranje zasebne CSV datoteke za svaku grupu s rezultatima učinit će isto.

Mogao bih to učiniti ručno mijenjajući vrijednost iz $group i naziv datoteke za izvoz i restart skriptu 80 puta, ali je morao biti brz sa PS-om da bi to uradio

na primjer rezultati.csv?:

IME AD_GROUP1 AD_GROUP2 AD_GROUP80 itd itd. korisnik1 da ne da korisnik2 ne ne da korisnik3 ne da ne echo "UserName`InfraLite" >> results.csv $users = GC .\user_list.csv $group = "InfraLite" $members = Get-ADGroupMember -Identity $group -Rekurzivno | Odaberite -ExpandProperty SAMAccountName foreach ($user u $users) ( if ($members -sadrži $user) ( echo "$user $group`tYes" >> results.csv ) else ( echo "$user`tNo" >> rezultati .csv) )

  • 2 odgovora
  • sortiranje:

    Aktivnost

0

Trivijalno rješenje vašeg problema bi bilo da umotate svoj postojeći kod u drugu petlju i kreirate izlaznu datoteku za svaku grupu:

$groups = Get-Content "C:\groups.txt" za svaki ($grupa u $grupama) ( $members = Get-ADGroupMember ... ... )

Elegantniji pristup bio bi kreiranje predloška mapiranja grupe, kloniranje za svakog korisnika i popunjavanje kopije korisnikovim članstvom u grupi. Ovako nešto bi trebalo raditi:

$template = @() Get-Content "C:\groups.txt" | ForEach-Object ( $template[$_] = $false ) $groups = @() Get-ADGroup -Filter * | ForEach-Object ( $groups[$_.DistinguishedName] = $_.Name ) Get-ADUser -Filter * -Properties MemberOf | ForEach-Object ( $groupmap = $template.Clone() $_.MemberOf | ForEach-Object ( $groups[$_] ) | Where-Object ( $groupmap.ContainsKey($_) ) | ForEach-Object ( $groupmap [$_] = $true ) Novi-Objekat -Tip PSObjekat -Svojstvo $groupmap ) | Izvezi-Csv "C:\user_group_mapping.csv" -NoType

0

Igrao sam se s ovim već neko vrijeme i mislim da sam našao način da vam dobijem upravo ono što tražite.

Mislim da je Ansgar bio na pravom putu, ali nisam mogao da ga nateram da uradi ono što je usledilo. Spomenuo je da u vrijeme pisanja nije imao pristup AD okruženju.

Evo šta sam smislio:

$UserArray = Get-Content "C:\Temp\Users.txt" $GroupArray = Get-Content "C:\Temp\Groups.txt" $OutputFile = "C:\Temp\Something.csv" # Postavljanje hashtable za kasniju upotrebu $UserHash = New-Object -TypeName System.Collections.Hashtable # Vanjska petlja za dodavanje korisnika i članstva u UserHash $UserArray | ForEach-Object( $UserInfo = Get-ADUser $_ -Properties MemberOf # Skida LPAP sintaksu samo na SAMAccountName grupe $Memberships = $UserInfo.MemberOf | ForEach-Object( ($_.Split(",")) .replace("CN=","") ) #Dodavanje para User=Članstvo u Hash $UserHash.Add($_,$Memberships) ) #Spoljna petlja za kreiranje objekta po korisniku $Results = $UserArray | ForEach-Object( # Prvo kreirajte jednostavan objekat $User = New-Object -TypeName PSCustomObject -Property @( Name = $_ ) # Dinamički dodajte članove objektu, na osnovu $GroupArray $GroupArray | ForEach-Object ( #Provjera $UserHash da vidite da li se grupa pojavljuje na listi članova korisnika $UserIsMember = $UserHash.($User.Name) -sadrži $_ #Dodavanje svojstva objektu i vrijednost $User | Add-Member -MemberType NoteProperty -Name $ _ -Value $UserIsMember ) #Vraćanje objekta u varijablu Return $User ) #Pretvorite objekte u CSV, a zatim ih iznesite $Results | ConvertTo-CSV -NoTypeInformation | Out-File $OutputFile

Nadajmo se da sve ima smisla. Komentirao sam koliko sam mogao. Bilo bi vrlo lako pretvoriti u ADSI da nemate instaliran RSAT na bilo kojoj mašini na kojoj ovo pokrećete. Ako vam zatreba, javite mi i napravit ću neke brze promjene.

Nije tajna da od prve verzije PowerShell-a, Microsoft pokušava da od njega napravi glavni alat za administraciju Windows-a. I na mnogo načina uspijeva! Danas ćemo, koristeći jednostavne primjere, pokazati PowerShell karakteristike, koji se može koristiti za dobijanje razne informacije o korisnicima Active Directory-a i njihovim atributima.

Bilješka. Ranije, da biste dobili informacije o atributima AD korisničkih naloga, morali ste koristiti različite alate: ADUC konzolu (uključujući), uslužni program, itd. Odabir alata se obično zasnivao na zadatku i programskim sposobnostima administratora.

PowerShell 2.0 uveo je poseban modul za rad sa Active Directory-om - (uveden u Windows Server 2008 R2), čije cmdlete vam omogućavaju da izvršite različite manipulacije sa objektima AD direktorija. Za dobijanje informacija o korisnicima domain Active Direktorij i njihova svojstva cmdlet Get-ADUser. Možete koristiti Get-ADUser cmdlet da dobijete vrijednost bilo kojeg atributa postojećeg korisničkog naloga u AD. Osim toga, možete odrediti različite kriterije odabira i generirati liste korisnika domena i njihovih atributa.

U ovom primjeru pokazat ćemo vam kako koristiti PowerShell Get-ADUser cmdlet za preuzimanje informacija o tome kada je lozinka korisnika posljednji put promijenjena i kada ističe.

Pokrenite Powershll prozor s administratorskim pravima i uvezite Active Directory modul naredbom:

Uvozni modul aktivni direktorij

Savjet. U Windows Serveru 2012 i novijim, možete preskočiti ovu stavku, budući da je modul PowerShell Active Direktorij je po defaultu povezan.

U klijentskim operativnim sistemima (Windows 10 na primjer), da bi Get-AdUser komandir radio, morate instalirati odgovarajuću verziju RSAT-a i omogućiti komponentu na kontrolnoj tabli Modul Active Directory za Windows PowerShell (Remote Server Administrativni alati -> Alati za administraciju uloga -> AD DS i AD LDS alati -> AD DS alati).

Kompletna lista svih Get-ADUser cmdlet argumenata može se dobiti na sljedeći način:

Pomozite Get-ADUser

Za prikaz liste svih računa domene, pokrenite naredbu:

Get-ADUser -filter *

Format vraćene liste nije baš pogodan za korišćenje, samo nekih osnovnih 10 od više od 120 atributa i svojstava korisničkih naloga se prikazuje (DN, SamAccountName, Name, UPN, itd.) pored toga, vidimo da postoji nema informacija o vremenu zadnje promjene lozinke.

Za prikaz kompletnih informacija o svim dostupnim atributima korisnika korisnika, pokrenite naredbu:

Get-ADUser -identitet tuser -svojstva *

Dakle, vidimo kompletnu listu AD korisničkih atributa i njihovih vrijednosti povezanih s korisničkim računom. Zatim ćemo preći na formatiranje izlaza Get-ADUser cmdleta tako da se prikažu polja koja su nam potrebna. Zanimaju nas atributi:

  • Lozinka je istekla
  • PasswordLastSet
  • PasswordNeverExpires

Pokrenimo naredbu:

Get-ADUser tuser - svojstva PasswordExpired, PasswordLastSet, PasswordNeverExpires

Sada korisnički podaci sadrže informacije o datumu promjene lozinke i vremenu kada će isteći. Predstavimo informacije u prikladnijem tabelarnom obliku:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Ime, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Za prikaz korisničkih podataka iz određene OU koristite parametar SearchBase:

Get-ADUser -SearchBase ‘OU=Moskva,DC=winitpro,DC=loc’ -filter * -osobine PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Ime, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Rezultat naredbe se može izvesti u tekstualnu datoteku:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Ime, PasswordExpired, PasswordLastSet, PasswordNeverExpires > C:\temp\users.txt

Ili u CSV-u, koji će u budućnosti biti prikladno izvezen u Excel (dodatno korištenjem sort-objekat Hajde da sortiramo tabelu po koloni PasswordLastSet i dodamo uslov gdje– korisničko ime mora sadržavati string “Dmitry”):

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | gdje ($_.name –kao “*Dmitry*”) | sort-objek PasswordLastSet | select-object Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv -path c:\temp\user-password-expires-2015.csv

Dakle, možete napraviti tabelu sa svim potrebnim korisničkim atributima Active Directory.

Da biste dobili listu AD korisničkih naloga na osnovu određene karakteristike, koristite parametar –Filter. Kao argumente ovom parametru, možete navesti vrijednost određenih korisničkih atributa Active Directory, što će uzrokovati primjenu cmdleta Get-ADUser na korisnike koji odgovaraju kriterijima filtera.

Izlaz AD korisnika čije ime počinje s rimskim:

Get-ADUser -filter (ime -kao "Roman*")

Get-ADUser -Filter (SamAccountName -kao "*") | Mjera-Objekat

Spisak svih aktivnih (ne blokiranih) naloga u AD:

Get-ADUser -Filter (omogućeno -eq "True") | Odaberite-Objekat SamAccountName,Ime,Prezime,GivenName | Format-Tabela

Lista računa sa istekao radnje lozinke:

Get-ADUser -filter (omogućeno -eq $True) -svojstva lozinka je istekla | gdje($_.PasswordExpired)

Lista aktivnih naloga sa email adresama:

Get-ADUser -Filter ((mail -ne "null") -i (Enabled -eq "true")) -Properties Prezime,GivenName,mail | Odaberite-Ime objekta,Prezime,Ime,pošta | Format-Tabela

Zadatak: Za listu računa koji su pohranjeni u tekstualnu datoteku(jedan nalog po redu) potrebno je da dobijete telefonski broj korisnika u AD-u i prenesete informacije u tekstualni csv fajl (može se lako uvesti u Esxel).

Import-Csv c:\ps\usernsme_list.csv | ForEach ( Get-ADUser -identity $_.user -Properties Ime, telefonski broj | Odaberite ime, telefonski broj | Export-CSV c:\ps\export_ad_list.csv -Dodaj -Encoding UTF8)

Sljedeći primjer omogućava vam da preuzmete poslovni adresar kao csv datoteku, koja se kasnije može uvesti u Outlook ili Mozilla Thunderbird:

Get-ADUser -Filter ((mail -ne "null") -i (Enabled -eq "true")) -Properties Prezime,GivenName,mail | Odaberite-Ime objekta,Prezime,Ime,pošta | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $env:temp\mail_list.csv

Korisnici koji nisu promijenili lozinku u posljednjih 90 dana:

$90_Dani = (Get-Date).adddays(-90) Get-ADUser -filter ((passwordlastset -le $90_days))

$user = Get-ADUser winadmin -Svojstva thumbnailPhoto $user.thumbnailPhoto | Set-Content winadmin.jpg -Encoding byte

Spisak grupa u koje on pripada Račun korisnik

Get-AdUser winadmin -Properties memberof | Odaberite memberof -expandproperty memberof

Najbolji članci na ovu temu