Détection d'un reséau et lancement d'un script

Bonjour all,

Voilà depuis quelques jours que je travaille sur un batch de détection de réseaux.

Objectif : Créer un script de détection de réseaux me permettant de mapper les lecteurs réseau selon le site

Ma société a actuellement 2 sites que nous appellerons CAU et CHY. Ces 2 sites utilisent chacun 1 sous-réseau spécifique relié entre eux par un VPN. Les PC contenus sur ces 2 sites sont emmenés à être déplacé de l'un à l'autre.Les comptes utilisateur sont génériques pour les 2 sites. J'ai actuellement déjà créé les 2 scripts de mappage lecteur réseaux.

CAU : 192.168.100.0/24
CHY : 192.168.200.0/24

Contrainte:
- On ne peut pas se servir des comptes utilisateur comme référence
- On ne peut pas différencier les sites avec les contrôleurs de domaine
- Les PC ont souvent plusieurs cartes réseau

Idée schématisée du script
-------------------------
Y a t'il une IP qui correspond a mon réseau CAU => Oui je lance alors le script CAU mappage
Y a t'il une IP qui correspond a mon réseau CHY => Oui je lance alors le script CHY mappage
Sinon je ferme mon script

Batch ou vbs n'a pas d'importance pour moi. J'ai travaillé sur un batch, car ne maitrisant aucun des 2 j'ai alors fait au plus simple.

@echo off

for /F "delims=," %%i in ('ipconfig /all^|find "192.168.100"') do set ADRIP=CAU

for /F "delims=," %%i in ('ipconfig /all^|find "192.168.200"') do set SITE=CHY

echo %SITE%

If SITE=="CAU" \\controleurAD\netlogon\mappageCAU else goto manuel
If SITE=="CHY" \\controleurAD\netlogon\mappageCHY else goto manuel

:manuel
set /p optionMenu="Site CAU ou CHY ? "
if "%optionMenu%"=="cau" goto CAU
if "%optionMenu%"=="chy" goto CHY
goto eof

:CAU
Echo CAU
\\controleurAD\netlgon\mappageCAU
goto eof

:CHY
Echo CHY
\\controleurAD\netlgon\mappageCHY
goto eof

:eof



Je pense qu'il me manque un système de conditions, car il ne vérifie pas le résultat et affecte la valeur de la variable SITE dans l'ordre sur script.

2 réponses

  1. Contributeur
    hello
    la boucle for me semble inutile puisqu'il suffit de détecter 1 adresse
    set SITE=inconnu
    ipconfig /all | find "192.168.100" > NUL
    if %ERRORLEVEL% EQU 0 set SITE=CAU
    ipconfig /all | find "192.168.200" > NUL
    if %ERRORLEVEL% EQU 0 set SITE=CHY
    ...
    If "%SITE%"=="CAU" (\\controleurAD\netlogon\mappageCAU) else (goto manue)l
    If "%SITE%"=="CHY" (\\controleurAD\netlogon\mappageCHY) else (goto manuel)
    ...
    voir help if pour la syntaxe de if ..else sur la même ligne
    1
    1. Super merci beaucoup pour ton aide dubcek

      Ayant des problèmes sur les le sous-réseau j'ai donc choisi d'indiquer ma recherche entrant l'ip de la passerelle

      Script final

      @echo off
      
      set SITE=0
      ipconfig /all | find "192.168.100.1" > NUL
      if %ERRORLEVEL% EQU 0 set SITE=CAU
      ipconfig /all | find "192.168.200.1" > NUL
      if %ERRORLEVEL% EQU 0 set SITE=CHY
      
      If "%SITE%"=="CAU" (\\controleurAD\netlogon\MappageCAU.vbs)
      If "%SITE%"=="CHY" (\\controleurAD\netlogon\MappageCHY.vbs)
      If "%SITE%"=="0" goto manuel
      
      goto eof
      
      :manuel
      set /p optionMenu="Site CAU ou CHY ? "
      if "%optionMenu%"=="cau" goto CAU
      if "%optionMenu%"=="chy" goto CHY
      goto erreur
      
      :CAU
      \\controleurAD\netlogon\MappageCAU.vbs
      goto eof
      
      :CHY
      \\controleurAD\netlogon\MappageCHY.vbs
      goto eof
      
      :erreur
      echo erreur dans la saisie merci d'entrer le site "cau" ou "chy"
      goto manuel
      
      :eof
      


      Dernier problème je dois trouvé le moyen d'appeler mon fichier vbs sans qu'il me demande l'autorisation de l'exécuter. Car actuellement le Windows m'affiche un message d'avertissement.
      0