Защищенный режим IE для учетной записи локальной системы

У меня есть служба Windows, которая запускает агент Team City Build в ОС Windows 7.

Этот агент запускает тесты NUnit, которые используют веб-драйверы Selenium IE для выполнения серии тестов.

Чтобы веб-драйверы Selenium IE работали, защищенный режим для всех зон должен быть установлен на одно и то же значение (защищенный режим включен или выключен).

Проблема заключается в том, что настройки по умолчанию для учетной записи локальной системы недействительны (некоторые зоны работают в защищенном режиме, другие — нет).

Может ли кто-нибудь сказать мне, как изменить настройки защищенного режима для всех пользователей или пользователя локальной системной учетной записи?


person Shaun    schedule 29.08.2011    source источник
comment
Вы когда-нибудь решали это?   -  person Mikael Östberg    schedule 22.10.2011


Ответы (4)


Вот решение (и я был в каждом уголке Интернета, чтобы получить это):

Запустите RegEdit и перейдите к этому ключу:

HKEY_USERS\S-1-5-18\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones

На моей машине (Windows 7) учетная запись локальной системы — S-1-5-18. Это может быть одинаково для всех версий Windows, но я не знаю об этом.

В этом разделе реестра есть еще пять разделов 1, 2, 3, 4 и 5, каждый из которых представляет зону.

Для каждой зоны, если есть значение DWORD с именем «2500», установите для него значение 0, чтобы отключить защищенный режим. Обратите внимание, что вам не нужно добавлять его, если его там нет.

Значение «2500» должно управлять флажком «Включить защищенный режим».

ОБНОВЛЕНИЕ (от анонимного пользователя):

Графический способ сделать то же самое — убедиться, что служба «Обнаружение интерактивных служб» (UI0Detect) запущена (обратите внимание, что в Windows 8/2012 и более поздних версиях для появления всплывающего окна необходимо правильно установить раздел реестра HKLM\SYSTEM\CurrentControlSet\Control\Windows\NoInteractiveServices). из psexec и беги

psexec -si 0 "C:\Program Files\Internet Explorer\iexplore.exe"

Во всплывающем окне нажмите «Просмотреть сообщение», затем после переключения экрана в Internet Explorer перейдите в «Инструменты» -> «Свойства обозревателя» | Безопасность и проверьте уровень безопасности для каждой зоны.

Удачного тестирования пользовательского интерфейса!

person Mikael Östberg    schedule 22.10.2011
comment
Ух ты! Отлично, я почти отказался от поиска решения этой проблемы. Похоже, что да, учетная запись локальной системы — S-1-5-18, и тесты выполняются под локальной учетной записью. Большое спасибо - person Shaun; 26.10.2011
comment
На самом деле, сейчас я начал использовать nuget.org/List/Packages/ FluentAutomation.SeleniumWebDriver и вместо этого используйте Chrome Webdriver. Это устранило проблему с защищенной зоной и стало намного быстрее. Проблемы совместимости с IE обычно приходится решать где-то еще. - person Mikael Östberg; 16.11.2011
comment
Микаэль - молодец!!! Плохо, что это не так очевидно. Я попробовал групповую политику, но это не сработало. - person bodziec; 19.11.2013
comment
Это неверно, значение DWORD 0 означает, что он выключен, значение DWORD 3 означает, что он включен. Если он не существует, он возвращается к значению по умолчанию, которое есть в Windows, которое включено как для зоны Интернета, так и для зоны ограниченных сайтов, ЕСЛИ ТОЛЬКО вы не используете IE7, и в этом случае он также включен для зоны локальной интрасети. - person Arran; 26.12.2013
comment
Для Windows 10 значение для 2500 должно быть 3, а не 0. Я изменил его в пользовательском интерфейсе, а затем проверил реестр, и он установил значение 3, когда я его выключил. Это также означает, что вам нужно добавить его во все зоны, потому что по умолчанию установлено значение 0, то есть включено. - person carlin.scott; 02.09.2020

Вы можете попробовать отключить UAC, что также отключит защищенный режим для всех пользователей в системе.

person Adam Prax    schedule 30.08.2011
comment
Спасибо за предложение. Я пробовал это, и, похоже, это не имеет никакого эффекта в этой ситуации. Примечание. Я отключил его в окне «Настройки контроля учетных записей», доступном через «Панель управления» -> «Система и безопасность». - person Shaun; 31.08.2011

Лучшее описание решения - это https://stackoverflow.com/a/30242504/1371989.

person binithb    schedule 28.04.2015

В IE WebDriver есть настройка, которая указывает ему игнорировать настройки защищенного режима. Судя по названию настройки, это может привести к некоторой «нестабильности», но у меня не было проблем с этим подходом:

var options = new InternetExplorerOptions();
// avoid the "Protected Mode must be set to the same value (enabled or disabled) for all zones" error
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
return new InternetExplorerDriver(options);
person Jonathan Moffatt    schedule 23.08.2012
comment
См. jimevansmusic.blogspot.co .uk/2012/08/ для получения дополнительной информации о том, почему это плохая идея. - person Godders; 19.03.2013
comment
@Godders - да, я читал эту статью. Ключевым моментом является то, что драйверу требовалось обходное решение для людей, которые не могли установить эти настройки IE, потому что их машина была чрезмерно заблокирована. Это то, для чего предназначена настройка возможностей. В моей рабочей среде IE действительно заблокирован, и наши тестировщики не могут установить необходимые параметры защищенного режима. Таким образом, использование хака. Но я согласен, что его не следует использовать без необходимости! - person Jonathan Moffatt; 20.03.2013