Connexion automatique a 2 pc de productions

Neo_ Messages postés 13 Statut Membre -  
barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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
    1. Neo_ Messages postés 13 Statut Membre
       
      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
  2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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
  3. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    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