Active Directory furnizeaza servicii de autentificare si de autorizare. Un mediu Active Directory optim mentine toate celelalte servicii functionale.
In tutorialul de azi vom explica de ce este necesar sa reporniti controlorii de domeniu o data pe luna si cum puteti utiliza scriptul PowerShell furnizat in acest tutorial pentru a colecta informatii despre uptime-ul controlorilor de domeniu.
Este important sa intelegeti ca, deoarece controlerele de domeniu functioneaza tot timpul, iar rolul lor este de a furniza servicii critice de autentificare si de autorizare, acestia trebuie sa fie repornite o data pe luna sau pe baza ferestrei de intretinere pe care ati inclus-o in standardul de sanatate al serviciilor.
Inainte de a incepe sa explicam scriptul PowerShell trebuie sa explicam de ce este necesar sa reporniti controlerele de domeniu. Mai jos am enumerat doua motive importante de care ar trebui sa tineti cont atunci cand decideti daca sa reporniti controlerele de domeniu sau nu:
• Scurgere de memorie: S-ar putea sa apara scurgeri de memorie in procesul Lsass.exe. Procesul Lsass.exe ruleaza pe controlere de domeniu si este responsabil pentru furnizarea de servicii de autentificare pentru Active Directory.
In timp, scurgerile de memorie pot afecta performanta controlerelor de domeniu. O scurgere de memorie mare ar putea avea ca rezultat timpi de raspuns inacceptabili si utilizari de memorie ridicate din sistemul de operare. Pentru a remedia aceasta problema este recomandat sa reporniti periodic controlerele de domeniu afectate.
Desi noile versiuni de Windows, cum ar fi Server 2012 R2 si Windows Server 2016, au fost concepute pentru a rezolva automat problemele de memorie pierduta este totusi recomandat sa reporniti controlerele de domeniu afectate. Repornirea acestora ar putea remedia si problemele legate de scurgerile de memorie pe care sistemul nu le poate rezolva.
• Majoritatea actualizarilor de securitate necesita o repornire: Este important sa retineti ca un computer Windows server si controlerele de domeniu necesita patch-uri periodice pentru a asigura ca pachetele de servicii, remedierile si nivelurile de patch-uri de securitate sunt compatibile pentru toate controlerele de domeniu.
Deoarece patch-urile de securitate inlocuiesc fisiere DLL din sistemul de operare, majoritatea actualizarilor de securitate necesita o repornire inainte ca patch-urile de securitate sa poata fi aplicate cu succes. Trebuie retinut ca Microsoft furnizeaza patch-uri de securitate in fiecare luna, deci devine imperativ sa reporniti lunar controlerele de domeniu pentru a le aplica.
Mai jos este prezentat un script PowerShell pe care il puteti folosi pentru a colecta informatii despre timpul de functionare a controlerelor de domeniu. Acest script va poate ajuta sa identificati numarul de zile de la ultima repornire pentru fiecare controler de domeniu.
Primul pas:
Modificati numele ITDynamicPacks.Net in numele Active Directory-ului.
Obtineti o lista a tuturor controlerelor de domeniu executand comanda de mai jos si stocand iesirea in fisierul C: \ Temp \ DCList.TXT:
Serverul DSQuery -o rdn > C: \ Temp \ DCList.TXT
Copiati script-ul de mai jos intr-un fisier .PS1 si executati-l din fereastra PowerShell.
$ CurForestName = “ITDynamicPacks.Net”
$ TestCSVFile = “C: \ Temp \ DCUpTimeReport.CSV”
$ GDCList = “C: \ Temp \ DCList.TXT”
$ TotNo = 0
$ ItemCount = 0
$ TestText = “Verificati rezultatul”
$ TestStatus = “Finalizat”
$ SumVal = “NA”
$ ErrorOrNot = “Nu”
$ ThisString = “Controler de domeniu, Ora in sus, Ora locala, Fus orar, Zile nu se reporneste, Stare”
Adaugati-Continutul “$ TestCSVFile ” $ ThisString
$ TodaysDate = Obtineti data
Foreach ($ ItemName in Get-Content “$ GDCList “)
{
$ operatingSystem = Obtineti- WmiObject Win32_OperatingSystem – ComputerName $ ItemName
DACA ($ Error.count -ne 0)
{
$ ThisSTR = $ NumeNumar + ” , Eroare Conectarea”
$ ErrorOrNot = “Da”
Adaugati-Continutul “$ TestCSVFile ” $ ThisStr
}
altfel
{
$ RTime = [ Management.ManagementDateTimeConverter] :: Programul ToDateTime ($ operatingSystem.LastBootUpTime)
$ LocalTime = [ Management.ManagementDateTimeConverter] :: ToDateTime ($ operatingSystem.LocalDateTime)
$ CurTimeZone = $ operatingSystem.CurrentTimeZone
$ StatusNow = “”
$ R = $ RTime
$ Z = $ TodaysDate
$ DayNotRebooted = (New- $ R -Start Durata de timp Sfarsitul $ Z) .Days
DACA ($ DayNotRebooted – ge 30)
{
$ StatusNow = “AVERTISMENT: Nu a fost repornit din ultimele 30 de zile”
}
$ ThisStr = $ ITEMNAME + ” “+ $ RTime +”, “+ $ LOCALTIME +”, “+ $ CurTimeZone +”, “+ $ DayNotRebooted +”,” + $ StatusNow
Adaugati-Continutul “$ TestCSVFile ” $ ThisStr
}
}
Odata ce scriptul a fost executat pentru toate controlerele de domeniu, un raport va fi generat in fisierul DCUpTimeReport.CSV din folderul C: \ Temp:
Dupa cum puteti vedea in raport, scriptul colecteaza timpul de functionare pentru fiecare controler de domeniu specificat in fisierul C: \ Temp \ DCList.TXT si raporteaza cate zile au trecut de cand fiecare controler de domeniu nu a fost repornit (in coloana “Days Not Rebooted “).
Scriptul de mai sus face parte din pachetul “Dynamic Pack Controllers Up-Time Test” si poate fi utilizat cu profilul de sanatate Active Directory. “Dynamic Controller Up-Time Test” poate fi executat pentru un singur sau mai multe grupuri de obiecte Active Directory si puteti vedea rezultatul in consola Active Directory Health Profiler.
Concluzie
Am detaliat doua motive-cheie pentru repornirea controlerelor de domeniu. Scopul repornirii controlerelor de domeniu este de a asigura o functionare optima si de a permite controlerelor de domeniu sa furnizeze cereri de autentificare si de autorizare in timp util si, de asemenea, sa asigure ca acestea sunt actualizate si folosesc cele mai recente patch-uri de securitate.
Scriptul PowerShell va va ajuta sa va mentineti sanatatea controlerelor de domeniu asigurandu-va ca fiecare controler de domeniu a fost repornit o data pe luna si ca urmati periodic procesele de intretinere.