Cela peut également être fait via une invite de commande élevée à l'aide de la sc
commande. La syntaxe est la suivante:
sc config [service name] depend= <Dependencies(separated by / (forward slash))>
Remarque : il y a un espace après le signe égal et il n'y en a pas avant.
Attention : le depend=
paramètre écrasera la liste des dépendances existantes et ne l'ajoutera pas. Ainsi, par exemple, si ServiceA dépend déjà de ServiceB et ServiceC, si vous exécutez depend= ServiceD
, ServiceA ne dépendra plus que de ServiceD. (Merci Matt !)
Exemples
Dépendance à un autre service:
sc config ServiceA depend= ServiceB
Ci-dessus signifie que ServiceA ne démarrera pas tant que ServiceB n'aura pas démarré. Si vous arrêtez ServiceB, ServiceA s’arrêtera automatiquement.
Dépendance sur plusieurs autres services:
sc config ServiceA depend= ServiceB/ServiceC/ServiceD/"Service Name With Spaces"
Ci-dessus signifie que ServiceA ne démarrera pas tant que ServiceB, ServiceC et ServiceD n'ont pas démarré. Si vous arrêtez ServiceB, ServiceC ou ServiceD, ServiceA s'arrête automatiquement.
Pour supprimer toutes les dépendances:
sc config ServiceA depend= /
Pour lister les dépendances actuelles:
sc qc ServiceA
sc qc [service name]
commandesc.exe
sinon vous obtiendrez une erreur: "Un paramètre de position qui accepte les arguments ne peut pas être trouvé"Vous pouvez ajouter des dépendances de service en ajoutant la valeur "DependOnService" au service dans le registre à l'aide de la
regedit
commande, les services se trouvent sousHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<Service name>
. Les détails se trouvent dans l' article 193888 de la base de connaissances , dont voici un extrait:la source
Je recherchais une méthode purement PowerShell (pas de regedit ni de sc.exe) pouvant fonctionner sur les versions 2008R2 / Win7 et supérieures, et voici ce qui a été donné:
Le plus simple est de faire le regedit avec PowerShell:
Ou, en utilisant WMI:
La méthode Change de la classe Win32_Service a permis de pointer vers une solution:
la source
J'ai écrit une simple application .net pour gérer les dépendances de service, si cela vous intéresse. C'est gratuit.
http://webpages.charter.net/bushman4/servicedependencymanager.html
la source
En C ++ (ATL) j'ai fait comme ça
la source