Ajouter une exception de Proxy dans IE

Le
Dom
Bonsoir à tous,

Voici mon pb:

Je souhaiterai via un VBS modifier mes exceptions de proxy sous IE en y
ajoutant un élément s'il n'est pas présent. Comment faire celà ?
Merci !!

Dom
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Méta-MCI \(MVP\)
Le #17406621
Bonsoir !


Perso, je passe par un petit batch. Exemple :

reg.exe ADD "HKCUSOFTWAREMicrosoftWindowsCurrentVersionInternet
Settings" /v ProxyOverride /t REG_SZ /d
"127.*;10.*;128.1.2.3;*.ponx.org;www.intranet.machin-chose.fr;^<local^>"
/f


@+
--
MCI
Dom
Le #17407241
Merci MCI.

Je connaissais cette commande. Et c'est probablement par là que je vais
passer. Je m'étonnais de ne pas avoir trouver via WMI une alternative et
réaliser mon petit vbs.

Dom
MCI \(ex do ré Mi chel la si do\) [MVP]
Le #17407481
Re !

Depuis un script VBS, il est toujours possible d'appeler la commande via
l'instruction RUN.

Sinon, il existe, dans WMI, la classe Win32_Proxy. Mais elle provoque
des erreurs, si aucun proxy n'est activé. Et, il ne faut pas oublier que
WMI est souvent plus lent que des commandes directes.

@-salutations
--
Michel Claveau
Gilles LAURENT [MVP]
Le #17408451
"MCI (ex do ré Mi chel la si do) [MVP]"
news:
| Re !

Bonjour,

| Depuis un script VBS, il est toujours possible d'appeler la commande
| via l'instruction RUN.

L'objet wshShell supporte également les méthodes RegDelete, RegRead,
RegWrite. De ce fait, fixer les exceptions de proxy en "Full" VBScript
est très simple.

| Sinon, il existe, dans WMI, la classe Win32_Proxy. Mais elle provoque
| des erreurs, si aucun proxy n'est activé. Et, il ne faut pas oublier
| que WMI est souvent plus lent que des commandes directes.

La classe WMI Win32_Proxy ne permet pas de fixer les exceptions.
Celle-ci permet uniquement de fixer l'adresse et le port d'un serveur
proxy via la méthode SetProxySetting dans le cadre d'une activation en
ligne de Windows (WPA).

En complément d'information, l'espace de noms WMI
/root/cimv2/Applications/MicrosoftIE contient plusieurs classes
permettant d'interroger les paramètres de configuration d'Internet
Explorer. Par exemple, pour lire les exceptions de proxy configurées
pour l'utilisateur courant :

--- Coupez ici : GetProxySettings.vbs ---
Set oWmi=GetObject("winmgmts:/root/cimv2/Applications/MicrosoftIE")
Set colSet=oWmi.ExecQuery ("select * from MicrosoftIE_LANSettings")

For Each oSet in colSet
Wscript.Echo "ProxyServer : " & oSet.ProxyServer
Wscript.Echo "ProxyOverride : " & oSet.ProxyOverride
Next
--- Coupez ici : GetProxySettings.vbs ---

Note: Vous pouvez utiliser l'outil wbemtest situé dans le dossier
%windir%system32wbem pour énumérer les classes disponibles dans cet
espace de noms.

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Dom
Le #17416241
Bonjour,

J'ai trouvé une facon de procéder alors je me permets de vous la faire
partager:


******** Début ***********************

Dim arrClef, Flag, Valeur, Commande, shell

Set shell = WScript.CreateObject("WScript.Shell")



Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_CURRENT_USER = &H80000001



Const REG_SZ = 1
Const REG_EXPAND_SZ = 2
Const REG_BINARY = 3
Const REG_DWORD = 4
Const REG_MULTI_SZ = 7

strComputer = "."

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\" & _
strComputer & "rootdefault:StdRegProv")

strKeyPath = "SOFTWAREMicrosoftWindowsCurrentVersionInternet Settings"

oReg.EnumValues HKEY_CURRENT_USER, strKeyPath, _
arrValueNames, arrValueTypes

For i=0 To UBound(arrValueNames)

If arrValueNames(i) = "ProxyOverride" Then 'cette valeur est de type
"String"

' Lecture des valeurs d'exception de Proxy
strKeyPath = "SOFTWAREMicrosoftWindowsCurrentVersionInternet Settings"
strValueName = "ProxyOverride"
oReg.GetStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,dwValue

Flag = 0
j=0
arrClef = Split(dwValue,",")
For j = UBound(arrClef) to LBound(arrClef) + 1 Step -1
'Test de la présence ou pas de la CHAINE.RECHERCHE.FR
if LCase(arrClef(j)) = "CHAINE.RECHERCHE.FR" Then
Flag = 1 'La valeur "CHAINE.RECHERCHE.FR" existe ds ProxyOverride
Else
'WScript.Echo "N'existe pas"
End If
Next


'Suivant la valeur de Flag, je reconstruis la valeur ProxyOverride pour la
réinjecter ds la clef
'WScript.Echo Flag
If Flag = 0 Then
Valeur = dwValue & ",CHAINE.RECHERCHE.FR"
'Lancement de la Commande externe pour compléter la Valeur d'exception de
proxy
Commande = "reg.exe ADD" & " " & chr(34) &
"HKCUSOFTWAREMicrosoftWindowsCurrentVersionInternet Settings" &
Chr(34)& " " & "/v ProxyOverride /t REG_SZ /d " & Chr(34) & Valeur &
Chr(34) & " /f"
'WScript.Echo Commande
shell.Run Commande, 5,True


Else
WScript.quit
End If



End if

Next

********* Fin **********************************

Merci à vous de votre aide,

Dom
Méta-MCI \(MVP\)
Le #17418771
Re !

Oui, c'est une façon de faire.
Et, si on a mis Wscript.shell dans une librairie, c'est simple à
mettre en oeuvre.

@-salutations
--
Michel Claveau
Gilles LAURENT [MVP]
Le #17418761
"Dom" news:48e71cc5$0$25400$
| Bonjour,

Bonjour,

| J'ai trouvé une facon de procéder alors je me permets de vous la faire
| partager:
[...]

Il y a quand même beaucoup plus simple ;-)

--- Coupez ici : AddProxyException.vbs ---
Const sException="*.intranet.local"
sRegKey= _
"HKCUSoftwareMicrosoftWindowsCurrentVersion" & _
"Internet Settings" & _
"ProxyOverride"
Set oRe=New RegExp: oRe.IgnoreCase=True
oRe.Pattern="(^|;)" & Replace(sException,".",".") & "(;|$)"
Set oSh=CreateObject("WScript.Shell")
sProxy=oSh.RegRead(sRegKey)
If Not oRe.Test(sProxy) Then
oSh.RegWrite sRegKey, sException & ";" & sProxy
WScript.Echo "Exception [" & sException & "] added"
End If
--- Coupez ici : AddProxyException.vbs ---

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Dom
Le #17419331
Oui, magnifique !
Et, effectivement, beaucoup plus court (je n'emploierai pas le terme "plus
simple" car celui là, je ne l'aurai jamais trouvé tout seul ...). Mais,
chapeau bas.

Dom
Méta-MCI \(MVP\)
Le #17422841
Bonsoir !

Juste pour le fun, le script (assez) similaire, en Python :


# -*- coding: utf-8 -*-

import _winreg

sexception = '*.intranet.local'
sregkey = 'Software\Microsoft\Windows\CurrentVersion\Internet
Settings'
sregsubkey = 'ProxyOverride'

regkey = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,sregkey)
valeur,typ = _winreg.QueryValueEx(regkey,sregsubkey)

if valeur.find(sexception)+1:
print 'Déja en place'
else:
if valeur[-1]==';':
nouvaleur = valeur+sexception+';'
else:
nouvaleur = valeur+';'+sexception+';'
regkey =
_winreg.OpenKey(_winreg.HKEY_CURRENT_USER,sregkey,0,_winreg.KEY_WRITE)
_winreg.SetValueEx(regkey,sregsubkey,0,typ,nouvaleur)
print 'Exception "'+ sexception +'" ajoutée.'



@-salutation
--
Michel Claveau
Publicité
Poster une réponse
Anonyme