Exista mai mult de 600 de cmdlet-uri PowerShell care vin la pachet cu module ActiveSide PowerShell. Puteti utiliza aceste cmdlet-uri pentru a interoga informatii din domenile Active Directory.

 

Una dintre sarcinile pe care un administrator Active Directory le indeplineste in mod continuu este asigurarea ca numarul membrilor grupurilor critice de securitate ramane neschimbat si nu exista utilizatori nedoriti care sa fie adaugati grupurilor critice. De exemplu, grupurile critice de securitate, cum ar fi administratorii de domeniu, operatorii de rezerva, administratorii, operatorii de cont, administratorii schemelor si administratorii de intreprinderi, vor avea intotdeauna o lista de utilizatori aprobati.

Pentru a evita potentialele riscuri si probleme in mediul Active Directory, utilizatorii neaprobati nu ar trebui sa faca parte din aceste grupuri de securitate. De exemplu, oricine este membru al Domain Admins va avea control complet asupra domeniului si va putea sa efectueze orice actiuni nedorite care ar putea duce la functionarea instabila a Active Directory.

In tutorialul de servere de astazi, vom oferi un script PowerShell care va poate ajuta sa gestionati numararea grupurilor critice de securitate. Acest script utilizeaza cmdlet-ul Get-ADGroupMemberPowerShell, care este disponibil in mod implicit pe un controller de domeniu si pe orice server membru care are module Active Directory PowerShell instalate.

Cu toate acestea, inainte executat scriptul, pregatiti mediul dvs. AD si locatia de script, urmand acesti pasi:

 

Mai intai, creati un fisier in dosarul C: \ Temp si listati fiecare grup de securitate critic unul cate unul pe rand. In scopul testarii, am creat un fisier numit : C:\Temp\DomainAdminGRP.DPC.

Asigurati-va ca ati listat in fisier numele grupurillor de securitate de Administratori de domenii, operatori de rezerva, administratori, operatori de cont, administratori de scheme si administrator enterprise. Fisierul rezultat ar trebui sa arate ca in imaginea de mai jos:

 

Acum, instalati modulele Active Directory PowerShell pe un server membru utilizand Managerul de Server.

Modificati variabila $ CurForestName pentru a include numele “forest” in Active Directory. Actualul nume de domeniu Active Directory folosit in script este “ServerWatch.com”.

Creati un fisier in sectiunea “C: \ Temp \ GDomList.TXT” si specificati numele de domeniu cate unul pe fiecare rand. Retineti ca scriptul se va conecta la fiecare domeniu Active Directory pentru a colecta numarul de membri ai grupului.

De retinut: Deoarece grupurile de securitate “Administratorii schema” si “Administratorii de intreprinderi” sunt localizate in domeniul radacina al Active Directory, scriptul poate identifica grupurile de securitate “Administratorii Enterprise” si “Administratorii schema” si apoi se poate conecta la radacina din domeniul Active Directory pentru a colecta numarul membrilor grupului.

Odata ce ati finalizat pasii de mai sus, puteti executa scriptul PowerShell de mai jos dintr-o fereastra PowerShell active.

>$TestCSVFile = “C:\Temp\GroupMemReport.CSV”

Remove-item $TestCSVFile -ErrorAction SilentlyContinue

$ThisString=”Security Group, Total Members, In AD Domain,Final Status”

Add-Content “$TestCSVFile” $ThisString

$GDomList = “C:\Temp\GDomList.TXT”

$GrpMem=”C:\Temp\DomainAdminGRP.DPC”

$CurForestName = “ServerWatch.com”

 

$TotNo=0

$ItemCount=0

$ErrorOrNot = “No”

$AnyGap = “No”

Foreach ($ItemName in Get-Content “$GrpMem”)

{

IF ($ItemName -eq “”)

{

}

else

{

ForEach ($DomainName in Get-Content $GDomList)

{

IF ($ItemName -eq “Schema Admins” -or $ItemName -eq “Enterprise Admins”)

{

$TotMems = Get-ADGroupMember -Identity “$ItemName” -Server $CurForestName -ErrorAction SilentlyContinue

}

else

{

$TotMems = Get-ADGroupMember -Identity “$ItemName” -Server $DomainName -ErrorAction SilentlyContinue

}

 

$TotNowCount = $TotMems.Count

$FinStatus=”Ok”

IF ($TotNowCount -gt 20)

{

$FinStatus = “Too many members in Administrative Security Group.”

$AnyGap = “Yes”

$TotNo++

}

 

$FinalVal=$ItemName+”,”+$TotNowCount+”,”+$DomainName+”,”+$FinStatus

Add-Content “$TestCSVFile” $FinalVal

}

}

}

IF ($AnyGap -eq “Yes”)

{

$TestText = “Administrative Security Groups contain more than 20 members. It is recommended to keep lesser number of members to avoid any crisis in Active Directory environment. Please remove members those are not required and are no longer active.”

$SumVal =$TotNo

$TestStatus=”High”

}

IF ($AnyGap -eq “No”)

{

$TestText = “Administrative Security Groups contain less than 20 members.”

$SumVal = “”

$TestStatus=”Passed”

}

$TestText

Odata ce scriptul a terminat de executat, ar trebui sa vedeti un raport CSV in folderul C: \ Temp dupa cum se arata in imaginea de mai jos:

 

 

Dupa cum puteti vedea in raportul de mai sus, scriptul a bifat toate grupurile de securitate specificate in C: \ Temp \ DomainGRPCount.DPCfile si a raportat starea fiecarui grup de securitate. Scriptul verifica daca un grup critic de securitate contine mai mult de 20 de membri in el.

Pentru fiecare grup critic care are mai mult de 20 de membri, raportul CSV afiseaza mesajul “Prea multi membri in grupul de securitate administrativa” in coloana “Final Status”. Daca doriti sa modificati valoarea “20” la o valoare aleasa, modificati pur si simplu linia “IF ($ TotNowCount -gt 20)” in scenariu.

 

Acest script face parte din pachetele Dynamic Pack bazate pe PowerShell ce vin impreuna cu Active Directory Health Profiler, pe care le puteti utiliza pentru a efectua o verificare completa a functionalitatii Active Directory. Exista 99 de verificari de status incluse in  Active Directory Health Profiler.

Concluzie

 

Prin utilizarea acestui script ActiveSideShell, veti primi un raport util care va afisa numarul de membri din fiecare grup critic de securitate specificat in fisierul “C: \ Temp \ DomainAdminGRP.DPC”. Puteti programa acest script pe un server membru si il puteti rula zilnic pentru a va ajuta sa monitorizati si sa mentineti numarul de membrii ai grupurilor critice de securitate din Active Directory.

 

LĂSAȚI UN MESAJ

Please enter your comment!
Please enter your name here