Je dois activer / désactiver les parameters du proxy IE pendant l’exécution d’IE. 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
Au-dessus des scripts fonctionnent, la clé de registre est mise à jour. Toutefois, IE ne prend pas en compte la valeur tant que je ne ferme pas toutes les fenêtres IE ouvertes et en ouvre une nouvelle. J’ai besoin de fenêtres IE déjà ouvertes / exécutées pour sélectionner le nouveau paramètre.
Y aurait-il un moyen de réaliser ce que je veux?
modifier la valeur de proxy sous
[HKEY_USERS\\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
n’a pas besoin de redémarrer
Le problème est que IE ne réinitialisera pas les parameters du proxy jusqu’à ce qu’il soit
Voici le code que j’ai utilisé pour obtenir ce travail:
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 }
Je sais que c’est une vieille question, mais voici un simple traceur pour l’allumer ou l’éteindre en fonction de son état actuel:
set-itemproperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -name ProxyEnable -value (-not ([bool](get-itemproperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -name ProxyEnable).proxyenable))