Można to również zrobić za pomocą wiersza polecenia z podwyższonym poziomem uprawnień za pomocą sc
polecenia. Składnia jest następująca:
sc config [service name] depend= <Dependencies(separated by / (forward slash))>
Uwaga : po znaku równości jest spacja , a przed nią nie ma spacji .
Ostrzeżenie : depend=
parametr zastąpi istniejącą listę zależności, a nie dołączy. Na przykład, jeśli ServiceA już zależy od ServiceB i ServiceC, jeśli uruchomisz depend= ServiceD
, ServiceA będzie teraz zależeć tylko od ServiceD. (Dzięki Matt !)
Przykłady
Zależność od jednej innej usługi:
sc config ServiceA depend= ServiceB
Powyżej oznacza, że ServiceA nie uruchomi się, dopóki nie uruchomi się ServiceB. Jeśli zatrzymasz ServiceB, ServiceA zatrzyma się automatycznie.
Zależność od wielu innych usług:
sc config ServiceA depend= ServiceB/ServiceC/ServiceD/"Service Name With Spaces"
Powyżej oznacza, że ServiceA nie uruchomi się, dopóki nie uruchomią się ServiceB, ServiceC i ServiceD. W przypadku zatrzymania któregokolwiek z ServiceB, ServiceC lub ServiceD, ServiceA zatrzyma się automatycznie.
Aby usunąć wszystkie zależności:
sc config ServiceA depend= /
Aby wyświetlić bieżące zależności:
sc qc ServiceA
sc qc [service name]
poleceniasc.exe
przeciwnym razie pojawi się błąd: „Nie można znaleźć parametru pozycyjnego, który akceptuje argument”Możesz dodać zależności usługi, dodając wartość „DependOnService” do usługi w rejestrze za pomocą
regedit
polecenia, usługi można znaleźć podHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<Service name>
. Szczegóły można znaleźć w artykule MS KB 193888 , z którego poniżej znajduje się fragment:źródło
Szukałem metody czysto PowerShell (bez regedit lub sc.exe), która może działać na 2008R2 / Win7 i nowszych, i wymyśliłem:
Łatwo jest zrobić regedit z PowerShell:
Lub za pomocą WMI:
Zmień metoda klasy Win32_Service pomógł punkt do rozwiązania:
źródło
Napisałem prostą aplikację .net do zarządzania zależnościami serwisowymi, jeśli jesteś zainteresowany. Jest wolne.
http://webpages.charter.net/bushman4/servicedependencymanager.html
źródło
W C ++ (ATL) podobało mi się to
źródło