Почему прокси-сервер Windows теряется при выполнении кода через Ansible (удаленный WinRM)? - PullRequest
0 голосов
/ 26 февраля 2019

При автоматизации сборок Windows (2012R2 и 2016) я обнаружил, что, хотя я установил общесистемный прокси-сервер с помощью netsh, мне все равно пришлось установить значения HKCU для IE, поскольку некоторые команды не будут работать без этих установленных значений.Мне бы пришлось открыть IE и посетить сайт, любой сайт, чтобы инициализировать эти настройки, что раздражало.

Мне удалось найти некоторый код PowerShell, который мог бы «инициализировать» настройки прокси IE, поэтому я не сталнеобходимо открыть IE и посетить сайт, показанный ниже:

$Source=@"
[DllImport("wininet.dll")]
public static extern bool InternetSetOption(int hInternet, int dwOption, int lpBuffer, int dwBufferLength);
"@
$wininet = Add-Type -memberDefinition $Source -passthru -name InternetSettings
$wininet::InternetSetOption([IntPtr]::Zero, 95, [IntPtr]::Zero, 0)|out-null
$wininet::InternetSetOption([IntPtr]::Zero, 37, [IntPtr]::Zero, 0)|out-null

Код выше https://vanderpaal.com.au/2016/09/30/live-proxy-setting-change/ (спасибо!)

Приведенный выше код отлично работает при выполнении вручнуючерез сеанс RDP.Я правильно установил значения IE proxy, запустил приведенный выше код и затем могу делать все, что захочу - все работает.Команды, для которых требуются настройки IE, работают нормально.

Я пытался запустить больше кода через удаленный WinRM, используя такие вещи, как Ansible и SSM (в AWS).Когда это происходит, происходят странные вещи.

В частности, записи реестра прокси-сервера IE удаляются и возвращаются к значениям по умолчанию.Итак, порядок действий с помощью сценария:

  1. Запись значений прокси IE в реестр с помощью сценария, вызываемого Ansible или SSM.
  2. Запустите код прокси инициализации, указанный выше.
  3. Значения IE из # 1 пропали ...

Я затрудняюсь понять, почему значения реестра удаляются.Я на 100% уверен, что они будут удалены - я могу написать запрос reg до и после инициализации прокси-команд - до команд, которые они существуют, и после команд, которых они не делают.Этого не происходит, когда я запускаю одни и те же сценарии вручную на сервере в сеансе RDP, то есть команда прокси НЕ удаляет записи.

Я повторил это как в Ansible, так и в SSM, оба из которыхиспользуйте PowerShell и WinRM для запуска команд.Сценарии находятся на реальном сервере, и Ansible / SSM говорит системе выполнить сценарии.

Я проверил, что HKCU действительно существует во время Ansible выполнения сценариев.

Поскольку значения IEКогда меня удаляют, команда initialize бесполезна, когда выполняются следующие команды, требующие значений IE.Эти команды завершаются с ошибками, такими как:

PackageManagement \ Install-Package: Не найдено совпадений для указанных критериев поиска и имени модуля ''

Команды, которые я выполняю (которые не выполняются):просто установите команды модуля следующим образом:

Install-Module -Name PSWindowsUpdate -Proxy http://proxy.foo.com:80 -Confirm:$false -Force
Install-Module -Name PowerShellGet -Proxy http://proxy.foo.com:80 -Confirm:$false -Force

Кто-нибудь знает, почему значения реестра IE proxy удаляются, когда я запускаю приведенный выше код через Ansible или SSM?Рассматриваемые значения прокси:

"HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ ProxyEnable" - это сбрасывается до 0

"HKCU \ Software \ Microsoft \ Windows \"CurrentVersion \ Internet Settings \ ProxyServer "- это удаляется

" HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ ProxyOverride "- это удаляется

1 Ответ

0 голосов
/ 13 августа 2019

была такая же проблема.и обнаружил, что проклятый волшебник т.е.вам нужно добавить следующий ключ в реестр, прежде чем вы сможете получить доступ, т.е. компоненты ...:

    desc: "Remove IE 11 first run Wizard"
    path: "HKLM:\\Software\\Policies\\Microsoft\\Internet Explorer\\Main"
    name: "DisableFirstRunCustomize"
    data: "1"
    type: "dword"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...