Script bat pour lister services

Résolu
robix62 Messages postés 1028 Statut Membre -  
 Blooge -
Bonjour,

je suis entrain de réaliser un script me permettant de lister les services sur un pc distant et pouvoir faire plusieurs actions sur ces services

je récupère les données via "sc \\ipduposte query"

dans l'idéal

je souhaiterai que le script se déroule de cette façon

qu'on me demande l'ip => ça c'est ok

ensuite que j'ai 5 choix,
lister les services
redémarrer un service => ça c'est ok
démarrer => ça c'est ok
arrêter => ça c'est ok
quitter => ça c'est ok

le problème étant pour lister les services, je souhaiterai n'avoir que le nom du service, le fichier exe correspondant au service et son état et optionnellement, pouvoir le sauvegarder dans un fichier texte

merci d'avance pour vos réponses



--
en formation de GMSI :D

6 réponses

  1. ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   342
     
    net start te donnera la liste des services actifs ...
    Google is your best friend
    VB.NET is good ... VB6 is better !
    1
  2. robix62 Messages postés 1028 Statut Membre 62
     
    voilà le script, il n'est pas terminé

    je n'arrive pas encore à reprendre seulement les données que je souhaite,c'est à dire le nom du service et son état

    @color 1F
    cls
    @echo off
    echo ---------------------------------------
    echo Demarrer / arreter / redemarrer un service a distance
    echo ---------------------------------------
    echo .
    echo .

    set /p adresseip=Entrer l'adresse ip de l'ordinateur distant ?

    :DEB

    echo 1 - Recuperer les services demarres
    echo 2 - Recuperer les services arretes
    echo 3 - Redemarrer un service
    echo 4 - Arreter un service
    echo 5 - Demarrer un service
    echo 6 - Quitter
    Echo Votre choix ?
    set /p choix=

    IF %choix%==1 GOTO CHOIX1
    IF %choix%==2 GOTO CHOIX2
    IF %choix%==3 GOTO CHOIX3
    IF %choix%==4 GOTO CHOIX4
    IF %choix%==5 GOTO END

    GOTO END

    :CHOIX1
    sc \\%adresseip% queryex > liste_des_services_en_cours_de_%adresseip%.txt
    pause
    notepad liste_des_services_en_cours_de_%adresseip%.txt
    cls
    GOTO DEB

    :CHOIX2
    sc \\%adresseip% queryex > liste_des_services_arretes_de_%adresseip%.txt
    pause
    notepad liste_des_services_arretes_de_%adresseip%.txt
    cls
    GOTO DEB

    :CHOIX3
    set /p service=service a redemarrer ?
    sc \\%adresseip% stop %service%
    pause
    sc \\%adresseip% start %service%
    pause
    cls
    GOTO DEB

    :CHOIX4
    set /p service=service a arreter ?
    sc \\%adresseip% stop %service%
    pause
    cls
    GOTO DEB

    :CHOIX5
    set /p service=service a demarrer ?
    sc \\%adresseip% start %service%
    pause
    cls
    GOTO DEB

    :END

    qu'est ce que vous en pensez ?
    avez vous une réponse à mon probleme ?

    merci d'avance
    1
  3. nirG95 Messages postés 319 Statut Membre 32
     
    Bonsoir,

    j'ai pu avoir un peu de temps !

    Pour lister les services actifs :

    :CHOIX1
    cls 
    sc \\%adresseip% queryex > %tmp%\active.txt
    for /f "tokens=1,* delims= " %%a in ('type "%tmp%\active.txt" ^|findstr /i /r "Service_NAME:"') do echo %%b >> act.txt
    pause
    notepad %tmp%\act.txt 
    cls 
    GOTO DEB 


    Pour lister les services inactifs :

    :CHOIX2 
    sc \\%adresseip% queryex state= inactive > %tmp%\inactive.txt
    for /f "tokens=1,* delims= " %%a in ('type "%tmp%\inactive.txt" ^|findstr /i /r "Service_NAME:"') do echo %%b >> %tmp%\inact.txt
    pause
    notepad %tmp%\inact.txt
    cls 
    GOTO DEB 


    Cordialement.
    1
    1. nirG95 Messages postés 319 Statut Membre 32
       
      Ne pas oublier d'effacer les fichiers txt a chaque fois ^^
      0
    2. robix62 Messages postés 1028 Statut Membre 62
       
      waouw merci , ça a l'air de fonctionner pour certains services

      il y a par exemple ocs que je ne peux pas arrêter

      pourtant je reprend bien le nom de service mais je pense que l'espace lui pose problème
      le service s'appel OCS INVENTORY

      j'ai essayé de mettre un espace, un % entre les deux mais il me répond que le service n'est pas installé

      As tu une solution pour cela ?

      Merci d'avance
      0
    3. nirG95 Messages postés 319 Statut Membre 32
       
      De le mettre entre "OCS INVENTORY" peut être

      Cordialement
      0
    4. robix62 Messages postés 1028 Statut Membre 62
       
      erf ne marche pas mais en tout cas, tu m'a enlevé une belle épine du pied.

      je laisse le poste ouvert si jamais une autre personne aurait une autre idée.

      Merci encore
      0
    5. nirG95 Messages postés 319 Statut Membre 32
       
      Le problème ne vient pas de l'espace, car pour moi

      sc \\127.0.0.1 start "ipod service"

      Marche bien.

      Vérifies le nom qu'il porte directement dans les services
      0
  4. Blooge
     
    Bonjour,

    Exactement, le même besoin que moi. je souhaiterai extraire sous Excel la liste des services et les comptes qui les lancent.
    Merci d'avance
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. robix62 Messages postés 1028 Statut Membre 62
     
    elle me donne bien les services actifs par contre si je souhaite agir sur un des services, il me faut le nom "court" qui est en .exe
    0
  7. nirG95 Messages postés 319 Statut Membre 32
     
    Bonjour,

    Si personne ne te répond pas d'ici demain je te donnerai un coup de main pour faire ton script, mais là c'est l'heure de partir du boulot :p

    PS : juste avec le nom tu peux arreter/demarrer le service ex : sc \\127.0.0.1 start "ipod service"

    A demain peut être.

    Cordialement.
    0
    1. ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   342
       
      Et c'est ce qu'il faut, donc plus besoin du nom de l'exécutable ...
      0