Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Windows 8
  • Ps aruncă lista de utilizatori din grupul de anunțuri. Găsiți utilizatori inactivi în Active Directory

Ps aruncă lista de utilizatori din grupul de anunțuri. Găsiți utilizatori inactivi în Active Directory

Bună ziua, dragi cititori și abonați, continuăm să explorăm cu voi posibilitățile Powershell și Active Directory. După cum vă amintiți, ea are toate conturile de utilizator și computer în baza de date NTDS.dit, totul este grozav și centralizat. Atunci când o companie are mai mult de un administrator de sistem, poate rezulta o situație ca gunoiul și acreditările inutile să se acumuleze în ea. Cu toții suntem oameni și putem uita unele lucruri, iar în unele momente putem fi distrași, ceea ce va duce și la uitarea de informații importante. Și ajungem la concluzia că utilizatorii inactivi (demisi sau uitați) se acumulează în Directorul Actvie, în orice caz, un administrator de sistem bun ar trebui să-i identifice, să-i dezactiveze și apoi să-i ștergă după bunul plac, ceea ce vom face.

Prin snap-in-ul ADUC

Data trecută v-am dat deja un exemplu de utilizare a snap-in-ului Active Directory Users and Computers, prin care am căutat computere lipsă în rețeaua locală care nu mai apăreau de o lună. Acum să facem același lucru cu conturile de utilizator. Am AD pe Windows Server 2012 R2, deschideți ADUC, pentru asta apăsați WIN + R și introduceți dsa.msc.

În formularul de cerere care se deschide, specificați:

  • Nume cerere> Am pierdut utilizatori
  • Descriere dacă este necesar
  • Solicitați rădăcină> aici puteți lăsa întregul domeniu sau îl puteți specifica pe OU dorit

Apoi apăsăm butonul de solicitare.

În fila utilizatori, vedem elementul „Număr de zile de la ultima conectare”, de exemplu, am setat 60 de zile.

Ca rezultat, veți obține lista de conturi de angajați inactivi de care aveți nevoie.

Prin intermediul snap-in-ului Powershell

La fel se poate face prin Powershell. Imediat voi da un cod a cărui sarcină este să caute utilizatori inactivi, pentru asta am ales o perioadă de 45 de zile, deconectând datele utilizatorului și trecând la o OU special desemnată.

$ date_with_offset = (Get-Date) .AddDays (-45)
$ utilizatori = Get-ADUser -Properties LastLogonDate -Filter (LastLogonDate -lt $ date_with_offset) | Sortați LastLogonDate
foreach ($ utilizator în $ utilizatori) (set-aduser $ user -enabled $ false; move-adobject -identity $ user -targetpath "ou = Demis, ou = Msk L. utilizatori, ou = Locație, dc = msk, dc = contoso, dc = com ")
Get-ADUser -Properties LastLogonDate -Filter (LastLogonDate -lt $ date_with_offset) | Sortează LastLogonDate | Nume FT, LastLogonDate -AutoSize | Out-Fișier c: \ Script \ users.txt

  • În prima linie, declarați o variabilă în care setați termenul de căutare
  • Creați o variabilă și un eșantion până la ultima oră de conectare
  • Mutarea utilizatorilor

  • Efectuarea unui raport la un dosar

Lucruri mai utile pentru lucrul cu utilizatorul. Înainte de a utiliza comenzile de mai jos, trebuie să încărcați modulul Active Directory prin intermediul comenzii

Get-Help Get-ADUser

Scripturi pentru a descărca toți utilizatorii din MS Active Directory (ITGC)

Ivan Piskunov

Una dintre procedurile standard de audit ITGC pentru catalog Director activ este să obțineți descărcarea tuturor utilizatorilor domeniului. Pe baza datelor primite se formează apoi proceduri de testare, de exemplu, studierea listei de administratori sau identificarea utilizatorilor cu o parolă expirată. Cel mai eficient mod de a forma o astfel de descărcare ar fi folosirea interfeței standard PowerShell , exemple din care vom lua în considerare în acest articol

1. Încărcare rapidă folosind scriptul PowerShell

Mai jos este un script PowerShell ca una dintre cele mai simple și rapide moduri de a obține o listă a tuturor utilizatorilor unui domeniu AD în format CSV, care poate fi deschisă fără probleme de același Excel.

$ objSearcher = New-Object System.DirectoryServices.DirectorySearcher $ objSearcher.SearchRoot = "LDAP: // ou = Utilizatori, ou = Departamente, dc = test, dc = ru" $ objSearcher.Filter = "(& (objectCategory = persoană) (! userAccountControl: 1.2.840.113556.1.4.803: = 2)) "$ utilizatori = $ objSearcher.FindAll () # Număr de conturi $ utilizatori.Număr $ utilizatori | Pentru fiecare obiect ($ user = $ _. Proprietăți New-Object PsObject -Property @ (Titlu = $ user.description Department = $ user.department Login = $ user.userprincipalname Telefon = $ user.telephonenumber Room = $ user.physicaldeliveryofficename Complet nume = $ user.cn)) | Export-Csv -NoClobber -Codificare utf8 -Calea C: list_domen_users.csv

Pentru ca scriptul să funcționeze pe sistemul dvs., trebuie să îl corectați ușor, și anume să introduceți parametrii necesari, adică. ca în acest exemplu aceștia sunt parametri Utilizatori în unitate Departamente în domeniu Test.ru. Și, de asemenea, specificați calea către locația în care este salvat fișierul list_domen_users.csv

După descărcare, dacă deschideți imediat list_domen_users.csv , va arăta într-o formă de necitit, totuși, prin mijloace standard, îl putem aduce cu ușurință în formatul de care avem nevoie. Deschidere în Excel list_domen_users.csv , selectați prima coloană, apoi accesați fila „Date” și faceți clic pe „Text după coloane”. Selectați „delimitat” și faceți clic pe „Următorul”. Gata!

! Ar trebui notat că acest script nu va afișa mai mult de 1000 de utilizatori. Este destul de potrivit pentru o companie mică, dar cei care au un număr mare de utilizatori în domeniu ar trebui să folosească metodele descrise mai jos.

2. Cmdlet PowerShell avansat pentru descărcarea utilizatorilor Active Directory

Modulul Active Directory pentru instrumentul Windows PowerShell (introdus în Windows Server 2008 R2 și mai târziu) vă permite să generați cmdlet-uri care efectuează diverse manipulări cu obiectele directorului AD. Pentru a obține informații despre utilizatori și proprietățile acestora, utilizați cmdletul Get-ADUser.

A începe lansați o fereastră Powershell cu drepturi de administrator și importați modulul Active Directory pentru acțiuni ulterioare:
Import-Module activedirectory

La listează toate conturile de domeniu a, hai să executăm comanda:

Get-ADUser -filter *

La afișați informații complete despre toate atributele disponibile utilizator tuser, rulați comanda

Get-ADUser -identity tuser -properties *


De exemplu, ne interesează informații despre data la care a fost schimbată parola și ora la care expiră ... Rezultatul executării comenzii poate fi exportat într-un fișier text:

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

Sau imediat încărcați în CSV , care în viitor va fi convenabil de exportat în Excel (în plus, folosind sort-obiectul, vom sorta tabelul după coloana PasswordLastSet și, de asemenea, vom adăuga condiția unde - numele de utilizator trebuie să conțină șirul „Dmitry”)

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | unde ($ _. nume –cum ar fi „* Dmitry *”) | sort-object PasswordLastSet | select-object Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv -path c: tempuser-password-expires-2015.csv

În acest articol, vom arunca o privire asupra capabilităților PowerShell pentru gestionarea grupurilor de domenii Active Directory. Vom parcurge cum să creați un grup nou în AD, să adăugați utilizatori la acesta (sau să ștergeți), să enumerați utilizatorii grupului și alte câteva trucuri utile pentru grupuri de domenii, care sunt extrem de utile în administrarea de zi cu zi. Următoarele cmdleturi de bază sunt disponibile în modulul Active Directory PowerShell pentru a gestiona grupurile AD:

Pentru a utiliza aceste cmdleturi în sesiunea dvs. PowerShell, trebuie încărcat un modul special de interacțiune AD - Modul Active Directory pentru Windows PowerShell... Acest modul a fost introdus pentru prima dată în Windows Server 208 R2. În Windows Server 2012 și versiuni ulterioare, acest modul este activat implicit. Pe computerele client, acesta poate fi instalat și activat ca una dintre componentele RSAT. Puteți verifica dacă modulul este încărcat astfel:

Get-Module -Listavailable

După cum puteți vedea, modulul ActiveDirectory este încărcat. Dacă nu, importați-l cu comanda:

Import-Module activedirectory

O listă completă a comenzilor modulelor poate fi obținută după cum urmează:

Get-Command -Module ActiveDirectory

Există 147 de cmdlet-uri disponibile în modul, dintre care 11 pot lucra cu grupuri.

Get-Command -Module ActiveDirectory -Nume „* Grup *”

Iată o listă cu ele:

  • Add-ADPrincipalGroupMembership
  • Get-ADAccountAuthorizationGroup
  • Get-ADGroup
  • Get-ADGroupMember
  • Get-ADPrincipalGroupMembership
  • Nou-ADGroup
  • Eliminați-ADGroup
  • Eliminați-ADPrincipalGroupMembership
  • Set-ADGroup

Creați un nou grup în containerul specificat (OU) Active Directory utilizând comanda Nou-ADGroup:

Nou-ADGroup "TestADGroup" -calea "OU = Grupuri, OU = Moscova, DC = corp, dc = winitpro, DC = ru" -GroupScope Global -PassThru –Verbose

Folosind atributul Descriere puteți seta o descriere a grupului și folosind Numele afisat schimbați numele afișat.

Parametrul GroupScope puteți seta unul dintre următoarele tipuri de grupuri:

  • 0 = DomainLocal
  • 1 = Global
  • 2 = Universal

Puteți crea un grup de distribuție astfel:

New-ADGroup "TestADGroup-Distr" -calea "OU = Groups, OU = Moscow, DC = corp, dc = winitpro, DC = ru" -GroupCategory Distribution -GroupScope Global -PassThru –Verbose

Add-AdGroupMember - adăugați utilizatori la grupul AD

Puteți adăuga utilizatori la un grup Active Directory utilizând Add- AdGroupMember... Să adăugăm doi utilizatori la noul grup:

Add-AdGroupMember -Identity TestADGroup -Membri utilizator1, utilizator2

Dacă lista de utilizatori de adăugat la un grup este destul de mare, puteți salva lista de conturi într-un fișier CSV, apoi importați acest fișier și adăugați fiecare utilizator în grup.

Formatul fișierului CSV este următorul (lista de utilizatori, unul pe linie, numele coloanei este utilizatori)

Import-CSV.\ Users.csv -Header users | Pentru fiecare obiect (Add-AdGroupMember -Identitate „TestADGroup” -membri $ _. Utilizatori)

Pentru a obține toți membrii unui grup (grup A) și pentru a-i adăuga la un alt grup (grup B), utilizați această comandă:

Get-ADGroupMember „GroupA” | Get-ADUser | Pentru fiecare obiect (Add-ADGroupMember -Identitate „Grupul-B” -Membri $ _)

În cazul în care trebuie să copiați membrii tuturor grupurilor imbricate într-un grup nou (recursiv), trebuie să utilizați următoarea comandă:

Get-ADGroupMember -Identitate „GroupA” -Recursiv | Get-ADUser | Pentru fiecare obiect (Add-ADGroupMember -Identitate „GroupB” -Membri $ _)

Remove-ADGroupMember - eliminați utilizatori dintr-un grup

Pentru a elimina utilizatori dintr-un grup AD, utilizați comanda Remove-ADGroupMember. Să eliminăm doi utilizatori din grup:

Remove-ADGroupMember -Identity TestADGroup -Members user1, user2

Confirmați eliminarea utilizatorilor din grup:

Dacă trebuie să eliminați utilizatori dintr-un grup conform listei dintr-un fișier CSV, utilizați următoarea comandă:

Import-CSV.\ Users.csv -Header users | Pentru fiecare obiect (Remove-ADGroupMember -Identity ‘TestADGroup’ -membri $ _. Utilizatori)

Get-ADGroup - obțineți informații despre un grup AD

Cmdletul vă va ajuta să obțineți informații despre grup. Get-ADGroup:

Get-ADGroup „TestADGroup”

Această comandă afișează informații despre atributele principale ale grupului (DN, tip de grup, nume, SID). Pentru a afișa valoarea tuturor atributelor unui grup de domenii AD, executați următoarea comandă:

Get-ADGroup "TestADGroup" -properties *

După cum puteți vedea, acum sunt afișate atribute precum timpul de creare și modificare a grupului, descrierea etc.

Folosind cmdletul Get-ADGroup, puteți găsi toate grupurile de care sunteți interesat după un anumit model. De exemplu, trebuie să găsiți toate grupurile AD care conțin expresia administratori :

Get-ADGroup -LDAPFilter „(nume = * admins *)” | Format-Tabel

Get-ADGroupMember - Listează utilizatorii unui grup AD

Afișează o listă de utilizatori dintr-un grup:

Get-ADGroupMember „TestADGroup”

Pentru a lăsa doar nume de utilizator în rezultate, rulați:

Get-ADGroupMember „TestADGroup” | ft nume

Dacă acest grup include alte grupuri în domeniu, pentru a afișa o listă completă de membri, inclusiv toate grupurile imbricate, utilizați parametrul Recursiv.

Get-ADGroupMember „server-admins „-recursive | ft name

Pentru a exporta lista de conturi aparținând unui anumit grup într-un fișier CSV (pentru utilizare ulterioară în Excel), rulați următoarea comandă:

Get-ADGroupMember „server-admins „-recursiv | ft samaccountname | Out-File c: \ ps \ admins.csv

Vom folosi cmdletul pentru a adăuga informații despre contul de utilizator AD într-un fișier text. De exemplu, pe lângă cont, trebuie să afișați poziția și numărul de telefon al utilizatorului grupului:

Get-ADGroupMember -Identity „server-admins” -recursiv | foreach (Get-ADUser $ _ -properties title, OfficePhone | Select-Object title, OfficePhone)

(Get-ADGroupMember -Identitate „administratori de domeniu”). Număr

S-a dovedit că avem 7 conturi de administrator în grupul „domain admins”.

Pentru a găsi o listă de grupuri goale într-o anumită OU, utilizați această comandă:

Get-ADGroup -Filter * -Properties Members -searchbase „OU = Moscow, DC = corp, dc = winitpro, DC = ru” | unde (-nu $ _. membri) | selectați Nume

Astăzi vom încerca să descarcăm lista tuturor utilizatorilor într-un fișier separat din Active Directory. PowerShell va fi principalul nostru asistent în această problemă. Acest lucru se datorează faptului că Microsoft a planificat inițial PowerShell Shell ca instrument principal pentru gestionarea componentelor serverului Windows. Și astăzi, când avem deja versiunea 2.0, în general, așa este.

Chiar și în trecutul recent, pentru a interacționa cumva cu AD, administratorii trebuiau să aibă la dispoziție fie utilitarul dsquery, fie tot felul de scripturi sau utilitare. Astăzi, începând cu Windows Server 2008 R2, putem lucra cu AD prin PowerShell. Odată cu apariția PowerShell 2.0, un modul special este utilizat pentru a interacționa cu Active Directory Modul Active Directory pentru Windows PowerShell care conține lista necesară de cmdleturi. Pentru sarcinile noastre, vom folosi comanda Get-ADUser.

Deci, în funcție de sistemul de operare pe care vom rula consola PowerShell, va trebui să facem „pași pregătitori”.

1) Dacă lucrăm de sub Windows Server până la versiunea 2012, apoi trebuie să executăm comanda:

  • Import-Module activedirectory - comandă pentru importul unui modul în AD

Pentru versiunile de sistem de operare din 2012 și mai sus, acest modul este deja activat implicit.

2) Dacă lucrăm de pe orice client Windows, atunci trebuie instalat pachetul de administrare la distanță RSAT, cu componenta Active Directory Module pentru Windows PowerShell instalată.

Este de remarcat faptul că cmdletul Get-ADUser este recomandat să ruleze atunci când cantitatea de date încărcate este de până la 1000 de utilizatori.

Exportarea utilizatorilor AD utilizând PowerShell într-un fișier separat

Mai întâi, să apelăm ajutorul pentru comanda Get-ADUser. Ca urmare, veți primi toate comenzile necesare pentru administrare ulterioară.

  • ajuta Get-ADUser - comanda pentru a apela ajutor

Pentru a obține o listă a tuturor utilizatorilor cu toate proprietățile într-o fereastră PowerShell, rulați următoarea comandă:

  • Get-ADUser -filter * - exportul listei de utilizatori AD

Această descărcare nu este complet informativă și nu încadrează toate informațiile necesare din fereastră. Prin urmare, să încercăm să restrângem căutarea și să afișăm proprietățile unui anumit utilizator numit user1:

  • Get-ADUser -identity user1 -properties * - exportul proprietăților unui anumit utilizator

Acum să încercăm să exportăm lista tuturor utilizatorilor cu proprietățile lor într-una externă. txt sau csv fişier:

  • Get-ADUser -filter * -properties * | Export-csv -path c: \ users.csv -encoding Unicode - exportul utilizatorilor într-un fișier separat

Aș dori să atrag o atenție deosebită asupra cheii -codificarea Unicode... Este folosit pentru ca alfabetul chirilic rus, după exportul din AD, să poată fi afișat corect în fișierul încărcat. De exemplu, prin Microsoft Excel vom vedea semne de întrebare în loc de litere rusești.

Când vizualizați un fișier, datele sunt exportate pe o singură linie și astfel nu pot fi citite. Pentru a schimba acest lucru, trebuie să facem următoarele:

Top articole similare