Bonjour à tous
Mon problème du jour : arriver à paramétrer la connexion au réseau local.
Ce que j'ai déjà trouvé, c'est
- identifier la connexion au réseau local par son nom ( "connexion au réseau local")
- activer et désactiver la connexion en question en mode "objet".
- ouvrir la fenêtre des propriétés de la connexion.
Pour ça, j'ai adapté un script :
► Afficher le texte
Code : Tout sélectionner
; adapté et francisé depuis http://itknowledgeexchange.techtarget.com/itanswers/batch-file-to-disable-or-enable-network-adapter/
Const $ssfCONTROLS = 3
Const $sConnectionName = "Connexion au réseau local"
Const $sConnectionPanel = "Connexions réseau"
Const $sEnableVerb = "&Activer"
Const $sDisableVerb = "&Désactiver"
$shellApp = ObjCreate("shell.application")
$oControlPanel = $shellApp.Namespace($ssfCONTROLS)
$oNetConnections = ""
For $folderitem In $oControlPanel.items
If $folderitem.name = $sConnectionPanel Then
$oNetConnections = $folderitem.getfolder
ExitLoop
EndIf
Next
If $oNetConnections = "" Then
MsgBox(16, "Erreur", "Impossible de localiser le panel " & $sConnectionPanel)
Exit 16
EndIf
$oLanConnection = ""
For $folderitem In $oNetConnections.items
If $folderitem.name = $sConnectionName Then
$oLanConnection = $folderitem
ExitLoop
EndIf
Next
If Not(isobj($oLanConnection )) Then
MsgBox(16, "Erreur", "Impossible de trouver la connexion réseau nommée " & $sConnectionName)
Exit 16
EndIf
;
; exemple (connexion active):
;;&Désactiver
;;Sta&tut
;;&Réparer
;;&Connexions de pont
;;Créer un racco&urci
;;&Supprimer
;;R&enommer
;;&Propriétés
; exemple (connexion inactive):
;;&Activer
;;Sta&tut
;;Créer un racco&urci
;;&Supprimer
;;R&enommer
;;&Propriétés
$STATUT_CNX=""
$O_ACTION=""
$TEXTE="Verbes:" & @CRLF & "----------" & @CRLF
For $verb In $oLanConnection.verbs
$TEXTE&=$verb.name & @CRLF
Switch $verb.name
Case $sDisableVerb
$STATUT_CNX="Active"
$O_DESACTIVER=$verb
Case $sEnableVerb
$STATUT_CNX="Inactive"
$O_ACTIVER=$verb
Case "&Propriétés"
$TEST=$verb.doit()
msgbox(0,"test",$TEST)
EndSwitch
Next
If $STATUT_CNX="Active" Then
$TEST=$O_DESACTIVER.DoIt()
msgbox(0,"Interface " & $STATUT_CNX,$TEXTE & @CRLF & @CRLF & "desactivation interface:" & $TEST,10)
ElseIf $STATUT_CNX="Inactive" then
$TEST=$O_ACTIVER.DoIt
msgbox(0,"Interface " & $STATUT_CNX,$TEXTE & @CRLF & @CRLF &"activation interface:" & $TEST,10)
Else
MsgBox(16,"Erreur","statut interface:" & $STATUT_CNX)
EndIf
J'ai trouvé quelque chose
ici, mais ça ne convenait pas.
Ce que je voudrais encore arriver à faire, c'est
- modifier le paramétrage d'authentification : passer de Peap à certificat et vice-versa. (c'est dans l'onglet "authentification" de la fenêtre pop-up de paramétrage de la connexion.)
Toutefois, plutôt que d'ouvrir la fenêtre des propriétés de la connexion et bidouiller cette fenêtre avec tout un jeu de commandes "send" , j'aimerais mieux accéder aux propriétés en question en mode objet, de la même façon que j'utilise le mode objet pour activer et désactiver la connexion réseau.
Si quelqu'un a déjà bossé sur le sujet, je serais très intéressé par ses travaux
Merci d'avance.
Archives : Pour la petite histoire, voici une 1ere version de mon script qui partait du panneau de config des connexions réseau, puis balançait des commandes send . Je le remet ici pour illustrer un principe que j'ai fait mien : utiliser "send" en désespoir de cause, seulement quand on ne sait pas faire autrement..
► Afficher le texte
Code : Tout sélectionner
ShellExecute("ncpa.cpl")
$H_CNXRES = WinWait("Connexions réseau", "", 10)
If $H_CNXRES = 0 Then
MsgBox(16, "Erreur", "Impossible de lancer l'affichage des connexions réseau")
Exit 8
EndIf
$BONNE_CNX = 0
WinActivate($H_CNXRES)
Send("{DOWN}") ; on se positionne sur la 1ere connexion de la liste.
Send("!{ENTER}")
$H_PRPCNX = WinWait("Propriétés de Connexion au réseau local", "", 10)
If $H_PRPCNX = 0 Then
MsgBox(16, "Erreur", "Impossible d'obtenir les propriétés de la carte réseau")
WinClose($H_CNXRES)
Exit 10
EndIf
; etc... etc.... etc....