bonjour
je cherche a creer un script permettant de recuperer et verifier le statut d'un service, si le service est planté ce script doit permettre d'arreter le service
Merci d'avance
Version imprimable
bonjour
je cherche a creer un script permettant de recuperer et verifier le statut d'un service, si le service est planté ce script doit permettre d'arreter le service
Merci d'avance
avec la commande sc, tu peux faire pas mal de choses sur les services (interroger, arrêter, démarrer, ...)
Par contre, je ne sais pas si sc est compatible avec des test errorlevel dans un script. A tester donc.
Salut, :P
Il faut juste remplacer le "Nom du service" en bleu par le nom de service que tu veux tester.
Le script va voir si le service est en train de tourner.
Si il tourne il ne fait rien.
Si il ne tourne pas, il le redémarre. ;)
Voila j'espère que ça va t'aider. :ccool:Code:
1
2
3
4
5
6
7
8
9
10
11
12 Set service=Nom du service sc interrogate %service% | find /c /i "running" if "%errorlevel%" == "0" goto end else goto restartService :restartService sc start %service% :end exit
bonjour,
Tu dois faire ça sur 1 ou plusieurs machines ?
Elle sont en domaine Active Directory ou non ?
Qu'est ce que tu entends par planté ?
Le service tourne toujours mais ne fait pas son boulot ou il est carrément stoppé ?
en batch, il faut te tourner vers la commande sc
sc \\server query wuausrv te retournera l'état du service windows update sur la machine server.
Si c'est juste pour redémarrer le service quand il s"arréte, penche toi sur les options de récupération de ton service. Cette option te permet de redémarrer le service si il s'arréte une ou 2 fois et à la 3eme fois, il peut executer un script.
le service dont je cherche l'etat est un service qui n'appartient pas à windows, c'est un service qui a été installé.
lorsque j'utilise la commande sc query pour mon service
il affiche que le service n'est pas installé
Exple: sc query msnmsgr
je cherche une autre commande qui gère ce genre de service;
si vous en connaissez une, pleaz hepl
:D
La commande "sc" gère TOUS les services, qu'ils soient natifs Windows ou pas. Mais il serait étonnant que MSN Messenger tourne comme un service !! ;)
Il tourne en tant qu'application "normale", simplement réduite dans la tray bar.
Pour compléter ce que dit Mac LAK, sc n'est utilisable que pour les services. Les services sont visibles par le gestionnaire de services (Démarrer / Exécuter puis taper Services.msc). Si ce que tu cherches à gérer n'apparait pas dans la liste affichée par le gestionnaire de services, alors sc n'est pas l'outil qu'il te faut.
Vérifie bien que "msnmsgr" est dans la liste des services. :P
Pour cela : Démarrer > Exécuter > services.msc
Si ton service n'est pas dans cette liste, il n'existe tout simplement pas. :?
PS: Peut être que tu confonds services et processus... ;)
[Edit] Ca...c'est du timming ram-0000 hahaha :mouarf:
Si c'est les processus que tu veux surveiller, tu peux utiliser la suite d'outils PS Tools
Cette suite ajoute plusieurs commandes très utiles pour la gestion des processus sur une machine locale ou distante (PsList, PsKill, etc.)
Tasklist, TaskKill sont inclus par défaut à partir de XP.
:oops: C'est un processus que je cherche à gerer
je voudrais recuperer le statut du processus dans un script verifier si le processus es planté, si oui le redemarrer
thanks :D
Pourquoi ne pas créer un script qui permettait de :
- Lister les processus et obtenir le PID
- Tester si le nom de la fenêtre contient "(ne répond pas)" qui s'affiche
- Si c'est le cas, tuer le processus
En utilisant tasklist avec le filtre windowstitle et tasklill pour tuer le processus.
kan tu execute mon processus il n'ouvre pas de fenêtre;
il permet juste de transferer des fichiers. Kan on demande un transfer de fichier le processus es lancé automatiquement mais il se plante souvent.
Donc tasklist avec windowstitle comme filtre ne marche pas.
le nom du processus c'est SRV00DS. il tourne sur Win 2000\2003 server
Et quels sont les indicateurs qui permettent de savoir qu'il est planté?
c'est vrai que si le processus se bloque
il se pourrait que tasklist du windowstitle ne marche pas aussi
ainsi un batch serait le bienvenu:)
Forcer la fermeture de tous les processus
qui ne répondent pas.
Peut être utilisé pour créer un petit fichier batch qui
termine les programmes plantés ou figés.
taskkill /f /fi "status eq not responding"
Forcer la fermeture de tous les programmes utilisant un fichier DLL spécifique appelé "some.dll". Cela doit être
utilisé avec prudence mais une utilisation peut être de terminer les processus associés avec une DLL provenant d'un
spyware ou d'un cheval de Troie. Utilisez Tasklist pour voir quels sont les programmes qui utilisent une DLL donnée.
taskkill /f /fi "modules eq some.dll"
Fermer tous les programmes qui utilisent une grande quantité de mémoire, par exemple 40 Mo. Utiliser avec
précaution.
taskkill /f /fi "memusage gt 40000"
Fermer tous les programmes utilisant plus de 40 Mo de mémoire mais pas l'explorateur Windows
tu peut aussi l'associer avec tasklist pour connaitre
les processus ou services en marche ou arrêt.
TASKLIST
Description :
Cet outil de ligne de commande affiche la liste des applications et
tƒches ou processus associ‚s actuellement activ‚s sur un
systŠmes … distance.
Liste des paramètres :
.
/SVC Affiche les services de chaque processus.
/FI filtre Affiche un ensemble de tâches qui correspond
au critŠre sp‚cifi‚ par le filtre.
Filtres :
Nom du filtre Op‚rateurs valides Valeurs valides
------------- ------------------ -------------------
STATUS eq, ne RUNNING | NOT RESPONDING
IMAGENAME eq, ne Nom d'image
PID eq, ne, gt, lt, ge, le Valeur PID
SESSION eq, ne, gt, lt, ge, le Num‚ro de session
SESSIONNAME eq, ne Nom de session
CPUTIME eq, ne, gt, lt, ge, le Heure valide au format
hh:mm:ss.
hh - heures,
mm - minutes, ss - secondes
MEMUSAGE eq, ne, gt, lt, ge, le M‚moire utilisée, en Ko
USERNAME eq, ne Nom d'utilisateur [domaine\]utilisateur
est le format utilis‚
SERVICES eq, ne Nom de service
WINDOWTITLE eq, ne Titre de la fenˆtre
MODULES eq, ne Nom de DLL
c 'est ce qui nous intéresse ici
peut être que cela t'aidera
j'ai dejà utilisé taskkill pour terminer les processus qui ne repondent pas.
mais là le problème est que le processus que je arreter et redemarrer se trouve sur windows 2000 server et sur ce SE la commande taskkill ne marche pa.