[Ex] Gestionnaire de profils TCP/IP
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[Ex] Gestionnaire de profils TCP/IP
Bonjour.
En tant que technicien réseau (et accessoirement joueur en lan) j'ai souvent besoin de changer d'adresse IP sur mon PC
J'ai fait ce petit prog qui permet de sauvegarder et restaurer des profils TCP/IP à la volée
Il est assez inspiré de ce que j'ai trouvé sur ce forum ou sont grand frère anglophone.
Je vous le propose pour l'un de mes premiers posts
J'aurais voulu avoir votre avis, des idées pour l'améliorer, tout ce qui pourrait m'aider.
D'avance merci.
Arek.
En tant que technicien réseau (et accessoirement joueur en lan) j'ai souvent besoin de changer d'adresse IP sur mon PC
J'ai fait ce petit prog qui permet de sauvegarder et restaurer des profils TCP/IP à la volée
Il est assez inspiré de ce que j'ai trouvé sur ce forum ou sont grand frère anglophone.
Je vous le propose pour l'un de mes premiers posts
J'aurais voulu avoir votre avis, des idées pour l'améliorer, tout ce qui pourrait m'aider.
D'avance merci.
Arek.
- Fichiers joints
-
- IP_Profil_Manager_v1.au3
- (13.41 Kio) Téléchargé 1168 fois
- Tlem
- Site Admin
- Messages : 11773
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [Ex]Gestionnaire de profils TCP/IP
Trés bien.
J'ai juste noté un comportement étrange si on choisit un profil puis que l'on clique lire.
Le masque de sous réseau passe à 255.0.0.0 !!!
Je suis en DHCP.
Dans mon cas (PC portable), j'ai carte réseau 1394 et Windows Mobile-based Device qui viennent se rajouter à la liste de mes contrôleurs réseau.
Vu le nombre de bouton, un bouton quitter ne serait pas de trop.
Il faudrait mettre le combo de la carte réseau en $CBS_DROPDOWNLIST pour qu'on ne puisse pas modifier le nom de la carte.
L'utilisation de la commande Netsh risque de poser problème sous Windows Vista.
J'utilisais la même chose que vous pour connaitre l'état de la carte réseau, mais il semble que la commande ne soit pas totalement identique sous Vista (à tester).
Perso, je suis passé au WMI.
J'ai juste noté un comportement étrange si on choisit un profil puis que l'on clique lire.
Le masque de sous réseau passe à 255.0.0.0 !!!
Je suis en DHCP.
Dans mon cas (PC portable), j'ai carte réseau 1394 et Windows Mobile-based Device qui viennent se rajouter à la liste de mes contrôleurs réseau.
Vu le nombre de bouton, un bouton quitter ne serait pas de trop.
Il faudrait mettre le combo de la carte réseau en $CBS_DROPDOWNLIST pour qu'on ne puisse pas modifier le nom de la carte.
L'utilisation de la commande Netsh risque de poser problème sous Windows Vista.
J'utilisais la même chose que vous pour connaitre l'état de la carte réseau, mais il semble que la commande ne soit pas totalement identique sous Vista (à tester).
Perso, je suis passé au WMI.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [Ex]Gestionnaire de profils TCP/IP
Testé sur Windows Vista Pro sp1, sa fonctionne.
Quand on change de carte réseau dans la combobox il faudrait que sa rafraichisse automatiquement les labels !
Sinon rien à dire !
Quand on change de carte réseau dans la combobox il faudrait que sa rafraichisse automatiquement les labels !
Sinon rien à dire !
Re: [Ex]Gestionnaire de profils TCP/IP
Merci pour vos reponses rapides.
- pour le comportement étrange, je l'ai effectivement reproduit... mais une seule fois, et je n'y arrive plus (!!??!)
- Pour les interface windows mobile et 1394, je ne les volontairement pas enlevé, 1 elle ne me gène pas et 2, par peur de masquer une interface exotique mais configurable.
- Pour le bouton sortir, je me disais que justement vu le nombre de boutons, il n'était pas nécéssaire...
- $CBS_DROPDOWNLIST Excelente idée, c'est ajouté, c'est vrai que c'est moins risqué !
- Ne fonctionnant que sous XP, je n'ai pas pus tester sous vista (merci VooDoo), mais selon les sites qui parlent de netsh, il n'y avais pas de raison que cela ne fonctionne pas.
- WMI, hummm, ça a l'air très alléchant comme système, je vais regarder ça de plus près
- pour le comportement étrange, je l'ai effectivement reproduit... mais une seule fois, et je n'y arrive plus (!!??!)
- Pour les interface windows mobile et 1394, je ne les volontairement pas enlevé, 1 elle ne me gène pas et 2, par peur de masquer une interface exotique mais configurable.
- Pour le bouton sortir, je me disais que justement vu le nombre de boutons, il n'était pas nécéssaire...
- $CBS_DROPDOWNLIST Excelente idée, c'est ajouté, c'est vrai que c'est moins risqué !
- Ne fonctionnant que sous XP, je n'ai pas pus tester sous vista (merci VooDoo), mais selon les sites qui parlent de netsh, il n'y avais pas de raison que cela ne fonctionne pas.
- WMI, hummm, ça a l'air très alléchant comme système, je vais regarder ça de plus près
Je vois pas bien de quoi il s'agit ! un peu plus de détail ?Quand on change de carte réseau dans la combobox il faudrait que sa rafraichisse automatiquement les labels !
- Tlem
- Site Admin
- Messages : 11773
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [Ex]Gestionnaire de profils TCP/IP
voodoo voulait simplement dire, au lieu de cliquer l'interface dans le combo puis lecture, de regrouper le tout sur l'action de la sélection de l'interface.
Pour la récupération d'info par le WMI je vais essayer de mettre la fonction que je me suis créé dans la partie Fonctions et UDF.
Pour la récupération d'info par le WMI je vais essayer de mettre la fonction que je me suis créé dans la partie Fonctions et UDF.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [Ex]Gestionnaire de profils TCP/IP
Coucou,
Alors dans ce cas ci, c'est pas trop dans mon concept. Le profil selectionné est enregistré pour une interface réseau particulière (permet une config rapide), mais rien ne doit empécher de selectionner une autre au besoin (entre l'ethernet et le wifi par exemple, enfin c'est comme ça que je le vois) pour appliquer les paramètres.
Je suis pas sur d'être très clair, mais en gros, ce serait gagner une fonction d'un coté pour en perdre une de l'autre.
En tout cas merci pour les idées.
D'ailleur, il y a une petite mise à jour qui arrive bientôt
Alors dans ce cas ci, c'est pas trop dans mon concept. Le profil selectionné est enregistré pour une interface réseau particulière (permet une config rapide), mais rien ne doit empécher de selectionner une autre au besoin (entre l'ethernet et le wifi par exemple, enfin c'est comme ça que je le vois) pour appliquer les paramètres.
Je suis pas sur d'être très clair, mais en gros, ce serait gagner une fonction d'un coté pour en perdre une de l'autre.
En tout cas merci pour les idées.
D'ailleur, il y a une petite mise à jour qui arrive bientôt
- Tlem
- Site Admin
- Messages : 11773
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [Ex]Gestionnaire de profils TCP/IP
Perso, je verrais plutôt consulter les paramètres de chaque interface simplement en faisant le clic dessus et si le paramètre ne convient pas, alors on applique le profil sélectionné.
Enfin ... ça me semble plus logique.
Enfin ... ça me semble plus logique.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [Ex]Gestionnaire de profils TCP/IP
C'est une vision qui se défend, mais elle ne correspond pas à mon utilisation.
En gros cette application me sert principalement lors de mes déplacements chez mes clients.
Pour ceux d'entre eux qui me le permettent, je me connecte à leurs réseaux avec mon matériel (tous mes outils sont installés sur mon portable), il est pour des raisons assez évidentes, pas simples de noter et/ou de se souvenir des configurations de chaque client. Du coup, avec mon script, j'ai enregistré tous mes paramètres, et je peux les réappliquer facilement en quelques secondes, sur la carte réseau qui convient. La fonction de lecture n'est qu'un accessoire, il m'est rare d'avoir à lire une config réseau déjà configurée sur mon matériel, et l'enregistrement d'une config DHCP à un intérêt... limité.
Voila pour la petite explication.
Ensuite, libre à chacun de l'adapter à son besoin.
et si la demande est là, je peux envisager d'ajouter ce genre d'options, pourquoi pas.
En gros cette application me sert principalement lors de mes déplacements chez mes clients.
Pour ceux d'entre eux qui me le permettent, je me connecte à leurs réseaux avec mon matériel (tous mes outils sont installés sur mon portable), il est pour des raisons assez évidentes, pas simples de noter et/ou de se souvenir des configurations de chaque client. Du coup, avec mon script, j'ai enregistré tous mes paramètres, et je peux les réappliquer facilement en quelques secondes, sur la carte réseau qui convient. La fonction de lecture n'est qu'un accessoire, il m'est rare d'avoir à lire une config réseau déjà configurée sur mon matériel, et l'enregistrement d'une config DHCP à un intérêt... limité.
Voila pour la petite explication.
Ensuite, libre à chacun de l'adapter à son besoin.
et si la demande est là, je peux envisager d'ajouter ce genre d'options, pourquoi pas.
- Tlem
- Site Admin
- Messages : 11773
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [Ex]Gestionnaire de profils TCP/IP
Heuu, je disais ça simplement parce qu'il suffit dans ce cas d'associé la sélection de l'interface au bouton de lecture.
Pour cela rajoutez ceci dans la fonction _CreateGUI à la suite des autres GUICtrlSetOnEvent :
Par contre, il faudra sans doute revoir la fonction de lecture des paramètres, car elle semble ne pas fonctionner correctement.
Pour cela rajoutez ceci dans la fonction _CreateGUI à la suite des autres GUICtrlSetOnEvent :
Code : Tout sélectionner
GUICtrlSetOnEvent($CARD, "_GetCurrent")
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [Ex]Gestionnaire de profils TCP/IP
Eh !
Je viens de tester et comme je le pensais, pour activer la lecture auto (qui fonctionne bien), je doit "perdre" le choix auto de la carte par le profil, et ça c'est génant, car il faudra systématiquement choisir la carte manuellement avant d'appliquer une config, perte de temps, risque d'erreur, ça ne me convient pas.
j'ajouterai néanmoins cette fonctionnalité en tant qu'option paramètrable dans une future version.
Il faut bien satisfaire tout le monde...
Est il possible d'en savoir plus sur le problème rencontré?
Je ne rencontre pas ce souci
A bientôt. Arek
Je viens de tester et comme je le pensais, pour activer la lecture auto (qui fonctionne bien), je doit "perdre" le choix auto de la carte par le profil, et ça c'est génant, car il faudra systématiquement choisir la carte manuellement avant d'appliquer une config, perte de temps, risque d'erreur, ça ne me convient pas.
j'ajouterai néanmoins cette fonctionnalité en tant qu'option paramètrable dans une future version.
Il faut bien satisfaire tout le monde...
Est il possible d'en savoir plus sur le problème rencontré?
Je ne rencontre pas ce souci
A bientôt. Arek
Re: [Ex]Gestionnaire de profils TCP/IP
hum je ne dirais plus rien
Il y a deux choses dans le programme. D'abord les profils, quand on clique dessus ils mettent à jour les labels ip, Masque, passerelle...
Ensuite les cartes qu'il faut sélectionner et en appuyant sur le bouton lire cela maj les labels.
Le bouton lire parait inutile, si on veut un profil on clique sur le profil à gauche et il l'affiche directement, si l'on veut consulter le paramétrage courant de la carte on devrait juste devoir la sélectionner dans la liste et il devrait nous afficher la config de la carte directement...comme pour les profils en faite.
Il y a deux choses dans le programme. D'abord les profils, quand on clique dessus ils mettent à jour les labels ip, Masque, passerelle...
Ensuite les cartes qu'il faut sélectionner et en appuyant sur le bouton lire cela maj les labels.
Le bouton lire parait inutile, si on veut un profil on clique sur le profil à gauche et il l'affiche directement, si l'on veut consulter le paramétrage courant de la carte on devrait juste devoir la sélectionner dans la liste et il devrait nous afficher la config de la carte directement...comme pour les profils en faite.
Re: [Ex]Gestionnaire de profils TCP/IP
ça j'adore !VooDoo a écrit :on devrait juste devoir la sélectionner dans la liste et il devrait nous afficher la config de la carte directement...comme pour les profils en faite.
- Tlem
- Site Admin
- Messages : 11773
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [Ex] Gestionnaire de profils TCP/IP
Ben, c'est qu'est-ce que j'dit !!!
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
- Status : Hors ligne
Re: [Ex] Gestionnaire de profils TCP/IP
pour actualiser fait un controlhide et controlshow de ta gui, ca va actualiser
Re: [Ex] Gestionnaire de profils TCP/IP
Salut !
Je suis nouveau et totalement ignare !
J'essayais de faire un script en réinjectant des paramètres réseaux à l'aide d'un fichier txt suite à la commande : netsh -c interface dump
Mais ton outil me plait beaucoup. Cependant, comment le modifier pour le faire exécuter en tant qu'admin et rajouter des paramètres (d'autres @ dns)?
Merci !
Je suis nouveau et totalement ignare !
J'essayais de faire un script en réinjectant des paramètres réseaux à l'aide d'un fichier txt suite à la commande : netsh -c interface dump
Mais ton outil me plait beaucoup. Cependant, comment le modifier pour le faire exécuter en tant qu'admin et rajouter des paramètres (d'autres @ dns)?
Merci !
- Tlem
- Site Admin
- Messages : 11773
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [Ex] Gestionnaire de profils TCP/IP
L'appel à la commande #RequireAdmin doit normalement suffire à demander les droit admin pour l'exécution du script.
Sinon allez jetez un oeil ici : http://www.autoitscript.fr/forum/viewto ... 8967#p8967
Sinon allez jetez un oeil ici : http://www.autoitscript.fr/forum/viewto ... 8967#p8967
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [Ex] Gestionnaire de profils TCP/IP
J'ai utilisé ton script pour en crée un autre. La, tu rentre les paramètres à la main une fois pour toute. Je l'associe avec une checklist pour la configuration d'ordinateur à la chaine. Enfin bref voici :
Puis j'ai crée un autre script toujours pour la configuration d'ordinateur à la chaine pour changer le nom de l'ordinateur et son groupe de travail.
Puis j'ai crée un autre script toujours pour la configuration d'ordinateur à la chaine pour changer le nom de l'ordinateur et son groupe de travail.
- Fichiers joints
-
- automatisation config pc.au3
- (1.44 Kio) Téléchargé 572 fois
-
- automatisation configuration IP.au3
- (2.78 Kio) Téléchargé 605 fois
Re: [Ex] Gestionnaire de profils TCP/IP
Bonjour tout le monde,
Je continue sur ce post crée par Arek en 2009(c’est loin quand même) qui m'a été d'une très grande utilité pour développer un script qui renomme mes deux carte réseau carte1 = fmc_l, carte2 = fmc_r et ensuite attribuer d’une façon statique les adresses ip:
fmc_l : 192.168.0.1 mask 255.255.255.0 pas besoin de passerelle
fmc_r : 192.168.1.1 mask 255.255.255.0 pas besoin de passerelle
Même si présentement dans le script, il attribue les passerelles. Bon
Je devrai tester mon script sur deux types de systèmes : winXP(32bits) et Windows7(64bits)(même si les chemins dans la base de registre sont les mêmes), pas encore tester sur win7 32bits.
Une fois adapté, le script marche bien sur winxp32bits sans aucun problème.
Mais une fois exécuté sous windows7 (64bits) j’avais les problèmes suivants :
- Le non de carte réseau change, mais le changement des paramètres TCP/IP ne se fait pas, la carte garde toujours l’ancienne paramétrage TCP/IP.
D’après quelque recherche sur le fonctionnement de la commande netsh, j’ai trouvé sur un forum http://superuser.com/questions/463096/c ... ith-script la commande suivante : ipconfig | find /I "Ethernet adapter" il marche sous les deux systèmes, cette commande retourne les noms des cartes réseaux.
Puisque le problème se pose juste avec windows7 (64bits), j’ai essaye de revoir la ligne de commande
Peut-être qu’il y’a une différence entre les deux systèmes. Mais c’était pas ça, c’est la même commande pour les deux systèmes.
Le problème était dans le système win7(64bits), alors même si mon script renomme ma carte réseau et je vois le changement dans le panneau de configuration, comme quoi ma carte réseau à le nouveau nom, mais lorsque j’exécute la commande ipconfig | find /I "Ethernet adapter", elle me retourne toujours l’ancien nom de la carte réseau. Si je change le nom manuellement la commande me retourne le nouveau nom. C’est pour cette raison que lorsque j’exécute
sous windows7(64bits), sachant que $NetCardDescriptors[$k][1] contient le nom de ma carte reseau avant le changement par le script, l'application des nouveaux parametres TCP/IP se fait sans aucun probleme.
Sous windows xp(32bits), c'est la meme commande, sauf que la variable qui contient le nom de la carte reseau est la nouvelle apres avoir renommer ma carte par le script aussi.
je n'ai pas encore comris pourquoi, mais en attendant des suggestions, remarques ou pistes de reflexion je vous laisse avec le code au complet:
Je continue sur ce post crée par Arek en 2009(c’est loin quand même) qui m'a été d'une très grande utilité pour développer un script qui renomme mes deux carte réseau carte1 = fmc_l, carte2 = fmc_r et ensuite attribuer d’une façon statique les adresses ip:
fmc_l : 192.168.0.1 mask 255.255.255.0 pas besoin de passerelle
fmc_r : 192.168.1.1 mask 255.255.255.0 pas besoin de passerelle
Même si présentement dans le script, il attribue les passerelles. Bon
Je devrai tester mon script sur deux types de systèmes : winXP(32bits) et Windows7(64bits)(même si les chemins dans la base de registre sont les mêmes), pas encore tester sur win7 32bits.
Une fois adapté, le script marche bien sur winxp32bits sans aucun problème.
Mais une fois exécuté sous windows7 (64bits) j’avais les problèmes suivants :
- Le non de carte réseau change, mais le changement des paramètres TCP/IP ne se fait pas, la carte garde toujours l’ancienne paramétrage TCP/IP.
D’après quelque recherche sur le fonctionnement de la commande netsh, j’ai trouvé sur un forum http://superuser.com/questions/463096/c ... ith-script la commande suivante : ipconfig | find /I "Ethernet adapter" il marche sous les deux systèmes, cette commande retourne les noms des cartes réseaux.
Puisque le problème se pose juste avec windows7 (64bits), j’ai essaye de revoir la ligne de commande
Code : Tout sélectionner
RunWait ('netsh interface ip set address name=' & $NetCardDescriptors[$k][1] & ' source=static addr=' & $Adresse_ip &$3ip &".1" & ' mask=' & $MASK & ' gateway=' & $GATE & ' gwmetric=0', "", @SW_HIDE )
Le problème était dans le système win7(64bits), alors même si mon script renomme ma carte réseau et je vois le changement dans le panneau de configuration, comme quoi ma carte réseau à le nouveau nom, mais lorsque j’exécute la commande ipconfig | find /I "Ethernet adapter", elle me retourne toujours l’ancien nom de la carte réseau. Si je change le nom manuellement la commande me retourne le nouveau nom. C’est pour cette raison que lorsque j’exécute
Code : Tout sélectionner
RunWait ('netsh interface ip set address name=' & $NetCardDescriptors[$k][1] & ' source=static addr=' & $Adresse_ip &$3ip &".1" & ' mask=' & $MASK & ' gateway=' & $GATE & ' gwmetric=0', "", @SW_HIDE )
Sous windows xp(32bits), c'est la meme commande, sauf que la variable qui contient le nom de la carte reseau est la nouvelle apres avoir renommer ma carte par le script aussi.
je n'ai pas encore comris pourquoi, mais en attendant des suggestions, remarques ou pistes de reflexion je vous laisse avec le code au complet:
Code : Tout sélectionner
Global $NetCardDescriptors[10][3]; 0 number
;1 Name of the card
;2 service name
Global $NetCardDescriptors_New [10][3]
Global $Adresse_ip = "192.168."
Global $Adresse_ip1 = "192.168.1.1"
Global $MASK = "255.255.255.0"
Global $GATE = "192.168.1.1"
Global $name = "fmc_"
Global $L = "l"
Global $R = "r"
AutoItSetOption("ExpandEnvStrings", 1)
_GetInfoReseau()
Func _GetInfoReseau()
AutoItSetOption("ExpandEnvStrings", 1)
Global $IniConfigs, $IniNetCard, $Network
Local $k = 0
Local $3ip = 0
Local $i
$i = 0
While 1
$i += 1
$NetCardDescriptors[$i][0] = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards", $i)
$NetCardDescriptors[$i][2] = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\" & $NetCardDescriptors[$i][0], "ServiceName")
$NetCardDescriptors[$i][1] = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & $NetCardDescriptors[$i][2] & "\Connection", "Name")
If @error <> 0 Then
ExitLoop
EndIf
$NetCardDescriptors[0][0] = $i
WEnd
For $i = 1 To $NetCardDescriptors[0][0]
if $i = 1 Then
$result = RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & $NetCardDescriptors[$i][2] & "\Connection", "Name", "REG_SZ", $name & $L)
EnvSet("Name", $name & $R)
EnvUpdate()
ElseIf $i = 2 Then
$result = RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & $NetCardDescriptors[$i][2] & "\Connection", "Name", "REG_SZ", $name & $R)
EnvSet("Name", $name & $L)
EnvUpdate()
ElseIf $i = $NetCardDescriptors[0][0] Then
ExitLoop
EndIf
Next
AutoItSetOption("ExpandEnvStrings", 1)
$j = 0
While 1
$j += 1
$NetCardDescriptors_New[$j][1] = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & $NetCardDescriptors[$j][2] & "\Connection", "Name")
If @error <> 0 Then
MsgBox (1,"error est la","error")
ExitLoop
EndIf
WEnd
For $k = 1 To 2 ;$NetCardDescriptors[0][0]
MsgBox (1,"name of card1",$NetCardDescriptors_New[$k][1]&$k)
MsgBox (1,"name of card2",$NetCardDescriptors[$k][1]&$k)
RunWait ('netsh interface ip set address name=' & $NetCardDescriptors[$k][1] & ' source=static addr=' & $Adresse_ip &$3ip &".1" & ' mask=' & $MASK & ' gateway=' & $GATE & ' gwmetric=0', "", @SW_HIDE )
$3ip += 1
Next
;$IsDHCP = False
;EndIf
MsgBox(48, "Changement", "La configuration a été appliquée", 2)
EndFunc ;==>_GetInfoReseau
Modifié en dernier par liberte75 le ven. 15 mars 2013 20:50, modifié 1 fois.
Re: [Ex] Gestionnaire de profils TCP/IP
Bonjour tout le monde,
Je continue sur ce post crée par Arek en 2009(c’est loin quand même) qui m'a été d'une très grande utilité pour développer un script qui renomme mes deux carte réseau carte1 = fmc_l, carte2 = fmc_r et ensuite attribuer d’une façon statique les adresses ip:
fmc_l : 192.168.0.1 mask 255.255.255.0 pas besoin de passerelle
fmc_r : 192.168.1.1 mask 255.255.255.0 pas besoin de passerelle
Même si présentement dans le script, il attribue les passerelles. Bon
Je devrai tester mon script sur deux types de systèmes : winXP(32bits) et Windows7(64bits)(même si les chemins dans la base de registre sont les mêmes), pas encore tester sur win7 32bits.
Une fois adapté, le script marche bien sur winxp32bits sans aucun problème.
Mais une fois exécuté sous windows7 (64bits) j’avais les problèmes suivants :
- Le non de carte réseau change, mais le changement des paramètres TCP/IP ne se fait pas, la carte garde toujours l’ancienne paramétrage TCP/IP.
D’après quelque recherche sur le fonctionnement de la commande netsh, j’ai trouvé sur un forum http://superuser.com/questions/463096/c ... ith-script la commande suivante : ipconfig | find /I "Ethernet adapter" il marche sous les deux systèmes, cette commande retourne les noms des cartes réseaux.
Puisque le problème se pose juste avec windows7 (64bits), j’ai essaye de revoir la ligne de commande
Peut-être qu’il y’a une différence entre les deux systèmes. Mais c’était pas ça, c’est la même commande pour les deux systèmes.
Le problème était dans le système win7(64bits), alors même si mon script renomme ma carte réseau et je vois le changement dans le panneau de configuration, comme quoi ma carte réseau à le nouveau nom, mais lorsque j’exécute la commande ipconfig | find /I "Ethernet adapter", elle me retourne toujours l’ancien nom de la carte réseau. Si je change le nom manuellement la commande me retourne le nouveau nom. C’est pour cette raison que lorsque j’exécute
sous windows7(64bits), sachant que $NetCardDescriptors[$k][1] contient le nom de ma carte reseau avant le changement par le script, l'application des nouveaux parametres TCP/IP se fait sans aucun probleme.
Sous windows xp(32bits), c'est la meme commande, sauf que la variable qui contient le nom de la carte reseau est la nouvelle apres avoir renommer ma carte par le script aussi.
je n'ai pas encore comris pourquoi, mais en attendant des suggestions, remarques ou pistes de reflexion je vous laisse avec le code au complet:
Je continue sur ce post crée par Arek en 2009(c’est loin quand même) qui m'a été d'une très grande utilité pour développer un script qui renomme mes deux carte réseau carte1 = fmc_l, carte2 = fmc_r et ensuite attribuer d’une façon statique les adresses ip:
fmc_l : 192.168.0.1 mask 255.255.255.0 pas besoin de passerelle
fmc_r : 192.168.1.1 mask 255.255.255.0 pas besoin de passerelle
Même si présentement dans le script, il attribue les passerelles. Bon
Je devrai tester mon script sur deux types de systèmes : winXP(32bits) et Windows7(64bits)(même si les chemins dans la base de registre sont les mêmes), pas encore tester sur win7 32bits.
Une fois adapté, le script marche bien sur winxp32bits sans aucun problème.
Mais une fois exécuté sous windows7 (64bits) j’avais les problèmes suivants :
- Le non de carte réseau change, mais le changement des paramètres TCP/IP ne se fait pas, la carte garde toujours l’ancienne paramétrage TCP/IP.
D’après quelque recherche sur le fonctionnement de la commande netsh, j’ai trouvé sur un forum http://superuser.com/questions/463096/c ... ith-script la commande suivante : ipconfig | find /I "Ethernet adapter" il marche sous les deux systèmes, cette commande retourne les noms des cartes réseaux.
Puisque le problème se pose juste avec windows7 (64bits), j’ai essaye de revoir la ligne de commande
Code : Tout sélectionner
RunWait ('netsh interface ip set address name=' & $NetCardDescriptors[$k][1] & ' source=static addr=' & $Adresse_ip &$3ip &".1" & ' mask=' & $MASK & ' gateway=' & $GATE & ' gwmetric=0', "", @SW_HIDE )
Le problème était dans le système win7(64bits), alors même si mon script renomme ma carte réseau et je vois le changement dans le panneau de configuration, comme quoi ma carte réseau à le nouveau nom, mais lorsque j’exécute la commande ipconfig | find /I "Ethernet adapter", elle me retourne toujours l’ancien nom de la carte réseau. Si je change le nom manuellement la commande me retourne le nouveau nom. C’est pour cette raison que lorsque j’exécute
Code : Tout sélectionner
RunWait ('netsh interface ip set address name=' & $NetCardDescriptors[$k][1] & ' source=static addr=' & $Adresse_ip &$3ip &".1" & ' mask=' & $MASK & ' gateway=' & $GATE & ' gwmetric=0', "", @SW_HIDE )
Sous windows xp(32bits), c'est la meme commande, sauf que la variable qui contient le nom de la carte reseau est la nouvelle apres avoir renommer ma carte par le script aussi.
je n'ai pas encore comris pourquoi, mais en attendant des suggestions, remarques ou pistes de reflexion je vous laisse avec le code au complet:
Code : Tout sélectionner
Global $NetCardDescriptors[10][3]; 0 number
;1 Name of the card
;2 service name
Global $NetCardDescriptors_New [10][3]
Global $Adresse_ip = "192.168."
Global $Adresse_ip1 = "192.168.1.1"
Global $MASK = "255.255.255.0"
Global $GATE = "192.168.1.1"
Global $name = "fmc_"
Global $L = "l"
Global $R = "r"
AutoItSetOption("ExpandEnvStrings", 1)
_GetInfoReseau()
Func _GetInfoReseau()
AutoItSetOption("ExpandEnvStrings", 1)
Global $IniConfigs, $IniNetCard, $Network
Local $k = 0
Local $3ip = 0
Local $i
$i = 0
While 1
$i += 1
$NetCardDescriptors[$i][0] = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards", $i)
$NetCardDescriptors[$i][2] = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\" & $NetCardDescriptors[$i][0], "ServiceName")
$NetCardDescriptors[$i][1] = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & $NetCardDescriptors[$i][2] & "\Connection", "Name")
If @error <> 0 Then
ExitLoop
EndIf
$NetCardDescriptors[0][0] = $i
WEnd
For $i = 1 To $NetCardDescriptors[0][0]
if $i = 1 Then
$result = RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & $NetCardDescriptors[$i][2] & "\Connection", "Name", "REG_SZ", $name & $L)
EnvSet("Name", $name & $R)
EnvUpdate()
ElseIf $i = 2 Then
$result = RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & $NetCardDescriptors[$i][2] & "\Connection", "Name", "REG_SZ", $name & $R)
EnvSet("Name", $name & $L)
EnvUpdate()
ElseIf $i = $NetCardDescriptors[0][0] Then
ExitLoop
EndIf
Next
AutoItSetOption("ExpandEnvStrings", 1)
$j = 0
While 1
$j += 1
$NetCardDescriptors_New[$j][1] = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & $NetCardDescriptors[$j][2] & "\Connection", "Name")
If @error <> 0 Then
MsgBox (1,"error est la","error")
ExitLoop
EndIf
WEnd
For $k = 1 To 2 ;$NetCardDescriptors[0][0]
MsgBox (1,"name of card1",$NetCardDescriptors_New[$k][1]&$k)
MsgBox (1,"name of card2",$NetCardDescriptors[$k][1]&$k)
RunWait ('netsh interface ip set address name=' & $NetCardDescriptors[$k][1] & ' source=static addr=' & $Adresse_ip &$3ip &".1" & ' mask=' & $MASK & ' gateway=' & $GATE & ' gwmetric=0', "", @SW_HIDE )
$3ip += 1
Next
;$IsDHCP = False
;EndIf
MsgBox(48, "Changement", "La configuration a été appliquée", 2)
EndFunc ;==>_GetInfoReseau
- Guiguit59
- Niveau 1
- Messages : 3
- Enregistré le : ven. 14 juin 2013 14:41
- Localisation : Nîmes
- Status : Hors ligne
Re: [Ex] Gestionnaire de profils TCP/IP
Beau travail !
Mais pourquoi se compliquer la vie quand il existe 2 lignes de commande DOs pour le faire ?
Sauvegarde de la config: "netsh -c interface dump > c:\maison.txt"
Restauration de la config: "netsh -f c:\maison.txt"
Mais pourquoi se compliquer la vie quand il existe 2 lignes de commande DOs pour le faire ?
Sauvegarde de la config: "netsh -c interface dump > c:\maison.txt"
Restauration de la config: "netsh -f c:\maison.txt"
Guiguit59
Déploies, Déploies, Déploies ..... tes ailes !
Déploies, Déploies, Déploies ..... tes ailes !