Come posso modificare la risoluzione di un computer Windows Amazon EC2?


9

(Ho discusso tra la pubblicazione di questo qui, ServerFault e StackOverFlow. Accontentati di questo. Speriamo che sia nel posto giusto.)

Eseguiamo la nostra suite di test dell'interfaccia utente utilizzando Selenium Grid 2 con un computer Amazon EC2 Windows (avviato utilizzando le API CloudFormation di Amazon). La mia domanda è: come posso modificare la risoluzione di quella macchina?

Se ci riesco a distanza, posso specificare la risoluzione usando Desktop remoto. Ma ovviamente ciò non modifica in modo permanente la risoluzione. Quando eseguiamo i nostri test, la risoluzione è così piccola che il browser scricchiola gli elementi e causa il fallimento dei test.

Qualche idea? C'è qualcosa che posso mettere nella ricetta di CloudFormation? C'è qualcosa che posso fare all'immagine prima di creare l'AMI?

Schermata di Gestione dispositivi

Grazie.


1
Interessante. Dev'essere un'istanza standard che immagino, quindi nessuna scheda grafica CUDA assegnata all'istanza. Quindi stai lavorando con una scheda grafica virtuale standard. Come si presenta in Gestione dispositivi? Puoi pubblicare uno screenshot? Potresti essere in grado di forzarlo più in alto rdp-in alla console:mstsc.exe /console
Paul

@Paul, ho aggiunto uno screenshot. È un'istanza standard. Windows Server R2. Grazie.
Gioele,

@Joel, l'hai mai risolto? Ho cercato di trovare il modo di farlo per diversi giorni, incluso l'uso delle risposte di seguito, ma finora non ho avuto fortuna. Al riavvio o alla creazione da AMI (anche quelli a cui sono state applicate le risposte), iniziano comunque in 1024x768.
Sean,

Risposte:


4

Disclaimer: TightVNC non è sicuro, quindi se la sicurezza è un problema, potrebbe essere necessario trovare un approccio diverso. L'intero processo richiederà solo pochi minuti, quindi la falla di sicurezza è piccola, ma comunque lì.

  1. Installa TightVNC Server sull'istanza EC2 in modo da poter accedere alla console
  2. Disconnetti tutte le sessioni del desktop remoto dell'utente e riporta la sessione alla console
  3. Utilizzare TightVNC Viewer per accedere alla console dell'istanza EC2, assicurandosi che la porta 5900 sia aperta per quella connessione
    • Fai clic destro sul desktop e seleziona "Risoluzione schermo"
    • Seleziona "Impostazioni avanzate"
    • Seleziona "Elenca tutte le modalità"
    • Seleziona una risoluzione più alta

Questo mi ha permesso di cambiare la mia risoluzione, che credevo avrebbe risolto il mio vero problema, tuttavia non è stato così. I miei test di selenio che sono in esecuzione automatizzati sul mio server Windows 2008 ec2 tramite l'utilità di pianificazione sono ancora in esecuzione con una risoluzione ridotta. Anche dopo l'aggiornamento con quanto sopra, sono in esecuzione con una risoluzione inferiore. Sì, le finestre sono impostate per massimizzare la risoluzione nella configurazione del selenio.
Copia e incolla il

1

È possibile modificare la risoluzione dello schermo modificando due valori del registro. Questi due valori sono: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.XResolution HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.YResolutionDove GUID è un GUID generato casualmente.

Puoi effettivamente specificare qualsiasi valore XResolution e YResolution purché siano esadecimali.

Nota: nel caso di un monitor CRT, la specifica di una risoluzione assurda potrebbe danneggiare il monitor. Nel caso di un monitor LCD, il monitor potrebbe non mostrare più alcuna interfaccia utente. Un buon modo per modificare la risoluzione dello schermo è scrivere la quantità di pixel con cui si desidera riempire la larghezza dello schermo (questa è la risoluzione X) e la quantità di pixel che si desidera sull'altezza dello schermo (risoluzione Y). Il calcolatore di Windows (non disponibile in Server Core, dovrai trovare un altro computer o un calcolatore avanzato dell'hardware) offre un modo semplice per convertire gli importi decimali in importi esadecimali. È quindi possibile utilizzare questi valori per modificare i corrispondenti valori del registro. Un riavvio renderà la tua risoluzione dello schermo preferita incontrare la realtà.

La profondità di colore utilizzata sul monitor viene acquisita nel seguente valore di registro: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.BitsPerPelNella mia casella questo valore esadecimale era impostato su 0x00000008 (8), il che significava che il mio schermo utilizzava una profondità di colore a 8 bit. (256 colori) Modificandolo in 16 bit (0x00000010) verranno visualizzati 65536 colori (colori alti) Altri valori che sono normalmente disponibili sono 24 bit (0x00000018) e 32 bit (0x00000020).

fonte


Non ho DefaultSettings. * Chiavi di risoluzione in nessuno dei GUID.0000. Penso che sia perché ha solo dispositivi virtuali. Posso aggiungere quella chiave a ciascuno di essi? Funzionerebbe?
Gioele,

@Joel: ne dubito. Non esiste affatto un ramo "Video"? Ho un'istanza Server Core 2008 R2 su EC2, quindi questa sera la darò un'occhiata.
paradroid,

Sì, non la pensavo così. Ho pensato di chiedere comunque. Continuerò a cercare soluzioni. Fammi sapere se trovi qualcosa. Grazie.
Gioele,

Inoltre non ho DefaultSettings. * Nel mio registro. Non ho nemmeno potuto provare questa soluzione. Sembra che potrebbe aiutare alcuni, ma non tutti.
Copia e incolla il

1

Sono stato in grado di farlo funzionare utilizzando una combinazione della risposta di @ kenny-trytek sopra e impostando il login automatico.

Penso che la risoluzione VNC venga impostata solo per l'utente corrente, quindi la configurazione dell'accesso automatico garantisce che l'utente abbia una sessione aperta.

Configurazione dell'accesso automatico https://support.microsoft.com/en-us/kb/324737

Successivamente, nella cartella Start Up degli utenti fornire un collegamento o un file bat per dare il via al processo del nodo di selenio.


1
Si prega di citare le parti essenziali della risposta dai collegamenti di riferimento, in quanto la risposta può diventare non valida se le pagine collegate cambiano.
DavidPostill

1

Ho provato soprattutto sopra e ho fallito. Ho trovato una soluzione unica per la mia situazione che era semplice ... usa Windows Power-Shell.

ha scritto lo script power-shell

Set-DisplayResolution -Width 1920 -Height 1080 -Force

chiamalo risoluzione.ps1

salvato in C: \ myTestFolder

ed eseguirlo dalla riga di comando come di seguito ..... (i miei script sono guidati da file batch)

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

0

Ecco come ho impostato la risoluzione dello schermo senza testa su Windows AWS utilizzando RDP:

  • crea un nuovo utente chiamato rdp_local
  • creare uno script di avvio su RDP in un account utente specificato (ad es. selenio) alla risoluzione specificata
  • aggiungere una regola firewall per aprire la porta RDP 3389
  • configurare l'accesso automatico per accedere come rdp_local al riavvio

Si noti che l'accesso automatico richiede un nome utente e una password e che la password è memorizzata non crittografata nel registro di Windows HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon.

Testato su AMI di Amazon Windows Server 2012 R2.

Ecco un libro di cucina per Chef che fa quanto sopra: https://github.com/dhoer/chef-windows_screenresolution


AGGIORNAMENTO: consiglierei di utilizzare github.com/dhoer/choco-screen-resolution#screen-resolution per impostare la risoluzione dello schermo su macchine Windows utilizzate per i test del selenio. Non richiede l'installazione di driver e l'accesso automatico è sicuro (nessuna password in testo semplice)
Dennis Hoer
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.