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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Script Dos extinction Pc allumés depuis liste passée en paramètre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script Dos extinction Pc allumés depuis liste passée en paramètre

n°768539
moamoa
Posté le 18-06-2004 à 11:23:04  profilanswer
 

Salut à tous,
 
je cheche à faire un script qui va éteindre toutes les machines allumées (nom de machine contenu dans un fichier texte passé en entrée).
Jusque la aucun pb (for /F %i IN (fichier contenant les noms de machines du réseau.txt) do shutdown.EXE -s -f -t 10 -m \\%i).
 
Mais cette méthode est un peu "bourrine"
Je voudrais pinger les machines et éteindre celle qui répondent.
 
Sinon si vous connaissez un bon site sur la programmation en script dos, je suis preneur.
 
 
 

mood
Publicité
Posté le 18-06-2004 à 11:23:04  profilanswer
 

n°769292
JPA
Posté le 18-06-2004 à 16:22:12  profilanswer
 

Un bon site en anglais :
http://www.robvanderwoude.com/index.html
pas d'idée pour le reste.
A+

n°769922
moamoa
Posté le 19-06-2004 à 15:06:24  profilanswer
 

merci

n°771600
moamoa
Posté le 21-06-2004 à 16:38:35  profilanswer
 

Pq le pb c'est que j'ai 500 machine a atteindre et assez rapidement.
Et le shutdown a un timeout assez élévé (anviron 50 secondes) si la machine est déja éteinte. Ce qui ralentit énormément mon script.
Si vous avez d'autres idées de script ou si vous savez s'il est possible de diminuer le timeout du shutdown...

n°772332
JPA
Posté le 22-06-2004 à 09:43:30  profilanswer
 

j'ai pas le temps de tester, mais essaie dans cette voie :
il faut 2 fichiers batch  
dans le 1° :
for /f %i in fichier do call test2.bat %i
 
 
dans test2.bat :
ping %1|find "dépassé"
if errorlevel 1 goto fin
shutdown ..... \\%1
:fin
 
 
attention dans le 2° batch, c'est %1 et pas %i
A+
JPA

n°772336
JPA
Posté le 22-06-2004 à 09:46:25  profilanswer
 

pour faire une seule fois le test du ping et gagner ainsi 9 secondes par machine éteinte :
ping -n 1 %1|find "dépassé"  

n°772464
omicron
Pas de bras, pas de caméra !
Posté le 22-06-2004 à 11:13:56  profilanswer
 

en plus de la solution proposée par JPA
à la place du call, il est possible d'utiliser 'start /b', qui n'attend pas le retour de la commande appellée pour passer à la suivante, (contrairement à call je crois).
-> ça revient à lancer un mass shutdown en parallèle ;)
 
je propose ça, mais tu n'as pas précisé l'environnement et les conditions d'éxécution.
a+

n°772473
JPA
Posté le 22-06-2004 à 11:18:54  profilanswer
 

petite correction d'erreur :
if not errorlevel 1 goto fin  
 
find a trouvé le mot "dépassé" dans la réponse du ping -> machine éteinte

n°773111
moamoa
Posté le 22-06-2004 à 18:55:42  profilanswer
 

merci JPA, je vais prendre cetyte méthode, mais tu peux le faire en un seul batch (sous NT)
 
for /f %i in fichier do (ping %i|find "dépassé"  
if errorlevel 1 goto fin  
shutdown ..... \\%i  
:fin )

n°773710
JPA
Posté le 23-06-2004 à 08:11:30  profilanswer
 

C'est vrai que j'ai gardé des habitudes d'avant guerre (du golfe)...

mood
Publicité
Posté le 23-06-2004 à 08:11:30  profilanswer
 

n°774432
moamoa
Posté le 23-06-2004 à 15:41:10  profilanswer
 

La version définitive si ça peut intéresser qqu'1!!!
Par contre j'ai pas trouvé de moyen de faire 2 actions dans le "IF", obligé de le répeter 2 fois.
Si qqu'1 sais?
 
@echo off
cls
for /F %%i IN (d:\test\MACHINE2.txt) DO (PING -n 2 -w 4 %%i | FIND "TTL=">NUL
IF NOT ERRORLEVEL 1 (shutdown -r -f -t 60 -m \\%%i) else (Echo machine %%i deja eteinte >> d:\test\result.txt)
IF NOT ERRORLEVEL 1 (echo machine %%i maintenant eteinte  >> d:\test\result.txt)  
)

n°1044039
boogielup
Posté le 12-04-2005 à 12:33:55  profilanswer
 

je pose un drapal

n°1044945
wackevat
Posté le 12-04-2005 à 21:49:08  profilanswer
 

Un drapal pour quoi ? :)
 
Si c'est le pb de deux commandes pour le if :

Code :
  1. @echo off
  2. cls
  3. for /F %%i IN (d:\test\MACHINE2.txt) DO (
  4.   PING -n 2 -w 4 %%i | FIND "TTL=">NUL
  5.   IF NOT ERRORLEVEL 1 (
  6.     shutdown -r -f -t 60 -m \\%%i
  7.     echo machine %%i maintenant eteinte  >> d:\test\result.txt
  8.     rem ... autre commandes ici
  9.   ) else (
  10.     echo machine %%i deja eteinte >> d:\test\result.txt
  11.     rem ... autre commandes ici
  12.   )
  13. )

n°1051018
boogielup
Posté le 18-04-2005 à 17:11:20  profilanswer
 

la commande shutdown est pas reconnu chez moi, et sinon, j'ai reussit avec :
 

Code :
  1. tsshutdn 5 /SERVER:Poste01


 
et la je suis au cyber et ca ne marche pas, il me dit : erreur lors de l'ouverture du terminal serveur sur poste08
 
pourtant cette commande marhait chez un pot hier avec 2 portables ( un win 200serveur et un XP )
 
ici au cyber ( un win2000serveur et des 2000 )

n°1054837
boogielup
Posté le 21-04-2005 à 09:41:08  profilanswer
 

En fait, sous windows 2000 serveur, la commande shutdown n'existe pas, j'ai donc essayer avec tsshutdn mais ca me dit que le service terminal serveur etc etc ...
 
Or la je suis sous xp sur mon portable et je tente donc de lancer le script pour éteindre le PC (xp) d'un pot juste a coté, il est bien pingé mais la comande shutdown -s -m \\%1%  
 
n'éteind pas le PC, ca me dit "le chemin réseau n'a pas été trouvé", pourtant le PC est bien pingé !  
 
Besoin d'aide !

n°1150624
Sm@No
Posté le 15-07-2005 à 13:39:43  profilanswer
 

Sa marche pas si T pas admin du POSTE!

n°1222105
golum666
Posté le 13-10-2005 à 14:16:49  profilanswer
 

voilà ce que je cherchais!
en revanche chez moi ca déconne !  
j'ai mis ça dans mon .bat:
 
 
for /F %%i IN (c:\liste2.txt) DO (  
  PING -n 1 -w 5 %%i | FIND "TTL=">NUL  
  IF NOT ERRORLEVEL 1 (  
    @echo %%i allumé
  ) else (  
    @echo %%i éteint
  )  
)
 
bon j'ai juste mis un echo pour le moment mais c pas ca que je veux faire je vous rassure! lol
par contre qd je lance ce batch j'ai "ce processus a tenté d'écrire sur un canal inexistant" qui s'affiche des centaines de fois à l'écran avant que la fenetre DOs se ferme completement !!! qqn voit ce qui peut déconner ??
 
merci
 
@+


Message édité par golum666 le 13-10-2005 à 14:47:33

---------------
pourquoi remettre à demain ce que l'on peut faire ... après demain !!!
n°1222107
golum666
Posté le 13-10-2005 à 14:17:47  profilanswer
 

pour etre sur... dans votre fichier .txt vous avez simplement un nom de poste par ligne et rien d'autre ??!!


---------------
pourquoi remettre à demain ce que l'on peut faire ... après demain !!!
n°1222234
wackevat
Posté le 13-10-2005 à 15:48:36  profilanswer
 

Ton script marche chez moi.
Chaque ligne du fichier .txt contient uniquement le nom d'une machine.
 
Vérifie ta variable PATH ou ajoute :
set PATH=%SystemRoot%;%SystemRoot%\system32
 
au début de ton script pour être sûr que la bonne version de chaque commande est exécutée.

n°1222252
golum666
Posté le 13-10-2005 à 15:56:19  profilanswer
 

wackevat a écrit :

au début de ton script pour être sûr que la bonne version de chaque commande est exécutée.


 
y'a des fois ou j'ai envie d'ouvrir la fenetre ... et de sauter ! :bounce:  
 
j'ai changé le nom de mon .bat et ca marche !  
 
il s'appelait ping.bat !!! :cry:  
 
 
désolé de vous avoir dérangé betement !!! :pfff:  


---------------
pourquoi remettre à demain ce que l'on peut faire ... après demain !!!
n°1222268
wackevat
Posté le 13-10-2005 à 16:01:36  profilanswer
 

:lol:
 
@+

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Script Dos extinction Pc allumés depuis liste passée en paramètre

 

Sujets relatifs
Liste de A=>Z ou Z=>A sur une requete Mysql ?Menu affichable sous DOS
Nommer un lecteur via script[yacc] comment passer en parametre un fichier à traiter à yyparse ?
[javascript] pb avec une liste selectliste des fichiers d'un dossier d'un jar
Batch ftp - dosscript "top clique"
[VB 6] Liste d'un seul élément et affichage [RESOLU]euh appel de fonctions à partir d' une liste ou d' un dictionnaire ??
Plus de sujets relatifs à : Script Dos extinction Pc allumés depuis liste passée en paramètre


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