¿Cómo cambio la resolución de una máquina Windows Amazon EC2?

9

(Discutí entre publicar esto aquí, ServerFault y StackOverFlow. Resolvimos esto. Espero que esté en el lugar correcto).

Ejecutamos nuestro conjunto de pruebas de interfaz de usuario usando Selenium Grid 2 con una máquina Windows Amazon EC2 (que se inició con las API CloudFormation de Amazon). Mi pregunta es, ¿cómo cambio la resolución de esa máquina?

Si me remuevo en él, puedo especificar la resolución usando Escritorio remoto. Pero obviamente eso no cambia permanentemente la resolución. Cuando ejecutamos nuestras pruebas, la resolución es tan pequeña que el navegador junta los elementos y hace que las pruebas fallen.

¿Algunas ideas? ¿Hay algo que pueda poner en la receta de CloudFormation? ¿Hay algo que pueda hacer a la imagen antes de crear el AMI?

Captura de pantalla del Administrador de dispositivos

Gracias.

Joel
fuente
1
Interesante. Supongo que debe ser una instancia estándar, por lo que no hay tarjetas gráficas CUDA asignadas a la instancia. Entonces está trabajando con una tarjeta gráfica virtual estándar. ¿Cómo se ve en el administrador de dispositivos? ¿Puedes publicar una captura de pantalla? Puede forzarlo más alto al hacer rdp-ing a la consola:mstsc.exe /console
Paul
@Paul, agregué una captura de pantalla. Es una instancia estándar. Windows Server R2. Gracias.
Joel
@ Joel, ¿alguna vez resolviste esto? He estado tratando de encontrar formas de hacer esto durante varios días, incluido el uso de las respuestas a continuación, pero hasta ahora no he tenido suerte. Al reiniciar, o crear desde AMI (incluso aquellos a los que se les han aplicado las respuestas), todavía comienzan en 1024x768.
Sean

Respuestas:

4

Descargo de responsabilidad: TightVNC no es seguro, por lo que si la seguridad es un problema, es posible que deba encontrar un enfoque diferente. Todo el proceso tomará solo unos minutos, por lo que el agujero de seguridad es pequeño, pero no obstante.

  1. Instale el servidor TightVNC en la instancia EC2 para que pueda iniciar sesión en la consola
  2. Desconecte todas las sesiones de escritorio remoto del usuario y devuelva la sesión a la consola
  3. Use el visor TightVNC para iniciar sesión en la consola de instancia EC2, asegurándose de que el puerto 5900 esté abierto para esa conexión
    • Haga clic derecho en el escritorio y seleccione "Resolución de pantalla"
    • Seleccione "Configuración avanzada"
    • Seleccione "Listar todos los modos"
    • Seleccione una resolución más alta
Kenny Trytek
fuente
Esto me permitió cambiar mi resolución, que creí que solucionaría mi problema real, sin embargo, no lo hizo. Mis pruebas de selenio que se ejecutan automáticamente en mi servidor Windows 2008 ec2 a través del programador de tareas todavía se ejecutan en una resolución pequeña. Incluso después de actualizar con lo anterior, se ejecutan a una resolución más pequeña. Sí, las ventanas están configuradas para maximizar la resolución en la configuración de selenio.
Copiar y pegar el
1

Puede cambiar la resolución de la pantalla modificando dos valores de registro. Estos dos valores son: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.XResolution HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.YResolutionDonde GUID es un GUID generado aleatoriamente.

En realidad, puede especificar cualquier valor de XResolution e YResolution siempre que sean hexadecimales.

Nota: En el caso de un monitor CRT, especificar una resolución absurda podría dañar su monitor. En el caso de un monitor LCD, es posible que su monitor ya no muestre ninguna interfaz de usuario. Una buena manera de cambiar la resolución de la pantalla es anotar la cantidad de píxeles con los que desea llenar el ancho de la pantalla (esta es la resolución X) y la cantidad de píxeles que desea en la altura de la pantalla (la resolución Y). La calculadora de Windows (no disponible en Server Core, tendrá que buscar otra computadora o una calculadora avanzada de hardware) ofrece una manera fácil de convertir cantidades decimales en cantidades hexadecimales. Luego puede usar estos valores para modificar los valores de registro correspondientes. Un reinicio hará que su resolución de pantalla preferida se haga realidad.

La profundidad de color utilizada en su monitor se captura en el siguiente valor de registro: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.BitsPerPelen mi cuadro, este valor hexadecimal se estableció en 0x00000008 (8), lo que significa que mi pantalla utilizó una profundidad de color de 8 bits. (256 colores) Al cambiarlo a 16 bits (0x00000010) se mostrarán 65536 colores (colores altos) Otros valores que suelen estar disponibles son 24 bits (0x00000018) y 32 bits (0x00000020).

Fuente

paradroid
fuente
No tengo DefaultSettings. * Claves de resolución en ninguno de los GUID.0000. Creo que es porque solo tiene dispositivos virtuales. ¿Puedo agregar esa clave a cada uno de ellos? Funcionaría eso?
Joel
@ Joel: lo dudo. ¿No hay una rama de 'Video'? Tengo una instancia de Server Core 2008 R2 en EC2, así que la veré esta noche.
paradroid
Sí, no lo creo. Pensé en preguntar de todos modos. Seguiré buscando soluciones. Déjeme saber si usted encuentra algo. Gracias.
Joel
Tampoco tengo DefaultSettings. * En mi registro. Ni siquiera pude intentar esta solución. Parece que podría ayudar a algunos, pero no a todos.
Copiar y pegar el
1

Pude hacer que esto funcionara usando una combinación de la respuesta de @ kenny-trytek anterior y configurando el inicio de sesión automático.

Creo que la resolución de VNC solo se establece para el usuario actual, por lo que configurar el inicio de sesión automático garantiza que este usuario tenga una sesión abierta.

Configurar inicio de sesión automático https://support.microsoft.com/en-us/kb/324737

A continuación, en la carpeta Inicio de usuarios, proporcione un acceso directo o un archivo bat para iniciar el proceso del nodo de selenio.

porto88
fuente
1
Cite las partes esenciales de la respuesta de los enlaces de referencia, ya que la respuesta puede volverse inválida si las páginas enlazadas cambian.
DavidPostill
1

Intenté todo lo anterior y fallé. Encontré una solución única para mi situación que era simple ... usar Windows Power-Shell.

escribió el script de power-shell

Set-DisplayResolution -Width 1920 -Height 1080 -Force

nómbralo resolution.ps1

guardado en C: \ myTestFolder

y ejecutarlo desde la línea de comandos como se muestra a continuación ... (mis scripts están controlados por archivos por lotes)

WindowsPowerShell\v1.0\powershell.exe C:\myTestFolder\resolution.ps1
1234
fuente
0

Así es como configuro la resolución de pantalla sin cabeza en Windows de AWS usando RDP:

  • crear un nuevo usuario llamado rdp_local
  • crear una secuencia de comandos de inicio para RDP en una cuenta de usuario específica (por ejemplo, selenio) a una resolución especificada
  • agregar una regla de firewall para abrir el puerto RDP 3389
  • configurar el inicio de sesión automático para iniciar sesión como rdp_local al reiniciar

Tenga en cuenta que el inicio de sesión automático requiere un nombre de usuario y una contraseña y que la contraseña se almacena sin cifrar en el registro de Windows HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon.

Probado en Amazon Windows Server 2012 R2 AMI.

Aquí hay un libro de cocina de Chef que hace lo anterior: https://github.com/dhoer/chef-windows_screenresolution

Dennis Hoer
fuente
ACTUALIZACIÓN: recomendaría usar github.com/dhoer/choco-screen-resolution#screen-resolution para establecer la resolución de pantalla en las máquinas con Windows utilizadas para las pruebas de selenio. No requiere controladores para instalar y el inicio de sesión automático es seguro (no hay contraseñas en texto plano)
Dennis Hoer