Connexion automatique a 2 pc de productions [Fermé]

Signaler
Messages postés
12
Date d'inscription
jeudi 7 juin 2018
Statut
Membre
Dernière intervention
21 juin 2018
-
Messages postés
13531
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
15 juin 2021
-
bonjour,

je suis actuellement en stage de premiere année de BTS SIO et j'ai un petit projet a réaliser. Celui-ci est de tester la connexion entre un PC utilisateur (ou n'importe quel user peut se connecter) et deux autre PC de prod (virtuels). Dans le cas ou la connexion n'est pas établie le script doit forcer la connexion a ceux-ci sinon laisser comme c'est, après je met le script dans le gestionnaire de taches windows pour qu'il se lance a chaque démarrage du pc.

voici le script que j'ai réalisé en .bat , le problème est que je n'ais jamais fait ce genre de script... quelqu'un pourrait il m'aider a le faire fonctionner.

merci d'avance.
@ECHO OFF 

TITLE Test la connexion


Rem ----------------------------------- 
:: On Ping ardis 
PING PC_ARDIS 

Rem ----------------------------------- 
:: Si errorlevel vaut 0 alors on ne touche rien 
IF %ERRORLEVEL% == 0 ( ECHO Informations : [connexion avec Ardis déjà établie])

Rem ----------------------------------- 
:: Si errorlevel vaut 1 alors tout et NUL 
Else IF %ERRORLEVEL% == 1 ( 
NET USE E: \\Nom_PC_ARDIS\ardis/PERSISTENT:yes)
ECHO Informations : [vous êtes maintenant connecté avec Ardis])

Rem ----------------------------------- 
:: On Ping Holzma 
PING Nom_PC_holzma 

Rem ----------------------------------- 
:: Si errorlevel vaut 0 alors on ne touche rien
IF %ERRORLEVEL% == 0 ( ECHO Informations : [connection avec Holzma déjà établie])

Rem ----------------------------------- 
:: Si errorlevel vaut 1 alors tout et NUL 
else IF %ERRORLEVEL% == 1 ( 

NET USE G: \\Nom_PC_Holzma\ardis/PERSISTENT:yes
ECHO Informations : [vous êtes maintenant connecté avec Holzma])


EDIT : Ajout des balises de code

3 réponses

Messages postés
32977
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
3 560
Bonjour,


voici le script que j'ai réalisé en .bat , le problème est que je n'ais jamais fait ce genre de script...

Ben si... vu que tu nous postes le script... c'est que tu l'as fait....... :-)

Quoi qu'il en soit, il faudra que tu sois plus précis dans ta question.
Quel est le souci rencontré ?
L'as tu testé via une invite de commande msdos ?
As tu des messages d'erreur ?

Perso, pour faire du mappage, j'utilise du vbscript.
Un truc du genre
Option Explicit
Dim strDriveLetter, strRemotePath
Dim objNetwork, objShell
Dim CheckDrive, AlreadyConnected, intDrive 
' The section sets the variables. 
strDriveLetter = "W:" 
strRemotePath = "\\serveur\www" 

' This sections creates two objects:
' objShell and objNetwork and counts the drives
Set objShell = CreateObject("WScript.Shell") 
Set objNetwork = CreateObject("WScript.Network") 
Set CheckDrive = objNetwork.EnumNetworkDrives() 

' This section deals with a For ... Next loop
' See how it compares the enumerated drive letters
' with strDriveLetter
On Error Resume Next
AlreadyConnected = False 
For intDrive = 0 To CheckDrive.Count - 1 Step 2 
If CheckDrive.Item(intDrive) =strDriveLetter _
Then AlreadyConnected =True
Next 

' This section uses the If = then, else logic
' This tests to see if the Drive is already mapped.
' If yes then disconnects
If AlreadyConnected = True then 
objNetwork.RemoveNetworkDrive strDriveLetter 
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath 

' The first message box
objShell.PopUp "Drive " & strDriveLetter & _
"Disconnected, then connected successfully." 
Else
objNetwork.MapNetworkDrive strDriveLetter, strRemotePath 
objShell.PopUp "Drive " & strDriveLetter & _
" connected successfully." End if 
WScript.Quit 

1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
12
Date d'inscription
jeudi 7 juin 2018
Statut
Membre
Dernière intervention
21 juin 2018

Premièrement merci de ta réponse. le truc est que j'ai pour obligation d’écrire le script en .bat (c'est la contrainte). voici un screen de ce que j'obtiens en exécutant le programme https://i.imgur.com/G1mmriA.png
Messages postés
32977
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
3 560
Il me semble qu'il te faut utiliser, pour les comparaisons, les EQ ou NEQ ....
Exemple :
if %errorlevel% eq 0 (
    echo Informations : connexion avec Ardis déjà établie
    )

1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
13531
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
15 juin 2021
4 396
Bonsoir,

Au lieu de tester ERRORLEVEL tu peux aussi utiliser && et ||
Tes morceaux de code qui se répètent peuvent se remplacer par une fonction (:test)

Voilà ton code revu et optimisé :
@ECHO OFF 

TITLE Teste la connexion

Rem -----------------------------------
:: On Ping ardis
call :test "Nom_PC_ARDIS" "E:"

Rem -----------------------------------
:: On Ping Holzma
call :test "Nom_PC_Holzma" "G:"

pause
exit /b 0

:test
PING %~1 && ECHO Informations : [connexion avec %~1 déjà établie] || (
NET USE %~2 \\%~1\ardis /PERSISTENT:yes
ECHO Informations : [vous êtes maintenant connecté avec %~1]
)

goto :eof


1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci