Microsoft Active Directory servește ca punct centralizat pentru administrare, autorizare și autentificare. În AD, accesul la resursele de rețea este acordat principalilor de securitate, cum ar fi conturile de utilizator și conturile de calculator, iar aceste permisiuni se pot schimba în timp. Pentru a simplifica gestionarea accesului și a îmbunătăți securitatea, companiile medii și mari utilizează adesea grupuri de securitate Active Directory, care pot conține conturi de utilizator, conturi de calculator și alte grupuri. De asemenea, acestea utilizează adesea grupuri de distribuție pentru a gestiona listele de distribuție a e-mailurilor. Atât grupurile de securitate, cât și grupurile de distribuție au identificatori unici de securitate (SID) și identificatori unici la nivel global (GUID).
Instrumentul snap-in ADUC MMC este excelent pentru gestionarea ambelor tipuri de grupuri, dar PowerShell este o modalitate mult mai eficientă de a le gestiona în masă.
Dacă nu sunteți deja familiarizat cu grupurile AD și cu gestionarea grupurilor, vă rugăm să citiți ghidul Active Directory Group Management Best Practice înainte de a trece mai departe.
De asemenea, rețineți că, pentru a utiliza aceste scripturi PowerShell, trebuie să importați modulul pentru interacțiunea cu AD – modulul Active Directory pentru Microsoft Windows PowerShell. Acest modul a fost introdus în Windows Server 2008 R2 și este activat în mod implicit în Windows Server 2012 și ulterior. Puteți obține lista completă a cmdleturilor din modulul AD executând următoarea comandă:
Get-Command -Module ActiveDirectory
Lista completă conține 147 de cmdleturi; cu toate acestea, doar aceste unsprezece sunt legate de grupurile Active Directory:
- Add-ADGroupMember
- Add-ADPrincipalGroupMembership
- Get-ADPrincipalGroupMembership
- Get-ADAccountAuthorizationGroup
- Get-ADGroup
- Get-ADGroupMember
- Get-ADPrincipalGroupMembership
- New-ADGroup
- Remove-ADGroup
- Remove-ADGroupMember
- Remove-ADPrincipalGroupMembership
- Set-ADGroup
Crearea unui grup Active Directory cu PowerShell
Pentru a crea un grup AD, utilizați cmdlet-ul New-ADGroup. Puteți obține sintaxa acestuia executând următoarea comandă:
Get-Command New-ADGroup –Syntax
Cel mai simplu mod de a crea un grup este să executați acest scurt script:
New-ADGroup "Group Name"
Sistemul vă va cere să specificați parametrul „GroupScope”, apoi va crea un nou grup. Cu toate acestea, acest grup va avea valori implicite, cum ar fi:
- Va fi creat în containerul LDAP implicit numit „Users”.
- Va avea tipul de grup „Security”.
- Câmpurile „members”, „member of”, „description”, „email” și „notes” vor fi toate goale.
Să ne imaginăm că dorim să creăm un grup de securitate numit „Quality” pe AD DC-ul nostru. Să folosim următorii parametri: Acesta ar trebui să fie în OU „Production” (-Path), ar trebui să fie un grup de securitate (-GroupCategory) și ar trebui să fie global (-GroupScope).
New-ADGroup "Quality" -Path "OU=Production,DC=enterprise,dc=com" -GroupCategory Security -GroupScope Global -PassThru –Verbose
Dacă doriți să creați un grup de distribuție universal, schimbați pur și simplu parametrul -GroupCategory în „Distribution” și parametrul -GroupScope în „Universal”. De asemenea, puteți schimba calea LDAP modificând parametrul -Path.
Deleting an Active Directory Group with PowerShell
Pentru a șterge un grup AD, utilizați cmdlet Remove-ADGroup. Cel mai simplu script pentru aceasta va arăta astfel:
Remove-ADGroup -Identity Quality
Vă va fi solicitat să confirmați ștergerea grupului.
Adăugarea de utilizatori și computere la un grup cu PowerShell
Puteți adăuga utilizatori la un grup AD cu cmdlet Add-AdGroupMember. De exemplu, dacă ați avea nevoie să adăugați doi utilizatori, B.Jackson și E.Franklin, la grupul „Quality”, iată cum ar arăta scriptul:
Add-AdGroupMember -Identity Quality -Members B.Jackson, E.Franklin
După ce ați adăugat utilizatorii la un grup de securitate, puteți rula scriptul de mai jos pentru a verifica dacă aceștia sunt listați ca membri:
Get-ADGroupMember -Identity Quality
Dacă trebuie să adăugați utilizatori la un alt grup de securitate sau de distribuție, cum ar fi „Domain Admins”, specificați „Domain Admins” ca valoare pentru parametrul -Identity. Dacă aveți nevoie ca un grup să fie membru al altui grup, specificați un nume de grup ca valoare pentru parametrul -Members. Același principiu se aplică și în cazul conturilor de calculator, dar va trebui să adăugați un semn de dolar ($) la sfârșitul numelui contului de calculator. De exemplu, pentru a adăuga computerul „WKS043” la un grup, specificați „WKS043$” ca valoare pentru parametrul -Membri:
Add-AdGroupMember -Identity Quality -Members WKS043$
Adăugarea unui utilizator la mai multe grupuri
Pentru a adăuga un utilizator la mai multe grupuri deodată, rulați următorul script.
Vă va fi solicitat să introduceți numele de utilizator.
Adaugarea de utilizatori la un grup dintr-un fișier CSV
Dacă doriți să adăugați un număr mare de utilizatori la un grup, îi puteți specifica într-un fișier CSV și apoi să importați acel fișier. Rețineți că lista de nume de utilizatori din fișierul CSV trebuie să conțină SamAccountNames în coloana „users”, așa cum se arată mai jos:
Pentru a adăuga utilizatori la grup dintr-un fișier CSV, rulați următorul script PowerShell:
Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity "Quality" -members $_.users}
Copierea utilizatorilor dintr-un grup în altul
Dacă doriți să copiați toți membrii dintr-un grup în alt grup, rulați următorul script:
Copierea utilizatorilor dintr-un grup în alt grup:
Get-ADGroupMember "Quality" | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity "QualityControl" -Members $_}
Îndepărtarea utilizatorilor sau a calculatoarelor dintr-un grup
Pentru a elimina un utilizator dintr-un grup, utilizați cmdlet-ul Remove-ADGroupMember:
Remove-ADGroupMember -Identity Quality -Members J.Robinson
Pentru a elimina un cont de calculator dintr-un grup, specificați numele calculatorului cu un semn de dolar ($) la sfârșit pentru valoarea parametrului -Members.
Îndepărtarea mai multor conturi de utilizator dintr-un grup
O modalitate ușoară de a elimina mai mulți utilizatori dintr-un grup AD este de a crea un fișier CSV cu lista de nume de utilizator și apoi de a elimina acei utilizatori din obiectul de grup folosind acest script:
Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity "Quality" -members $_.users}
Îndepărtarea unui utilizator din toate grupurile
Pentru a elimina un utilizator din toate grupurile, rulați acest script:
Get-ADUser -Identity E.Franklin -Properties MemberOf | ForEach-Object { $_.MemberOf | Remove-ADGroupMember -Members $_.DistinguishedName -Confirm:$false}
Rețineți că utilizatorul va pierde toată apartenența la grup, cu excepția grupului „Domain Users”, care poate fi eliminat manual, dacă este necesar.
Reporting on Active Directory Groups
Acum că știm cum să efectuăm multe sarcini comune de gestionare a Active Directory legate de grupuri folosind PowerShell, să vedem cum să raportăm ce grupuri există în AD:
Pentru a enumera toate grupurile din AD, utilizați scriptul de mai jos:
Get-ADGroup -filter * -properties GroupCategory | ft name,groupcategory
Desigur, veți dori, de asemenea, să analizați membrii grupului AD și modificările aduse membrilor grupului AD. Aici sunt linkuri către instrucțiuni pentru efectuarea acestor sarcini mai complexe:
- Cum se monitorizează modificările apartenenței grupurilor din Active Directory
- Cum se obțin rapoarte privind apartenența grupurilor de utilizatori AD
- Cum se exportă membrii unui anumit grup AD
- Managementul OU-urilor și mutarea obiectelor acestora cu PowerShell
Concluzie
Acum ați învățat cum să gestionați grupurile și apartenența la grupuri în Active Directory folosind scripturi PowerShell, încercați să efectuați singuri o parte din sarcinile de gestionare a grupurilor. Cu toate acestea, fiți atenți și nu uitați să activați caracteristica Recycle Bin din Active Directory, astfel încât să puteți anula cu ușurință modificările dacă ceva nu merge bine. Nu uitați, snap-in-ul ADUC MMC este excelent pentru gestionarea grupurilor și a apartenenței la grupuri, dar PowerShell este mult mai bun pentru gestionarea grupurilor în bloc.