Fusionner 2 fichier batch activer/désactiver proxy

Fermé
adgm1 Messages postés 255 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 9 avril 2024 - 16 sept. 2021 à 23:46
brucine Messages postés 14291 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 23 avril 2024 - 27 sept. 2021 à 10:35
Bonjour
je cherche un moyen de fusionner 2 fichier batch l'un qui désactive le proxy et l'autre qui l'active tout en se connectant à un wifi. Pour n'avoir à executer qu'un seul fichier.
L'idée serait d'utiliser une fonction "if" pour que si le wifi est connecté sur tel reseau (necessitant un proxy) alors le proxy se désactive. Et si le proxy est activé alors il faut le désactiver.

En gros quand je suis dans l'entreprise qui necessite le proxy et que je vois qu'internet est bloqué alors c'est qu'il manque le proxy donc j'execute le batch qui va activer le proxy. Et quand je suis chez moi je re-execute le batch qui cette fois va désactiver le proxy (puisque le batch aura identifié le proxy comme actif)

voici les commandes des 2 fichiers qui peuvent aider à mieux comprendre

BATCH 1 (active le proxy et connecte au wifi d'entreprise)
AJOUT DU PROXY INTERNET EXPLORER
Reg Add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d 172.10.0.1:3128 /f

DEMANDE DE PRISE EN COMPTE DU PROXY INTERNET EXPLORER
Reg Add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 00000001 /f


netsh wlan set hostednetwork mode=allow ssid="WIFI-boulot" key="MotDePasse"
netsh wlan connect ssid=WIFI-boulot name=WIFI-boulot

@echo off
pause


BATCH 2 (désactive le proxy)
DESACTIVER PROXY INTERNET EXPLORER
Reg Add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f

@echo off
pause
A voir également:

5 réponses

brucine Messages postés 14291 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 23 avril 2024 1 812
17 sept. 2021 à 09:14
Bonjour,

En transformant les sorties "echo" de ce script en conditionnelles lançant l'un ou l'autre de tes scripts?

https://www.manageengine.com/products/desktop-central/script-templates/network-settings/check-proxy-settings.html
0
adgm1 Messages postés 255 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 9 avril 2024 10
17 sept. 2021 à 12:21
oui
mais je suis pas sur de comprendre les ligne de commande il faut mettre "if false"? ou "if value=... "?
J'imagine que je dois recopier certaines lignes en double pour que le script lance telle action

Merci pour le lien mais je vois pas bien ce que le script proposé permet d'obtenir
0
brucine Messages postés 14291 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 23 avril 2024 1 812
17 sept. 2021 à 13:45

@echo off

CHOICE /C MB /M "Entrer [M] MAISON ou [B] BOULOT"
IF %ERRORLEVEL% EQU 2 goto BOULOT
IF %ERRORLEVEL% EQU 1 goto MAISON

:BOULOT
FOR /F "tokens=3" %%i in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable ^| find "ProxyEnable"') do set enable=%%i
if %enable% == 0x1 (
Echo Proxy déjà Activé
pause
) else (
Reg Add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d 172.10.0.1:3128 /f
Reg Add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 00000001 /f
netsh wlan set hostednetwork mode=allow ssid="WIFI-boulot" key="MotDePasse"
netsh wlan connect ssid=WIFI-boulot name=WIFI-boulot
)
GOTO :END

:MAISON
FOR /F "tokens=3" %%i in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable ^| find "ProxyEnable"') do set enable=%%i
if %enable% == 0x1 (
Reg Add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
) else (
Echo Proxy déjà désactivé
)
pause
GOTO :END

:END
0
adgm1 Messages postés 255 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 9 avril 2024 10
17 sept. 2021 à 17:34
Excellent merci
j'avais meme pas envisagé ce genre de saisie avec un choix entre maison ou boulot. bonne idée.
En tout cas ça marche, j'ai rajouté des timeout et du texte à afficher pour plus de clarté. Le tour est joué, un seul fichier au lieu de 2, le top
0
adgm1 Messages postés 255 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 9 avril 2024 10
25 sept. 2021 à 18:56
bonjour je souhaite ajouter une commande pour mon fichier qui pourrait afficher un message d'erreur lorsque le wifi du boulot n'est pas disponible
Car dans mon batch pour le moment que le reseau wifi soit accessible ou non le même message s'affiche "connecté au wifi du boulot".
L'idée serait d'afficher "connexion au wifi impossible" si une erreur apparait du type " il n'existe aucun profil wifi-boulot affecté à l'interface", ou si le wifi n'est pas activé (l'interface de réseau local sans fil est éteinte...).


:BOULOT
FOR /F "tokens=3" %%i in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable ^| find "ProxyEnable"') do set enable=%%i
if %enable% == 0x1 (
Echo Proxy deja Actif
timeout /t 1 >nul
) else (


Reg Add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f
Reg Add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d 172.0.0.1:3128 /f

Echo ##############
Echo # #
Echo # proxy active #
Echo # #
Echo #############
)
timeout /t 2 >nul

netsh wlan set hostednetwork mode=allow ssid="WIFI-boulot" key="MotDePasse"
netsh wlan connect ssid=WIFI-boulot name=WIFI-boulot

Echo ############
Echo # #
Echo # connecte au wifi #
Echo # du boulot #
Echo # #
Echo ############
)
timeout /t 4 >nul
GOTO :END
0
brucine Messages postés 14291 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 23 avril 2024 1 812
26 sept. 2021 à 18:47
Bonjour,

Je ne suis pas sûr du contexte: le PC "Boulot" est-il censé, en dehors de l'activation Wifi, être toujours allumé (peut-on contrôler cela visuellement?) et par ailleurs relié à une connexion filaire?

Dans la négative, il faudra tester "l'existence" de la machine par exemple par une commande ping.
Une commande netsh peut peut-être aussi faire le job mais il y a 2 hics: je n'ai pas (sauf machines virtuelles et Raspberry non Windows) de machine de test et, de manière plus générale, netsh ne produit à ma connaissance pas de code d'erreur.

On va s'intéresser dans un premier temps à l'hypothèse seul Wifi non activé et il nous faut donc une pirouette pour que netsh nous raconte quelque chose; il y a des solutions via wmic ou Powershell, mais les solutions les plus simple consistent à rediriger via find ou findstr.

Par exemple le principe est que netsh wlan show interfaces ne nous renvoie une ligne "SSID" et une ligne "Signal" que si le Wifi est activé (et qu'il n'y a qu'un adaptateur Wifi actif sur le machine cible...)

On pourra donc écrire l'une des 2 syntaxes netsh suivantes:


netsh wlan show interfaces | findstr "SSID"
IF %ERRORLEVEL% EQU 0 (
GOTO BOULOT
) ELSE (
GOTO OFFLINE
)

netsh wlan show interfaces | Findstr /c:"Signal" && GOTO BOULOT || GOTO OFFLINE

:OFFLINE
ECHO PC éteint ou Connexion Wifi désactivée
ECHO Corriger ou Quitter
CHOICE /C QB /M "Entrer [Q] QUITTER ou [B] BOULOT"
IF %ERRORLEVEL% EQU 2 goto BOULOT
IF %ERRORLEVEL% EQU 1 goto END

:BOULOT

:END
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
adgm1 Messages postés 255 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 9 avril 2024 10
Modifié le 27 sept. 2021 à 10:10
merci pour cette suggestion
en fait je pensais à un truc plus simple qui permet, tant que le pc n'est pas connecté au wifi, d afficher un message qui indique que la connexion n'a pas pu se faire, quelque soit le pb. Je voyais donc plus une commande qui dise si connexion wifi ok alors message = connecté au wifi", si connexion non établie alors message ="connexion impossible"

Boulot n'est pas un pc mais un contexte. C'est soit boulot pour proxy actif, soit maison pour proxy inactif.
en tout cas un pc qui se trouve au boulot est un pc portable donc qui demande toujours une connexion wifi, jamais filaire.
0
brucine Messages postés 14291 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 23 avril 2024 1 812
27 sept. 2021 à 10:35
Bonjour,

Comme dit, je n'ai pas de machine de test, donc pas de possibilité de tester le message de sortie de:
netsh wlan connect ssid=WIFI-boulot name=WIFI-boulot | findstr tartempion
avec selon l'existence de tartempion && ECHO Wifi activé || ECHO Connexion impossible

Il faudra de toute façon bien tester si la connexion Wifi est faite ou non.
A défaut de trouver le texte tartempion idoine on aurait alors, réduit à sa plus simple expression:


netsh wlan show interfaces | findstr "SSID"
IF %ERRORLEVEL% EQU 0 (
ECHO Wifi Activé
) ELSE (
ECHO Connexion Impossible
)
pause


Mais il faudra bien à suivre activer le Wifi s'il ne l'est pas, donc soit le faire en "manuel", soit brancher sur une étiquette adaptée.
0