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

Fermé
Maveric33 Messages postés 3 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 7 mars 2014 - 7 mars 2014 à 12:05
Maveric33 Messages postés 3 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 7 mars 2014 - 7 mars 2014 à 16:51
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

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 7/03/2014 à 13:41
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
Maveric33 Messages postés 3 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 7 mars 2014
7 mars 2014 à 16:51
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