Ce face Get-Service
Get-Service întoarce câte un obiect ServiceController pentru fiecare serviciu Windows. Cmdlet-ul există doar pe Windows: în PowerShell 7 pe Linux sau macOS nu este disponibil (acolo folosești systemctl sau launchctl). Fiecare serviciu are un nume scurt (Name, de exemplu Spooler) și un nume afișat (DisplayName, de exemplu Print Spooler); ambii parametri acceptă wildcard-uri.
Tabelul implicit are coloanele Status, Name și DisplayName. Status este o enumerare în care Stopped are valoarea 1 și Running valoarea 4, de aceea Sort-Object Status pune întâi serviciile oprite. Din PowerShell 6.0 obiectele au și proprietățile UserName, Description, DelayedAutoStart, BinaryPathName și StartupType.
Tot din PowerShell 6.0 a dispărut parametrul -ComputerName (în Windows PowerShell 5.1 încă există); pentru un server folosești Invoke-Command. Pentru citire nu ai nevoie de drepturi de administrator, dar vezi doar serviciile pe care contul tău are voie să le vadă. Alias: gsv.
Parametri
| Parametru | Descriere |
|---|---|
-Name |
Numele scurte ale serviciilor (alias -ServiceName); acceptă wildcard-uri și valori din pipeline. |
-DisplayName |
Numele afișate ale serviciilor; acceptă wildcard-uri (*network*). |
-Include / -Exclude |
Restrâng rezultatul dat de -Name cu tipare suplimentare. |
-DependentServices |
Întoarce serviciile care depind de serviciul indicat. |
-RequiredServices |
Întoarce serviciile de care are nevoie serviciul indicat. |
-InputObject |
Obiecte ServiceController primite prin pipeline. |
Ce returnează
Obiecte System.ServiceProcess.ServiceController.
Exemple
Exemplul 1: Starea a două servicii
Serviciul de imprimare (Spooler) și cel de sincronizare a orei (W32Time).
Get-Service -Name Spooler, W32Time
Ieșire în terminal
Status Name DisplayName
------ ---- -----------
Running Spooler Print Spooler
Stopped W32Time Windows Time
Exemplul 2: Câte servicii rulează acum
Filtrăm după Status și numărăm rezultatele cu .Count.
(Get-Service | Where-Object Status -EQ 'Running').Count
Ieșire în terminal
112
Exemplul 3: Tipul de pornire și contul unui serviciu
StartupType și UserName există din PowerShell 6.0.
Get-Service -Name Spooler | Format-List -Property Name, Status, StartupType, UserName
Ieșire în terminal
Name : Spooler
Status : Running
StartupType : Automatic
UserName : LocalSystem
Greșeli frecvente
- Cauți serviciul după numele afișat cu
-Name(Get-Service 'Print Spooler'): folosește-DisplayNamesau numele scurtSpooler. - Copiezi un script vechi cu
Get-Service -ComputerName SRV01în PowerShell 7: parametrul nu mai există; scrieInvoke-Command -ComputerName SRV01 { Get-Service }. - Rulezi scriptul pe Linux sau macOS:
Get-Servicenu există acolo, iar comanda dă eroare că nu e recunoscută. - Compari
Statuscu numere sau sortezi alfabetic și te miri de ordine: e o enumerare; compară cu numele stării, de exempluStatus -EQ 'Running'.
Comenzi înrudite
Start-Service / Stop-Service: Pornesc, opresc și repornesc servicii Windows; cer o sesiune PowerShell deschisă ca administrator.Get-Process: Afișează procesele care rulează pe computerul local, cu memoria folosită, timpul de procesor și ID-ul (PID) fiecăruia.Where-Object: Filtrează obiectele din pipeline și le lasă să treacă doar pe cele care îndeplinesc o condiție.Invoke-Command: Rulează comenzi sau scripturi pe unul sau mai multe computere deodată și aduce înapoi rezultatele, inclusiv erorile.