Connexion automatique a 2 pc de productions

Fermé
Neo_ Messages postés 12 Date d'inscription jeudi 7 juin 2018 Statut Membre Dernière intervention 21 juin 2018 - Modifié le 7 juin 2018 à 11:26
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 - 7 juin 2018 à 20:03
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
A voir également:

3 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
7 juin 2018 à 11:29
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
Neo_ Messages postés 12 Date d'inscription jeudi 7 juin 2018 Statut Membre Dernière intervention 21 juin 2018
7 juin 2018 à 15:47
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
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
7 juin 2018 à 17:39
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
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
7 juin 2018 à 20:03
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