Windows 7 отключить прокси через cmd-и ввести в действие

Windows 7 (64-бит) отключить прокси через cmd - и ввести в действие?

Я нашел правильный раздел реестра, чтобы изменить, и есть код, чтобы изменить его.

reg add    "HKLMSoftwareWow6432NodeMicrosoftWindowsCurrentVersionInternet Settings" /f /v ProxyEnable /t REG_DWORD /d 0

нашли через

gpresults /h "%userprofile%desktopRSPO.html"

запуск "reg add" действительно изменяет ключ reg, тот же ключ, который изменяется, когда я открываю IE (как администратор) и выключаю настройки прокси-сервера LAN вручную.

однако, когда я делаю это вручную, желаемый эффект происходит-у меня больше нет проблем прокси.
Но через мой cmd скрипт, ключ меняется но у меня до сих пор проблемы с прокси. Когда я открываю настройки прокси-сервера LAN в IE, он по-прежнему включен.

как изменить ключ reg и ввести его в действие?

попытался изменить кучу разделов реестра...

текущий сценарий...

reg add "HKLMSoftwareWow6432NodeMicrosoftWindowsCurrentVersionInternet Settings" /f /v ProxyEnable /t REG_DWORD /d 0
reg add "HKLMSoftwareMicrosoftWindowsCurrentVersionInternet Settings" /f /v ProxyEnable /t REG_DWORD /d 0

reg add "HKCUSoftwareWow6432NodeMicrosoftWindowsCurrentVersionInternet Settings" /f /v ProxyEnable /t REG_DWORD /d 0
reg add "HKCUSoftwareMicrosoftWindowsCurrentVersionInternet Settings" /f /v ProxyEnable /t REG_DWORD /d 0
12
задан mrdnk
07.03.2023 2:16 Количество просмотров материала 3275
Распечатать страницу

2 ответа

к сожалению, нет простого способа. Как вы заметили, вам не хватает волшебства "прочитать эти настройки сейчас" команда:

InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, NULL)
InternetSetOption(NULL, INTERNET_OPTION_REFRESH, NULL, NULL)

конечно, вы не можете просто вызвать функцию C из cmd. Существует, однако, (относительно) жизнеспособный способ сделать это с помощью PowerShell:

function Reload-InternetOptions
{
  $signature = @'
[DllImport("wininet.dll", SetLastError = true, CharSet=CharSet.Auto)]
public static extern bool InternetSetOption(IntPtr hInternet, int
dwOption, IntPtr lpBuffer, int dwBufferLength);
'@
  $interopHelper = Add-Type -MemberDefinition $signature -Name MyInteropHelper -PassThru

  $INTERNET_OPTION_SETTINGS_CHANGED = 39
  $INTERNET_OPTION_REFRESH = 37

  $result1 = $interopHelper::InternetSetOption(0, $INTERNET_OPTION_SETTINGS_CHANGED, 0, 0)
  $result2 = $interopHelper::InternetSetOption(0, $INTERNET_OPTION_REFRESH, 0, 0)

  $result1 -and $result2
}

просто вызовите его так:Reload-InternetOptions. Она вернется True в случае успеха.

обратите внимание, что этот метод динамически создает некоторые вещи каждый раз, когда вы запускаете его. Он не может быть выгружен PowerShell и будет накапливаться до тех пор, пока вы не завершите процесс PowerShell, запустивший метод.

1
отвечен Daniel B 2023-03-08 10:04

настройки IE для каждого пользователя, поэтому я думаю, что вы просто нацелены на неправильный раздел реестра.

например, чтобы отключить флажок прокси на уровне домена, мы используем сценарий входа, чтобы отключить его здесь:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable

0
отвечен Ƭᴇcʜιᴇ007 2023-03-08 12:21

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх