Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Shutdown batch reseaux


Messages recommandés

Bonjour a tous

 

alors voila j'ai dans l'idée de faire un batch afin de permettre l'extinction a distance et ce par un script batch qui me permettrai de lancer le lancer a distance ou en local sois avec une commande a distance sois avec une tache planifier

Bon je ne suis pas encore un expert en batch je lis un peu mais la je bloque méchant

Je mettrai ci contre le code de mon batch qui n'est vraiment pas fini et ou je dois rajouter pas mal de chose.

@echo off
cls
echo ****************************************************
echo ****************************************************
echo ************Pitbac23 Pour Videogameland*************
echo ************    Eteignage Tous PC      *************
echo ************        Salle n1 n2 VGL    *************
echo **********************************************
echo ************  *************
echo ****************************************************
echo ****************************************************
echo ********** http://www.videogameland.be *************
echo ********** Pitbac23 Website PC only theme **********
echo ********Change after to pitbac23.videogameland.be***
echo ****************************************************
echo ****************************************************
@pause
@break off
@echo on
set PC1=Pc_Colonne_1_VGL1
set PC2=Pc_Colonne_1_VGL2
set PC3=Pc_Colonne_1_VGL3
set PC4=Pc_Colonne_1_VGL4
set PC5=Pc_Colonne_2_VGL5
set PC6=Pc_Colonne_2_VGL6
set PC7=Pc_Colonne_2_VGL7
set PC8=Pc_Colonne_2_VGL8
set PC9=Pc_Colonne_3_VGL9
set PC10=Pc_Arriere1_VGL10
set PC11=Pc_Arriere1_VGL11
set PC12=Pc_Arriere1_VGL12
set PC13=Pc_Arriere1_VGL13
set PC14=Pc_Arriere1_VGL14
set PC15=Pc_Coin_Arriere_VGL15
set PC16=Pc_Arriere2_VGL16
set PC17=Pc_Arriere2_VGL17
set PC18=Pc_Arriere2_VGL18
set PC19=Pc_Internet_Droite_VGL19
set PC20=Pc_Internet_Gauche_VGL20

set arret1=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret2=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret3=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret4=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret5=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret6=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret7=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret8=shutdown -s -t 10 -m \\15.10.10.83 -c "Arret PC demander par l'host" -f
set arret9=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret10=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret11=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret12=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret13=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret14=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret15=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret16=shutdown -s -t 10 -m \\15.10.10.83  -c "Arret PC demander par l'host" -f
set arret17=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret18=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret19=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
set arret20=shutdown -s -t 10 -m \\15.10.10.1XX -c "Arret PC demander par l'host" -f
@echo off
Rem Vérification des variables d'environnements effectuées avec succès
cls
echo     *********Variables d'environnements definies************************
echo     *********    Aucun problemes detectes     **************************
@pause


echo *Commencement De l'eteignage, ne rien toucher*
REM PC1 allumage avec un paramètre de 10 secondes.
if "%os%"=="Windows_NT" goto granted
if not "%os%"="Windows_NT" goto version

:allumage
@echo on

:PC1
if errorlevel 1 goto PC2
%arret1%

:PC2
if errorlevel 2 goto PC3
%arret2%

:PC3
%arret3%
:PC4
%arret4%
:PC5
%arret5%
:PC6
%arret6%
:PC7
%arret7%
:PC8
%arret8%
:PC9
%arret9%
:PC10
%arret10%
:PC11
%arret11%
:PC12
%arret12%
:PC13
%arret13%
:PC14
%arret14%
:PC15
%arret15%
:PC16
%arret16%
:PC17
%arret17%
:PC18
%arret18%
:PC19
%arret19%
:PC20
%arret20%

goto reussi
goto fin

Rem Erreur survenu pendant l'execution du batch

:fin
@echo off
cls
echo Une erreur c'est produite a l'extinction reesayer ou contacter
echo Pitbac23 pour de plus ample information sur le debogage du batch
echo ***************************MERCI********************************
pause

Rem Windows NT detecter la demarche continue
:granted
@echo off
cls
echo Version de windows accepter vous pouvez continuer
pause
goto allumage
**********************************************************************

Rem L'opération c'est bien déroulée et les pc sont eteints
:reussi
@echo off
cls
echo L'eteignage des PC se fera dans 20 secondes timer regler
echo Si malgrer tout des problemes se ferais encore sentir
echo Veuillez contactez Pitbac23 pour le debogage du batch
echo ***************************Merci*********************************
pause
goto exit

Rem Mauvaise version de windows arret du batch
:version
@echo off
cls
echo votre version de windows actuelle ne fait pas partie d'une version
echo de NT. Ce script ne peut continuer
echo Appuyer sur une touche afin de fermer la fenetre
echo **************************** Merci ********************************
pause

:exit
exit

 

Bon alors voila mon problème je cale sur la condition

je m'explique si vous regarder les variables vous voyez que j'ai introduit une vrai adresse ip afin de voir s'il fait les saut avec condition mais ca marche pas !

 

Alors ce que je voudrais est que par exemple si %arret1% se lance comme sur le script présent il bloquera puisque l'adresse est fausse et donc que le chemin est pas bon et ca lui prend du temps avant de s'en rendre compte et j'aimerais justement avec une condition faire en sorte que s'il trouve pas le chemin, au lieu de chercher qu'il passe a la seconde

je pense que c'est faisable avec "if errorlevel" mais je ne sais pas quel valeur attribuer a errorlevel ... et je trouve pas le moyen de le savoir

ce serait sympa si qqn possède la réponse .

 

 

PS: vous soucier pas y a des chose pas juste dedans mais j'ai beaucoup chipoter faut que je regarder si chaque saut correspond bien un label mais ca pas de problème

merci encore

Lien à poster
Partager sur d’autres sites

salut,

 

Je ne le jurerai pas mais je pense pas que ce soit possible en batch

car il ne renvera l'erreur qu'apres avoir fini de chercher l' alias ou l IP

 

mais au fait tu n'aurais pas plus facile avec les noms de sessions plutot que les IP

 

sinon si ton but est simplement d'aller plus vite tu gagnera surement pas mal de temps en utilisant "start" sans /W

de cette facon il va essayer de les eteindre + ou - tous en meme temps aulieu d'attendre que un soit fini et puis verifier et lancer un 2 eme...

Lien à poster
Partager sur d’autres sites
  • 2 weeks later...

Coucou, je me permet de relancer le sujet vu que tu n'as apparement pas eu de réponse.

 

je trouve que tu te compliques la vie et pourtant je ne pratique pas le batch depuis longtemps, le batch que je te soumet n'est surement pas le meilleiur du monde, mais il a le mérite de fonctionner :P

 

@ECHO OFF
*
*reseau.cmd
*Script de connexion à la ressource partagée
*
*

CLS
ECHO Test de la connexion au serveur
PING -n 1 192.168.1.8 |FIND "TTL" > NUL
IF NOT ERRORLEVEL 1 GOTO OK2
wol 0030050b68b0
ECHO Le serveur est éteint... Lancement en cours...
ECHO Veuillez patienter SVP.
:TC
PING -n 1 192.168.1.8 |FIND "TTL" > NUL
IF NOT ERRORLEVEL 1 GOTO OK1
GOTO TC

:OK1
ECHO Le serveur a repondu... veuillez patienter...
WAIT 15
:OK2
net use |FIND "X:" > NUL
IF NOT ERRORLEVEL 1 GOTO OK3
ECHO Ressource non connectee
ECHO Connexion de arbo en cours
NET USE x: \\CrackAServer\arbo
GOTO update
:OK3
ECHO Ressource deja connectee
:update
ECHO Verification de la derniere version du script de connexion
ECHO Copie de Update.cmd
copy x:\script\update.cmd c:\script\update.cmd
update.cmd

 

 

*
*stop.cmd
*Script d'arret du serveur
*
*
@ECHO OFF
ECHO Test de la connexion
net use |FIND "X:" > NUL
IF ERRORLEVEL 1 GOTO ping1
ECHO Deconnexion de la ressource "arbo"
NET USE /d X:

:ping1
PING -n 1 192.168.1.8 |FIND "TTL" > NUL
IF NOT ERRORLEVEL 1 GOTO SD
ECHO Le serveur est deja eteint.
WAIT 10
GOTO END

:SD
shutdown -s -m \\crackaserver -t 10
ECHO Commande envoyée, le serveur s'éteindra dans 10sec
choice /t 10 /c:as /d a /N /m "Si vous voulez annuler la commande d'arret, appuyez sur S"
IF ERRORLEVEL 2 GOTO stop
IF ERRORLEVEL 1 GOTO continue
:stop
shutdown -a -m \\crackaserver
ECHO Commande envoyee, arret du serveur annule
GOTO reco
:continue
ECHO Le serveur est en cours d'arret

:ping2
PING -n 1 192.168.1.8 |FIND "TTL" > NUL
IF NOT ERRORLEVEL 1 GOTO ping2
ECHO Le serveur est maintenant eteint
wait 5
GOTO END

:reco
choice /c:on /m "le lecteur reseau a ete supprime. le reconnecter ?"
IF ERRORLEVEL 2 GOTO END
IF ERRORLEVEL 1 GOTO RES
:RES
reseau.cmd
GOTO END

:END

 

 

Bon, je sais que j'ai la facheuse manie de ne rien commenter... hésite pas si tu as des questions

 

 

N.B. : WOL, WAIT et CHOICE sont des commandes non inclues par défaut dans windows d'où le script

*
*
*Update.cmd
*
*
@ECHO OFF
ECHO Vérification de la derniere version du script de connexion
dir |FIND "choice.exe"
IF NOT ERRORLEVEL 1 GOTO WOL
copy x:\script\choice.exe c:\script\choice.exe
:WOL
dir |FIND "wol.exe"
IF NOT ERRORLEVEL 1 GOTO WAI
copy x:\script\wol.exe c:\script\wol.exe
:WAI
dir |FIND "wait.exe"
IF NOT ERRORLEVEL 1 GOTO MAJ
copy x:\script\wait.exe c:\script\wait.exe
:MAJ
wait 1
ECHO Copie de Update.cmd
copy x:\script\update.cmd c:\script\update.cmd
wait 1
ECHO Copie de Reseau.cmd
copy x:\script\reseau.cmd c:\script\reseau.cmd
wait 1
ECHO Copie de Stop.cmd
copy x:\script\stop.cmd c:\script\stop.cmd
ECHO Copie de MP3.cmd
copy x:\script\MP3.cmd c:\script\MP3.cmd
ECHO Mise a jour terminee
WAIT 5

Lien à poster
Partager sur d’autres sites
  • 2 months later...

Hello a tous alors finalement j'ai fini par trouver la solution et je remercie un membre pour son aide et biensur ici aussi je vous remercie :P

 

voici le batch

@echo +++++++++++ Eteignage PC+++++++++++
@echo +++++++++++ Pitbac23    +++++++++++
@echo ++ URL http://pitbac23.videogameland.be ++++
@echo ++ E-mail XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ++++++++

net view >c:\listpc.txt
if exist "c:\listpc.txt" [ren listpc.txt listpc.bak]
if errorlevel 5 goto quit
@echo mappage du reseaux effectuer avec succes !
@echo Eteignage des pc reseaux mappes
@pause

FOR /F "skip=3 eol=L" %%a IN (c:\listepc.txt) DO shutdown -s -t 05 -m -c 

"Eteignagne PC ordonne par l'administrateur de Videogameland Ne Rien toucher 

SVP !! !!" %%a
@pause
:quit
@echo erreur lors du mappage du reseaux
@echo Veuillez informer Pitbac23 pour debogage
@pause



exit

 

Voila désoler de l'attente mais j'avais oublier :-(

Lien à poster
Partager sur d’autres sites

salut tanguy

 

au faite il liste les pc sur le reseaux du moins ceux qui sont vu par l'explorateur

des noms résolu je veux dire sois par diffusion en general pour un reseaux P2P

Nom de serveur         Remarque

-------------------------------------------------------------------------------
\\GEOFFREY                                                                     
\\GEOFFREYSERV                                                                 
La commande s'est termin‚e correctement.

 

voila ce que donne net view

 

dans la boucle for le skil permet de passer les lignes admettons tu vousdrais passer l'exctionction de geoffrey skip prendrais 1 comme val

 

ensuite EOL passe la derniere ligne qui n'est qu'un commentaire :P

voila l'ami si t'hésite pose question

Lien à poster
Partager sur d’autres sites

je suis inattentif! j'avais pas vu le:

net view >c:\listpc.txt

 

:P

 

Merci!

(je crois que je vais le rajouter dans mon article sur les commandes dos/batchs :-( )

Lien à poster
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×
×
  • Créer...