web-dev-qa-db-fra.com

IE Activer / désactiver les paramètres de proxy via le registre

Je dois activer/désactiver les paramètres du proxy IE pendant que IE est en cours d'exécution. J'ai une ligne de script PowerShell pour activer le proxy:

Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ProxyEnable -value 1


ou ceci pour désactiver:

Set-ItemProperty -Path "Registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ProxyEnable -value 0


Les scripts ci-dessus fonctionnent, la clé de registre est mise à jour. Cependant, IE ne récupère pas la valeur tant que je n'ai pas fermé toutes les fenêtres IE ouvertes et en ai ouvert une nouvelle. J'ai besoin de fenêtres IE déjà ouvertes/en cours d'exécution pour récupérer le nouveau paramètre.

Y aurait-il un moyen de réaliser ce que je veux?

9
Oscar

Le problème est que IE ne réinitialisera pas les paramètres du proxy tant

  1. ferme, ou
  2. a sa configuration rafraîchie.

Voici le code que j'ai utilisé pour que cela fonctionne:

function Refresh-System
{
  $signature = @'
[DllImport("wininet.dll", SetLastError = true, CharSet=CharSet.Auto)]
public static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int dwBufferLength);
'@

$INTERNET_OPTION_SETTINGS_CHANGED   = 39
$INTERNET_OPTION_REFRESH            = 37
$type = Add-Type -MemberDefinition $signature -Name wininet -Namespace pinvoke -PassThru
$a = $type::InternetSetOption(0, $INTERNET_OPTION_SETTINGS_CHANGED, 0, 0)
$b = $type::InternetSetOption(0, $INTERNET_OPTION_REFRESH, 0, 0)
return $a -and $b
}
6
user6730445

modification de la valeur proxy sous

[HKEY_USERS\<your SID>\Software\Microsoft\Windows\CurrentVersion\Internet Settings]

n'a pas besoin de redémarrer ie

4
Loïc MICHEL