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

Ajouter une exception de Proxy dans IE

9 réponses
Avatar
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

9 réponses

Avatar
Méta-MCI \(MVP\)
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
Avatar
Dom
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
Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
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
Avatar
Gilles LAURENT [MVP]
"MCI (ex do ré Mi chel la si do) [MVP]"
a écrit dans le message de
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
Avatar
Dom
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
Avatar
Méta-MCI \(MVP\)
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
Avatar
Gilles LAURENT [MVP]
"Dom" a écrit dans le message de
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
Avatar
Dom
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
Avatar
Méta-MCI \(MVP\)
Bonsoir !

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


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

import _winreg

sexception = '*.intranet.local'
sregkey = 'SoftwareMicrosoftWindowsCurrentVersionInternet
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