IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Vbs- Presence d'un service


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 42
    Points : 35
    Points
    35
    Par défaut Vbs- Presence d'un service
    Bonjour,

    J'aimerai savoir si quelqu'un connait la maniere de savoir si un service est présent ou non.
    Si possible avec l'objet Shell.Application.

    Je sais savoir si un service est demarré ou non :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    service="Eventsystem"
    Set sh = CreateObject("Shell.Application")
    EtatService=sh.IsServiceRunning(service)
    Je sais le demarrer ou l'arreter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sh.ServiceStop (service),False 'False ou true indique si on veut que l'opération indiquer soit persistente ou non.
    sh.ServiceStart (service),true
    Mais je ne sais pas comment tester l'existence / presence d'un service.

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Salut;

    J'ai posté il y a environ 2 mois un code VBS qui peut lister tous les services qu'ils soient actifs ou non. Tu peux le modifier selon ton besoin ou t'en inspirer.

    Il est ICI
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    Je regarde ton script. Merci de ta réponse.

    EN BATCH il y a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Netsvc /list \\%computername% | Find "NameService > NUL"
    echo %errorlevel%
    qui retourne 1 si non present ou zero si le service existe.

    Je suis donc parti sur une piste plutot que du WMI

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Set ObjShell = WScript.CreateObject("WScript.Shell")
    Set Oexec=ObjShell.Exec("cmd")
    commande="Netsvc /list \\%computername% | Find ""Nomservice > NUL"""
    Oexec.StdIn.WriteLine commande
    Oexec.StdIn.WriteLine "echo %errorlevel%"
    Oexec.StdIn.WriteLine "Exit"
    wscript.echo Oexec.StdOut.readAll
    ca fait un peu trop bricolo à momn gout.
    Si quelqu'un à une autre solution je suis preneur.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    Bon voilà j'ai pondu un code.
    SI quelqu'un à une autre idée sinon c'est resolu pour ma part

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    'Script pour determiner les services sous windows 2000 et 2003
    EtatService=PresenceService("TOTO")
    Wscript.Echo EtatService
     
    Function PresenceService(NomService)
    	Dim ObjShell,Oexec
    	Dim compt,commande,result
    	Set ObjShell = WScript.CreateObject("WScript.Shell")
    	compt=0
    	commande="Netsvc /list \\COmputerName | Find """ & NomService & """ > NUL"
    	Set Oexec=ObjShell.Exec("cmd") 'Execute CMD
    	Oexec.StdIn.WriteLine commande 'Execute sous DOS la commande
    	Oexec.StdIn.WriteLine "echo %errorlevel%" 'Faire un echo de errorlevel afin d'aficher son etat (1 si erreur 0 sinon)
    	Oexec.StdIn.WriteLine "Exit" 'sortir de CMD
     
    	'Analyser le flux de sortie mais les premieres lignes ne nous interressent pas donc on met en place un compteur
    	Do until Oexec.StdOut.AtEndOfStream 'Analyser le flux de sortie jusqu'à la fin
    		result= Oexec.StdOut.ReadLine() 'traiter ligne par ligne le flux
    		If Instr (1,result,"0") > 0 And compt > 5 Then 'chercher le resultat de l'echo errorlevel des que le compteur et superieur à 5
    			PresenceService="present" 'Si c'est 0 alors le service existe
    			exit do ' sortir de la boucle
    		end if
    		If Instr (1,result,"1") > 0 And compt > 5 Then 'chercher le resultat de l'echo errorlevel des que le compteur et superieur à 5
    			PresenceService="absent" 'si c'est 1 alors le service est absent
    			exit do
    		end if
    		Compt=Compt+1 'incrementer compteur
    	Loop
    End Function

    Merci encore à tous les scripteurs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lancement d'un VBS dans un Batch = Service KO ?
    Par ghohm dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 26/02/2009, 07h16
  2. Service windows VS Tâche planifiée + VBS
    Par lapanne dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 09/11/2007, 18h46
  3. Checker un service en VBS avec variable
    Par balthior dans le forum VBScript
    Réponses: 8
    Dernier message: 08/12/2006, 15h14
  4. [VBS] Démarrer un service
    Par Trojan dans le forum VBScript
    Réponses: 2
    Dernier message: 22/11/2005, 17h04
  5. [C#] Execution d'un fichier VBS depuis un service Windows
    Par 0r3L dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/11/2005, 22h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo