Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb netsh et passerelle

2 réponses
Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
Bonjour !


Lorsque j'utilise Netsh pour changer uniquement la passerelle, Vista
détruit ma config IP (pas de problème sous XP).

Par exemple, si je fais :
netsh interface ip set address name="Connexion au réseau local"
gateway=192.168.1.2

Je perd l'adresse IP et le masque.


Par contre, si je précise tout, ça fonctionne. Par exemple :
netsh interface ip set address name="Connexion réseau sans fil"
static 192.168.1.101 255.255.255.0 192.168.1.2


Pour l'instant, je suis donc obligé de mettre l'adresse IP complète
(adresse + masque + passerelle) pour que ça fonctionne.
Or, je voudrais pouvoir scripter des changements uniquement de la
passerelle.
J'ai bien une solution, en utilisant netsh + find + for ; mais une
syntaxe simple me conviendrait mieux.


Merci d'avance.

@-salutations

Michel Claveau

2 réponses

Avatar
Jean-Claude BELLAMY
"MCI (ex do ré Mi chel la si do) [MVP]" a
écrit dans le message de news:
Bonjour !


Lorsque j'utilise Netsh pour changer uniquement la passerelle, Vista
détruit ma config IP (pas de problème sous XP).

Par exemple, si je fais :
netsh interface ip set address name="Connexion au réseau local"
gateway2.168.1.2

Je perd l'adresse IP et le masque.


Par contre, si je précise tout, ça fonctionne. Par exemple :
netsh interface ip set address name="Connexion réseau sans fil" static
192.168.1.101 255.255.255.0 192.168.1.2


Pour l'instant, je suis donc obligé de mettre l'adresse IP complète
(adresse + masque + passerelle) pour que ça fonctionne.
Or, je voudrais pouvoir scripter des changements uniquement de la
passerelle.
J'ai bien une solution, en utilisant netsh + find + for ; mais une syntaxe
simple me conviendrait mieux.


Et un ch'tiot script VBS, çà ne te conviendrait pas ?
Avec WMI et la classe "Win32_NetworkAdapterConfiguration" et sa méthode
"SetGateways", ce n'est pas mal, n'est-il pas ?

J'ai écrit un script WSF qui met tout çà à profit.
http://www.bellamyjc.org/download/vbs/setgateway.wsf" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.bellamyjc.org/download/vbs/setgateway.wsf



Cependant il y a un truc bizarre au niveau de la définition des métriques
sous VISTA ...
En effet, quand j'affecte des passerelles et leurs métriques associées, tout
se passe bien
p.ex.
setgateway /card:"Connexion réseau Intel(R) PRO/100" 192.168.0.2 11
192.168.0.1 25
Si j'ouvre les propriétés de la carte réseau, avancés, je retrouve bien ces
valeurs

Or si je veux lire avec mon script les adresses des passerelles et leurs
métriques, j'obtiens bien les adresses, mais les métriques sont
majorées de 20 ou de 30 !
setgateway /card:"Connexion réseau Intel(R) PRO/100"
Ordinateur POUDENAS
Carte Connexion réseau Intel(R) PRO/100
2 adresses passerelles
192.168.0.2 (31) (au lieu de 11)
192.168.0.1 (55) (au lieu de 25)

Sous XP, je n'ai pas ces problèmes !

Et en fouilant sur le net, je viens de découvrir un forum MSDN
(http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID#08488&SiteID=1) qui
fait mention de problèmes avec "SetGateways" uniquement sous VISTA !
Et un intervenant conclut par
"I need MS verification of this problem. I think it is a very critical
bug"
Et le modérateur (Bruce Baker) a suggéré de procéder à une "escalade" du
problème.

Cela est assez récent, vu que çà date de fin octobre 2007 ...


Si çà t'amuse t'investiguer dans cette voie ... ;-)


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org

Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
Bonsoir !

En fait, j'utilise actuellement le batch suivant (sous Vista) :

::fichier setgate.bat
@echo off
if [%1]==[] goto :PROBLEM
setlocal
for /F "usebackq tokens=2" %%a in (`arp -a ^|find "Interface"`) do
set IP=%%a
netsh interface ip set address name="Connexion au réseau local"
static %IP% 255.255.255.0 %1
endlocal
goto :EOF

:PROBLEM
echo.
echo Usage : setgate.bat xx.xx.xx.xx
echo (xx.xx.xx.xx etant la passerelle a utiliser)
echo.


Il contourne le problème de Netsh, en réutilisant l'adresse IP courante
(récupérée avec arp -a |find "Interface" ).
Mais, je trouvais ça un poil complexe, à expliquer.

Ton script pourrait faire l'affaire, mais, comme je dois commenter tout
ça à des clients, ça risque d'être coton... Merci quand même.

Sinon, je ne comprends pas pourquoi MS, en ré-écrivant Netsh pour Vista,
n'a pas maintenu une compatibilité ascendante dans la syntaxe. Il
faudrait aussi vérifier si ce n'est pas lié au MUI (à la version
française), car c'est maintenant un doute qui devient courant.


@-salutations

Michel Claveau