Il existe huit applets de commande Service principales, conçues pour une large gamme de tâches liées aux services. Nous ne nous intéresserons qu'au listage et à la modification de l'état d'exécution des services, mais vous pouvez obtenir la liste des applets de commande Service en utilisant Get-Help *-Service et rechercher des informations sur chacune d'elles en tapant Get-Help <Nom de l'applet de commande>, par exemple Get-Help New-Service.

Obtention de services

Vous pouvez obtenir les services disponibles sur un ordinateur local ou distant en utilisant l'applet de commande Get-Service. Comme avec Get-Process, l'utilisation de la commande Get-Service sans paramètres retourne tous les services. Vous pouvez filtrer par nom, même en utilisant un astérisque en tant que caractère générique :

PS> Get-Service -Name se*
Status   Name               DisplayName
------   ----               -----------
Running  seclogon           Secondary Logon
Running  SENS               System Event Notification
Stopped  ServiceLayer       ServiceLayer

Étant donné que le véritable nom des services n'est pas toujours évident, vous pouvez être amené à rechercher des services par leur nom d'affichage. Pour ce faire, vous pouvez utiliser le nom spécifique, des caractères génériques ou une liste de noms d'affichage :

PS> Get-Service -DisplayName se*
Status   Name               DisplayName
------   ----               -----------
Running  lanmanserver       Server
Running  SamSs              Security Accounts Manager
Running  seclogon           Secondary Logon
Stopped  ServiceLayer       ServiceLayer
Running  wscsvc             Security Center
PS> Get-Service -DisplayName ServiceLayer,Server
Status   Name               DisplayName
------   ----               -----------
Running  lanmanserver       Server
Stopped  ServiceLayer       ServiceLayer

Vous pouvez utiliser le paramètre ComputerName de l'applet de commande Get-Service pour obtenir les services s'exécutant sur des ordinateurs distants. Le paramètre ComputerName acceptant plusieurs valeurs et caractères génériques, vous pouvez obtenir les services sur plusieurs ordinateurs avec une seule commande. Par exemple, la commande suivante obtient les services sur l'ordinateur distant Server01.

Get-Service -ComputerName Server01

Obtention de services obligatoires et dépendants

L'applet de commande Get-Service a deux paramètres qui sont très utiles pour l'administration des services. Le paramètre DependentServices obtient les services qui dépendent du service. Le paramètre RequiredServices obtient les services dont ce service dépend.

Ces paramètres affichent uniquement les valeurs des propriétés DependentServices et ServicesDependedOn (alias=RequiredServices) de l'objet System.ServiceProcess.ServiceController retourné par Get-Service, mais ils simplifient les commandes et facilitent grandement l'obtention de ces informations.

La commande suivante obtient les services requis par le service LanmanWorkstation.

PS> Get-Service -Name LanmanWorkstation -RequiredServices
Status   Name               DisplayName
------   ----               -----------
Running  MRxSmb20           SMB 2.0 MiniRedirector
Running  bowser             Bowser
Running  MRxSmb10           SMB 1.x MiniRedirector
Running  NSI                Network Store Interface Service

La commande suivante obtient les services requiérant le service LanmanWorkstation.

PS> Get-Service -Name LanmanWorkstation -DependentServices
Status   Name               DisplayName
------   ----               -----------
Running  SessionEnv         Terminal Services Configuration
Running  Netlogon           Netlogon
Stopped  Browser            Computer Browser
Running  BITS               Background Intelligent Transfer Ser...

Vous pouvez même obtenir tous les services qui ont des dépendances. La commande suivante fait uniquement cela, puis utilise l'applet de commande Format-Table pour afficher les propriétés Status, Name, RequiredServices et DependentServices des services sur l'ordinateur.

Get-Service -Name * | where {$_.RequiredServices -or $_.DependentServices} | Format-Table -Property Status, Name, RequiredServices, DependentServices -auto

Arrêt, démarrage, interruption et redémarrage de services

Les applets de commande Service ont toutes la même forme générale. Les services peuvent être spécifiés par leur nom commun ou leur nom d'affichage et utilisent des listes et des caractères génériques comme valeurs. Pour arrêter le spouleur d'impression, utilisez :

Stop-Service -Name spooler

Pour démarrer le spouleur d'impression après qu'il a été arrêté, utilisez :

Start-Service -Name spooler

Pour interrompre (suspendre) le spouleur d'impression, utilisez :

Suspend-Service -Name spooler

L'applet de commande Restart-Service fonctionne de la même manière que les autres applets de commande Service, mais nous proposerons pour celle-ci quelques exemples plus complexes. Dans son utilisation la plus simple, vous spécifiez le nom du service :

PS> Restart-Service -Name spooler
WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...
WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...
PS>

Notez l'affichage répété du message d'avertissement relatif au démarrage du spouleur d'impression. Lorsque vous exécutez une opération de service qui prend du temps, Windows PowerShell vous informe qu'il essaie toujours d'effectuer la tâche.

Si vous souhaitez redémarrer plusieurs services, vous pouvez obtenir une liste de services, les filtrer, puis exécuter le redémarrage :

PS> Get-Service | Where-Object -FilterScript {$_.CanStop} | Restart-Service
WARNING: Waiting for service 'Computer Browser (Browser)' to finish stopping...
WARNING: Waiting for service 'Computer Browser (Browser)' to finish stopping...
Restart-Service : Cannot stop service 'Logical Disk Manager (dmserver)' because
 it has dependent services. It can only be stopped if the Force flag is set.
At line:1 char:57
+ Get-Service | Where-Object -FilterScript {$_.CanStop} | Restart-Service <<<<
WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...
WARNING: Waiting for service 'Print Spooler (Spooler)' to finish starting...

Ces applets de commande Service n'ont pas de paramètre ComputerName, mais vous pouvez les exécuter sur un ordinateur distant à l'aide de l'applet de commande Invoke-Command. Par exemple, la commande suivante redémarre le service Spooler sur l'ordinateur distant Server01.

Invoke-Command -ComputerName Server01 {Restart-Service Spooler}

Définition des propriétés de service

L'applet de commande Set-Service modifie les propriétés d'un service sur un ordinateur local ou distant. Étant donné que l'état du service est une propriété, vous pouvez utiliser cette applet de commande pour démarrer, arrêter et suspendre un service. L'applet de commande Set-Service dispose également d'un paramètre StartupType qui vous permet de modifier le type de démarrage du service.

Pour utiliser Set-Service sous Windows Vista et les versions ultérieures de Windows, ouvrez Windows PowerShell avec l'option « Exécuter en tant qu'administrateur ».

Pour plus d'informations, consultez Set-Service.

Voir aussi




Table des matières