-{{tag>windows sysadmin services}} :TODO_DOCUPDATE: ====== Contrôle des services ====== Commandes de gestion des services sous Windows. * [[https://stackoverflow.com/questions/33929255/what-is-the-difference-between-starting-a-windows-service-from-c-using-startse/33971670#33971670|Description du mode de démarrage des services (stackoverflow.com)]] ===== Lister les services ===== La commande **net** avec l'argument **start** permet de lister les services en cours d’exécution: > net start La commande **sc** est beaucoup plus complète, il est possible notamment de lister les services même inactifs: > sc query type= service state= all > sc query type= service state= inactive Via PowerShell les commandes avec le substantif "Service" permettent de gérer les services: # Lister les services en cours d'execution triés par nom Get-Service | Where-Object {$_.Status -eq "Running"} | Sort-Object Name ===== infos sur un service ===== > sc qc mon_service ===== Arrêter un service ===== Pour arrêter un service en cours d’exécution ou pourra utiliser indifféremment **net** ou **sc**: > net stop "mon service" > sc stop "mon service" ===== Power Shell ===== Sous Power Shell, les commandes **get-service**, **start-service**, **stop-service**, **restart-service** sont disponibles: Pour lister les services et leur statut: PS> get-service ===== Listing nom de services ===== ^ nom ^ Description | | appmgmt | service ajout/suppression de programmes. | | mpssvc | Pare-feu Windows | ===== Arguments ===== * [[https://stackoverflow.com/questions/7190480/modifying-the-path-to-executable-of-a-windows-service|Modifier l'attribut binpath du service (stackoverflow.com)]]. * [[https://stackoverflow.com/questions/42812333/pass-an-argument-to-a-windows-service-at-automatic-startup|Passer des arguments aux services (stackoverflow.com)]]. La commande **sc** propose l' argument **binPath** pour spécifier le binaire et les arguments transmis au service lors du démarrage : sc config binPath= Dans la base de registre la valeur correspond est **ImagePath**, elle peut être modifiée via l'éditeur de registre: * Déployer ''Ordinateur\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services'' ; * Déployer la clé correspondant au service cible ; * Sélectionner la valeur **ImagePath** et modifier son contenu. La modification du registre peut également se faire via PowerShell : Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\aService" -Name ImagePath -Value "C:\Program Files (x86)\aService\NewName.exe -anArg=aValue" Modifier Get-CimInstance win32_service -Filter "Name='My Service'" | Invoke-CimMethod -MethodName Change -Arguments @{PathName="C:\Program Files\My Service\NewName.exe"} ===== Références ===== * http://www.zebulon.fr/dossiers/31-2-services.html * https://www.ntweekly.com/2015/11/16/how-to-restart-wsus-service-using-powershell/