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 :

recuperer des arguments Dos en VBS


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut recuperer des arguments Dos en VBS
    Bonjour

    Je me retrouve encore face a une difficultée en VBS. En fait, le but est de lancé mon fichier vbs pour que celui ci demarre ou arrete un service de mon choix en lui passant des parametres suivant


    Appel en DOS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d:\Testludo.vbs 'Startservice' 'helpsvc'
    Startservice ou Stopservice en premier parametre
    'nom-du-service-windows' en second parametre


    Script VBS

    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
    31
    32
    33
    'Variables nous remontant l'etat du service et son nom
    Dim ETAT_SERVICE           'startservice  ou stopservice
    Dim WIN_SERVICE             'nom-du-service-windows
    
    
    Dim objWMIService, objItem, objService
    Dim colListOfServices, strComputer, intSleep
    strComputer = "."
    intSleep = 5000
     On Error Resume Next
    ' NB strService is case sensitive.
    Set args  = Wscript.Arguments 
    'declaration des 2 variables avec la methode arg()
    WIN_SERVICE = args(1)
    ETAT_SERVICE = args(0)
    
    
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
    Set colListOfServices = objWMIService.ExecQuery _
    ("Select * from Win32_Service Where Name ="_
    & WIN_SERVICE & " ")
    For Each objService in colListOfServices
    
    'cette commande marche sans pb et arrete le service passer en dos
    objService.StartService("WIN_SERVICE")
    
    'Cette commande qui est ma commande finale ne marche pas 
    objService.ETAT_SERVICE("WIN_SERVICE")
    
    WSCript.Sleep intSleep
    Next
    Est que le fait d''avoir un . precedent mon premier argument gene et si oui comment contourner cela

    Merci d'avance
    Ludovic

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Quelle est l'erreur que l'interpreteur te retourne ? Et donne la ligne du code affecté par l'erreur.
    Et utilise la balise code (le bouton #) lorsque tu poste ton code, c'est plus jolie .
    Ha et ça m'etonnerais que ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    objService.ETAT_SERVICE("WIN_SERVICE")
    Je ne pense pas que ETAT_SERVICE soit une méthode de l'objet service.
    Ici tu as toutes les infos pour l'utilisation de l'objet services de windows :
    http://msdn.microsoft.com/library/de...__services.asp
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut Argument dos en vbs Suite
    BonjourC'est justement la mon pb. ETAT_SERVICE n'est une méthode de l'objet. Je voudrais simplement qu'a la place de ETAT_SERVICE,il me remonte mon arg (0) que je passe en premier parametre en dos .

    Le but ultime est d'voir un scrip qui me permet soit de demarrer, soit d'arreter n'importe quel services Windows tout cela passer en argument.

    Merci de ton aide

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Tu peut faire plus simple, ton parametre recupere une chaine de caractere.
    Tu peut faire un If Then. Tu compares ton argument à "StartService" ou "StopService", et en fonction du résultat tu exécute la bonne méthode.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If ETAT_SERVICE = "Startservice" Then
       objService.StartService("WIN_SERVICE")
    Else If ETAT_SERVICE = "Stopservice" Then
       objService.StopService("WIN_SERVICE")
    End If
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/03/2011, 15h01
  2. Réponses: 2
    Dernier message: 18/06/2009, 15h26
  3. recuperer des arguments wxApp::argv
    Par Jérémy Lefevre dans le forum wxWidgets
    Réponses: 3
    Dernier message: 28/12/2006, 10h13
  4. [Language][Main]Récupération des arguments
    Par nana1 dans le forum Langage
    Réponses: 5
    Dernier message: 01/12/2005, 18h20
  5. Réponses: 4
    Dernier message: 18/07/2002, 13h32

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