Verificarea stării serviciilor pe clienții Windows

PowerShell este un instrument excelent de scripting. Nu numai că vă ajută să economisiți timp, dar oferă și o mai mare flexibilitate pentru a executa sarcini repetate manual sau prin sarcini programate. Aproape toate rolurile și caracteristicile Windows sunt livrate cu cmdlete PowerShell.

Puteți utiliza cmdlete pentru sistemul de operare Windows, disponibile în mod implicit, pentru a efectua sarcini operaționale, cum ar fi verificarea stării unui anumit serviciu Windows pe mai multe computere, verificarea listei de software instalat pe computerele Windows, verificarea și colectarea rolurilor și caracteristicilor instalate pe sistemele de operare Windows Server și multe altele.Windows Server Tutorials

Una dintre sarcinile pe care administratorii Windows le efectuează frecvent este verificarea stării serviciilor critice pe serverele de producție critice, cum ar fi serverele Exchange, serverele SQL și/sau controlorii de domeniu Active Directory.

Chiar dacă puteți utiliza SCCM și instrumente similare pentru a vă oferi un raport privind starea serviciilor dintr-un anumit set de mașini, SCCM necesită ca SCCM Client să funcționeze pe toate computerele țintă înainte ca SCCM să poată raporta starea serviciilor.

Aceasta este situația în care cel mai recent script și tutorialul nostru pentru servere vine la îndemână. Puteți utiliza scriptul PowerShell explicat în acest articol pentru a verifica rapid și ușor starea anumitor servicii pe un singur sau mai multe computere Windows.

Verificarea stării unui singur serviciu

Dacă doriți să verificați starea unui anumit serviciu pe un computer la distanță, ceea ce puteți face este să executați comanda PowerShell de mai jos:

Get-WMIObject -Computer -Query "Select * From Win32_Service WHERE Name Like "%SomeServiceName%"

Executarea comenzii PowerShell de mai sus vă va ajuta să obțineți starea unui anumit serviciu specificat în parametrul „%SomeServiceName%. Această comandă se conectează la un computer de la distanță specificat în parametrul „-Computer”. Probabil că veți dori să modificați atât numele computerului, cât și numele serviciului înainte de a executa comanda de mai sus.

Verificarea stării mai multor servicii

În cazul în care doriți să obțineți o listă a tuturor serviciilor Windows care rulează pe un sistem țintă, executați următoarea comandă PowerShell:

Get-WMIObject Win32_Service -Computer | Where {$_.State -eq "Running"} | FT -Auto

Comanda de mai sus va lista toate serviciile Windows care rulează de pe calculatorul de la distanță specificat în parametrul „-Computer”, iar rezultatul va fi afișat în fereastra PowerShell. Dacă doriți să salvați ieșirea într-un fișier CSV, adăugarea „Export-CSV” va face treaba, așa cum se arată în această comandă:

Get-WMIObject Win32_Service -Computer | Where {$_.State -eq "Running"} | FT -Auto | Export-CSV "C:TempServicesStatus.CSV"

Verificarea stării unui singur serviciu de pe mai multe calculatoare

În timp ce comenzile PowerShell de mai sus vă vor ajuta să obțineți starea unui anumit serviciu sau a mai multor servicii de pe un singur calculator Windows, următorul script PowerShell poate fi utilizat dacă doriți să vedeți starea unui singur serviciu de pe mai multe calculatoare Windows. Tot ce trebuie să faceți este să creați un fișier text care să conțină numele calculatoarelor Windows și să modificați variabila de script „$ServiceNameToCheck” pentru a include serviciul pe care doriți să îl verificați.

$ServiceNameToCheck ="SomeServiceName"
$ReportFile = "C:TempServiceStatus.CSV"
Remove-item $ReportFile -ErrorAction SilentlyContinue
$ThisSTR = "Computer Name, Service Status"
Add-Content $ReportFile $ThisSTR
$CompFile = "C:TempComputers.TXT"

Foreach ($ComputerName in Get-Content "$CompFile")
{
$Error.Clear()
Get-WMIObject -Computer $ComputerName -Query "Select * From Win32_Service WHERE Name Like "%$ServiceNameToCheck% AND {$_.State -eq "Running"}
IF ($Error.Count -ne 0)
{
$ThisSTR = $ComputerName+", Could Not Connect to Remote Computer or Service Not Running"
Add-Content $ReportFile $ThisSTR
}
else
{
$ThisSTR = $ComputerName+", Running"
Add-Content $ReportFile $ThisSTR
}
}
}
Write-Host "Service status was retrieved from the list of computers and the output was saved in $ReportFile"

După ce scriptul PowerShell de mai sus a terminat de executat, va fi creat un fișier de raport numit ServiceStatus.CSV în folderul „C:Temp” care conține starea numelui serviciului specificat în variabila „$ServiceNameToCheck” de la toate computerele menționate în fișierul „C:TempComputers.TXT”.

Rețineți că scriptul verifică pentru a se asigura că comanda a fost executată cu succes înainte de a raporta starea serviciului. Scriptul PowerShell utilizează cmdlet-ul PowerShell „Get-WMIObject” pentru a colecta starea serviciului (serviciilor) specific(e) de pe computerele țintă. În cazul în care Get-WMIObject nu reușește să se conecteze la un computer țintă sau dacă starea serviciului nu este recuperată, acesta va returna în raport mesajul „Could Not Connect to Remote Computer or Service Not Running” (Nu s-a putut conecta la computerul la distanță sau serviciul nu rulează).

Concluzie

Este destul de ușor să obțineți starea unui singur serviciu sau a mai multor servicii de la un singur sau mai multe computere Windows la distanță. Deși există instrumente enterprise disponibile pentru a colecta un inventar de pe computerele Windows, inclusiv starea serviciilor, există și cazuri în care aceste comenzi/scripturi PowerShell sunt foarte utile, în special atunci când trebuie să verificați rapid starea unui anumit serviciu pe mai multe computere Windows.

Nirmal Sharma este MCSEx3, MCITP și Microsoft MVP în Directory Services. El este specializat în servicii de directoare, Microsoft Azure, clustere Failover, Hyper-V, System Center și servere Exchange și este implicat în tehnologiile Microsoft din 1994. În timpul liber, îi place să îi ajute pe ceilalți și să împărtășească o parte din cunoștințele sale scriind sfaturi și articole pe diverse site-uri și contribuind la pachetele de sănătate pentru soluțiile ADHealthProf.ITDynamicPacks.Net. Nirmal poate fi contactat la .

Follow ServerWatch pe Twitter și pe Facebook

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.