Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

créer des dependances entre services W2K??

1 réponse
Avatar
darflag
bonjour à tous,

je souhaite créer des depandance entre differents services c'est a dire

une fois que le service sql server est lancé, qu'il lance automatiquement un
autre service

est ce possible et comment??

merci de votre aide

1 réponse

Avatar
Jean-Claude BELLAMY
Dans le message :ec21l0$45a$,
darflag a pris la peine d'écrire ce qui suit :
bonjour à tous,

je souhaite créer des depandance entre differents services c'est a
dire
une fois que le service sql server est lancé, qu'il lance
automatiquement un autre service

est ce possible et comment??
Possible ?

-> OUI !
Évident ?
-> euhhh.....


Les dépendances entre services sont définies dans la BDR, à savoir dans les
entrées :
HKLMSYSTEMCurrentControlSetServices<nom-du-service>DependOnService

Mais cela ne sert pas à faire des "enchainements" de lancements services,
mais permet seulement au système de vérifier si un service peut ou non être
lancé.
P.ex. le service "Browser" (exploration du réseau) dépend des 2 services
"LanmanWorkstation" et "LanmanServer".
Si au moins l'un de ces 2 services n'est pas démarré, le service browser ne
pourra pas démarrer lui non plus et un message d'erreur sera affiché (ou
consigné dans un journal d'événements)


L'ordre de démarrage des services (pour ceux qui ont besoin de respecter un
enchainement donné) est défini de plusieurs façons :

1) Ordre de lancement des groupes de services :
HKLMSYSTEMCurrentControlSetControlServiceGroupOrderlist
Je rappelle que le "groupe" (facultatif) auquel appartient un service
est défini dans l'entrée :
HKLMSYSTEMCurrentControlSetServices<nom-du-service>Group
P.ex., les 2 services "CDFS" et "NTFS" appartiennent
tous les 2 au même groupe "File system"

2) Ordre de lancement des services d'un même groupe :
HKLMSYSTEMCurrentControlSetControlGroupOrderList<nom-de-groupe>
Chaque service appartenant à un groupe a une entrée :
HKLMSYSTEMCurrentControlSetServices<nom-du-service>tag
qui est une valeur numérique donnant l'ordre de lancement du service
dans le groupe, par ordre croissant de la valeur de tag.

Le contenu (REG_BINARY) de ...GroupOrderList<nom-de-groupe>
est une synthèse de tous ces tags (j'ignore l'algorithme de
correspondance)


http://www.bellamyjc.org/fr/windowsnt.html#serviceBDR

Ces paramètres sont définis en principe par programmation, à l'aide des
fonctions
"CreateService" et "ChangeServiceConfig" :
SC_HANDLE CreateService(
SC_HANDLE hSCManager,
LPCTSTR lpServiceName,
LPCTSTR lpDisplayName,
DWORD dwDesiredAccess,
DWORD dwServiceType,
DWORD dwStartType,
DWORD dwErrorControl,
LPCTSTR lpBinaryPathName,
LPCTSTR lpLoadOrderGroup,
LPDWORD lpdwTagId,
LPCTSTR lpDependencies,
LPCTSTR lpServiceStartName,
LPCTSTR lpPassword
);

BOOL ChangeServiceConfig(
SC_HANDLE hService,
DWORD dwServiceType,
DWORD dwStartType,
DWORD dwErrorControl,
LPCTSTR lpBinaryPathName,
LPCTSTR lpLoadOrderGroup,
LPDWORD lpdwTagId,
LPCTSTR lpDependencies,
LPCTSTR lpServiceStartName,
LPCTSTR lpPassword,
LPCTSTR lpDisplayName
);


On peut aussi faire appel à WMI, à l'aide des classes :

Win32_BaseService
http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_baseservice.asp
(nombreuses méthodes disponibles, dont "change")
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/change_method_in_class_win32_baseservice.asp
uint32 Change(
string DisplayName,
string PathName,
uint8 ServiceType,
uint8 ErrorControl,
string StartMode,
boolean DesktopInteract,
string StartName,
string StartPassword,
string LoadOrderGroup,
string LoadOrderGroupDependencies[],
string ServiceDependencies[]
);

Win32_LoadOrderGroup
http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_loadordergroup.asp
(aucune méthode, et propriétés en lecture seule uniquement)

Win32_Service
http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_service.asp

Win32_SystemDriver
http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_systemdriver.asp




--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr