Как изменить разрешение по умолчанию в Windows для автоматического входа?

У меня есть несколько виртуальных систем Windows Server 2012, в основном на AWS. Эти системы используются для выполнения тестов пользовательского интерфейса на основе браузера с использованием Selenium. Тесты необходимо запускать с определенной учетной записью пользователя, поскольку у этого пользователя правильно настроена среда пользовательского интерфейса для выполнения тестов.

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

Чтобы автоматизировать весь процесс, я настроил тестовых клиентов как подчиненных Jenkins. Важно отметить, что мне пришлось запустить процесс Jenkins Slave с той же учетной записью пользователя, для которой настроена среда пользовательского интерфейса для тестов. Это гарантирует, что при запуске тестов через Jenkins будут использоваться правильная учетная запись пользователя и среда пользовательского интерфейса. В конце я смог успешно выполнить тестирование таким способом от Дженкинса, если у меня было открыто соединение RDP.

Проблема в том, что как только я отключаюсь от тестового клиента, тесты начинают проваливаться. Похоже, что для успешного выполнения всех тестов пользовательского интерфейса требуется активное соединение RDP с определенной учетной записью пользователя. Это то, что я сейчас пытаюсь устранить.

Решение до сих пор заключается в том, чтобы настроить учетную запись пользователя, которую я использую для тестов, для автоматического входа при запуске тестового клиента. Для настройки автоматического входа в систему я использую инструмент Autologon, но есть и другие средства для достижения того же эффекта. После запуска системы мой пользователь, кажется, успешно "входит", то есть, минуя экран входа в систему, он инициализирует свою среду графического интерфейса с экраном по умолчанию 1024x768, а также все программы, которые определены для автоматического запуска после успешного входа в систему, включая мой подчиненный Jenkins. процесс.

Когда я запускаю тесты пользовательского интерфейса для таких тестовых клиентов через Jenkins, большинство тестов завершаются успешно, за исключением тех, которые требуют более высокого разрешения, чем стандартное разрешение 1024x768. Это то, для чего я пытаюсь найти решение.

Я попытался изменить разрешение экрана с помощью нескольких инструментов командной строки (например, QRes) сразу после завершения автологона и запуска процесса Jenkins Slave - безуспешно. Кажется, что без реального монитора эти инструменты не могут изменить разрешение. Здесь есть аналогичный вопрос с некоторыми другими средствами для изменения разрешения по умолчанию (хотя ни один из них, кажется, не работает), но, пожалуйста, обратите внимание, что для того, чтобы сделать решение независимым от используемой технологии виртуализации, я в первую очередь ищу способ изменить разрешение по умолчанию в самой Windows, а не с помощью какого-либо инструмента конфигурации WMWare или AWS.

Немного погуглив, я нашел только способы изменить разрешение по умолчанию 1024x768 для пользовательских установочных носителей Windows. Это дало мне идею, что это разрешение по умолчанию 1024x768 укоренилось где-то глубоко, но все еще настраивается.

Есть кто-нибудь, кто знает, как изменить разрешение по умолчанию 1024x768 для автоматического входа? Кто-нибудь может подсказать, кому и где еще я могу задать этот вопрос, возможно, есть какие-то форумы, посвященные особенно вопросам, связанным с такими внутренними компонентами Windows?

3 ответа

У меня была такая же проблема при создании фермы Windows Selenium для тестирования в определенных разрешениях.

Установите разрешение экрана в Windows без:

  1. создание нового пользователя с именем rdp_local
  2. создание сценария запуска для RDP в указанной учетной записи пользователя с указанным разрешением
  3. добавление правила брандмауэра для открытия порта RDP 3389
  4. настройка автоматического входа для входа в систему как rdp_local при перезагрузке

Обратите внимание, что для автоматического входа требуется имя пользователя и пароль, а пароль хранится в незашифрованном виде в реестре Windows HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon.

Протестировано на Amazon Windows Server 2012 R2.

Вот рецепт шеф-повара, который делает все вышеперечисленное: https://github.com/dhoer/chef-windows_screenresolution

Мы были в точной ситуации с селеном на виртуальной машине, работающей в облаке.

Я смог решить эту проблему, подключившись к сеансу консоли виртуальной машины (чтобы не вызывать контекст rdp) и просто установив разрешение по умолчанию для пользователя и системы. после этого все заработало.

Вы можете настроить разрешение рабочего стола по умолчанию один раз, и оно будет постоянным, не нужно запускать некоторые скрипты при каждом запуске.

Вам нужно будет:

  1. Подключитесь к серверу, используя TeamViewer или TightVNC (все, что не требует собственного разрешения).

  2. Измените разрешение, как обычно, и все готово.

В случае, если это полезно, я нашел более простой способ в реестре...

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration\MSH062E0_00_07DB_C6^182FDC0875F0A76803E4A9848A8C1EA7\00

Я предполагаю немного позже \Configuration\ будет варьироваться в зависимости от вашей настройки, но в этом 00 вы найдете PrimSurfSize.cx и PrimSurfSize.cy который установит разрешение по умолчанию "без головы".

Другие вопросы по тегам