Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1122 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] Vérifier qu'un service est démarré en VBS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Vérifier qu'un service est démarré en VBS

n°1753868
proutix
Posté le 01-07-2008 à 10:25:28  profilanswer
 

Bonjour,
 
Je voudrais en VBS savoir si un service (WZCSVC) est démarré ou non.
Je sais récupérer l'information si le service est en "automatique"/"manuel" mais impossible de savoir si il est
actif....
 
Merci de votre aide


Message édité par proutix le 01-07-2008 à 15:28:01
mood
Publicité
Posté le 01-07-2008 à 10:25:28  profilanswer
 

n°1753897
ccp6128
Syntax error
Posté le 01-07-2008 à 11:16:19  profilanswer
 

Tu peux le récupérer dans la liste des process actifs :
 

Code :
  1. Dim svc
  2. Dim sQuery
  3. Dim oproc
  4. Set svc = GetObject("winmgmts:root\cimv2" )
  5. sQuery = "select * from win32_process where Name='firefox.exe'"
  6. For Each oproc In svc.execquery(sQuery)
  7.       MsgBox oproc.Name
  8. Next
  9. Set svc = Nothing


 
Il n'y aura aucun oproc si le process n'existe pas, sinon autant qu'il y a d'instances de ton process.

n°1754010
proutix
Posté le 01-07-2008 à 15:13:22  profilanswer
 

Merci mais étant donné que WZCSVC n'est pas un process "normal", il est instancié par "C:\WINDOWS\System32\svchost.exe -k netsvcs"
Il faudrait donc avoir les détails des svhost.exe, les dépendances etc...

n°1754015
ccp6128
Syntax error
Posté le 01-07-2008 à 15:22:42  profilanswer
 

C'est vrai. Du coup j'ai lu un peu de doc, voici la solution :
 

Code :
  1. strComputer = "."
  2. Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=Impersonate}!\\" & strComputer & "\root\cimv2" )
  3. Set colRunningServices = objWMIService.ExecQuery _
  4.     ("Select State From Win32_Service Where Name='WZCSVC'" )
  5. For Each objService in colRunningServices
  6.     Wscript.Echo objService.State
  7. Next

n°1754019
proutix
Posté le 01-07-2008 à 15:27:47  profilanswer
 

yeahhh, j'étais en train de chercher dans la classe win32_process mais effectivement la classe win32_service a le paramètre !
Merci bien ccp6128 ! depuis le temps que je cherchais à faire ça....

n°1922117
_ludovic
Posté le 08-09-2009 à 11:05:20  profilanswer
 

Bonjour,
 
J'essaie de faire la meme chose mais avec une vérification de deux services avec le code:

Code :
  1. strComputer = "."
  2. Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=Impersonate}!\\" & strComputer & "\root\cimv2" )
  3. Set colRunningServices = objWMIService.ExecQuery _
  4.     ("Select State From Win32_Service Where Name='WZCSVC'" )
  5. For Each objService in colRunningServices
  6.     Wscript.Echo objService.State
  7. Next


Je n'ai pas trouvé sur internet la bonne syntaxe. Et vous le savez vous ?
 
Merci d'avance.

n°1922128
ccp6128
Syntax error
Posté le 08-09-2009 à 11:14:29  profilanswer
 

Salut,
 
Ne pourrais tu pas par exemple vérifier les services les uns après les autres, ou y'a t'il une subtilité qui m'échappe ?

n°1922138
_ludovic
Posté le 08-09-2009 à 11:40:48  profilanswer
 

J'ai réussi à faire ceci:
 

Code :
  1. Const ForAppending = 8
  2. Set objFSO = CreateObject("Scripting.FileSystemObject" )
  3. Set objLogFile = objFSO.OpenTextFile("C:\verif-serv.txt",ForAppending, True)
  4. strComputer = "."
  5. Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=Impersonate}!\\" & strComputer & "\root\cimv2" )
  6. Set colRunningServices = objWMIService.ExecQuery ("Select State From Win32_Service where name = 'spooler'" )
  7. For Each objService in colRunningServices
  8. objLogFile.Write(objService.name & ":" & objService.state)
  9. objLogFile.WriteLine
  10. Next
  11. Set colRunningServices = objWMIService.ExecQuery ("Select State From Win32_Service where name = 'fax'" )
  12. For Each objService in colRunningServices
  13. objLogFile.Write(objService.name & ":" & objService.state)
  14. objLogFile.WriteLine
  15. Next


 
Cela fonctionne bien à présent. Par contre comment faire une boucle de vérification ?
 
Merci encore !!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] Vérifier qu'un service est démarré en VBS

 

Sujets relatifs
[Resolu] Impossible de valider la page en XHTML...[résolu]Problème Carateres japonais UTF8 et IE7 php
[Résolu] Connexion sécurisée à une base de données MySQL[Résolu] Order By et Union
Pb Erreur changer MDP Admin local via domain [RESOLU][RESOLU]Mise en forme conditionnelle 15 condition / différente cellule
[Resolu] Problème portabilité entre PC sous WinXP[RESOLU] Problème PHP4 --> PHP5
[Résolu][HTML]Problème avec la balise <a href>[Résolu] - [Php] - Fonction Isset
Plus de sujets relatifs à : [Résolu] Vérifier qu'un service est démarré en VBS


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR