Amazon EC2 Windowsマシンの解像度を変更するにはどうすればよいですか?


9

(私はこれをここに投稿すること、ServerFault、StackOverFlowの間で議論しました。これで解決しました。うまくいけば、適切な場所にあります。)

Amazon EC2 Windowsマシン(AmazonのCloudFormation APIを使用して起動された)でSelenium Grid 2を使用して、UIテストスイートを実行します。私の質問は、そのマシンの解像度を変更するにはどうすればよいですか?

リモートで接続する場合は、リモートデスクトップを使用して解像度を指定できます。ただし、これで解像度が永久に変わるわけではありません。テストを実行すると、解像度が非常に小さいため、ブラウザーが要素を一緒に切り詰めてしまい、テストが失敗します。

何か案は?CloudFormationレシピに入れられるものはありますか?AMIを作成する前にイメージにできることはありますか?

デバイスマネージャーのスクリーンショット

ありがとう。


1
面白い。それは私が想像する標準のインスタンスでなければならないので、インスタンスに割り当てられたCUDAグラフィックカードはありません。つまり、標準の仮想グラフィックスカードを使用しています。デバイスマネージャーではどのように見えますか?スクリーンショットを投稿できますか?あなたは、コンソールへのRDP-INGすることによって、より高いそれを強制することができる場合がありますmstsc.exe /console
ポール・

@Paul、スクリーンショットを追加しました。これは標準インスタンスです。Windows Server R2。ありがとう。
Joel、

@ジョエル、これを解決したことは?私はこれを数日間、以下の答えを使用することを含め、これを行う方法を模索してきましたが、今のところうまくいきません。再起動時、またはAMIからの作成時(回答が適用されている場合でも)、1024x768で起動します。
Sean

回答:


4

免責事項:TightVNCは安全ではないため、セキュリティが問題である場合は、別のアプローチを見つける必要があります。プロセス全体には数分しかかからないため、セキュリティホールは小さいですが、それでも問題はありません。

  1. コンソールにログインできるように、EC2インスタンスにTightVNC Serverをインストールします
  2. すべてのユーザーのリモートデスクトップセッションを切断し、セッションをコンソールに戻します
  3. TightVNCビューアーを使用してEC2インスタンスコンソールにログインし、ポート5900がその接続用に開いていることを確認します。
    • デスクトップを右クリックして[画面の解像度]を選択します
    • 「詳細設定」を選択します
    • 「すべてのモードをリスト」を選択します
    • より高い解像度を選択してください

これにより、解像度を変更することができましたが、実際の問題は修正されると信じていましたが、修正されませんでした。タスクスケジューラを介してWindows 2008 ec2サーバーで自動実行されている私のセレンテストは、まだ小さな解像度で実行されています。上記で更新した後でも、より小さな解像度で実行されています。はい、ウィンドウはセレン構成で解像度を最大化するように設定されています。
コピーして貼り付ける

1

2つのレジストリ値を変更することにより、画面解像度を変更できます。これらの2つの値は次のとおりです HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.XResolution HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.YResolution。GUIDはランダムに生成されたGUIDです。

XResolutionとYResolutionの値は、16進数である限り、実際に指定できます。

注:不合理な解像度を指定するCRTモニターの場合、モニターが損傷する可能性があります。LCDモニターの場合、モニターにユーザーインターフェイスが表示されなくなる可能性があります。画面の解像度を変更する良い方法は、画面の幅を埋めるピクセル数(これはXResolutionです)と画面の高さで必要なピクセル数(YResolution)を書き留めることです。Windows計算機(Server Coreでは使用できません。別のコンピューターまたはハードウェアの高度な計算機を見つける必要があります)を使用すると、10進数を16進数に簡単に変換できます。その後、これらの値を使用して、対応するレジストリ値を変更できます。再起動すると、希望の画面解像度が現実のものになります。

モニターで使用される色深度は、次のレジストリ値にキャプチャされています。 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.BitsPerPel私のボックスでは、この16進数値は0x00000008(8)に設定されていました。これは、画面で8ビットの色深度を使用することを意味します。(256色)16ビット(0x00000010)に変更すると、65536色(ハイカラー)が表示されます。通常使用できる他の値は、24ビット(0x00000018)および32ビット(0x00000020)です。

ソース


GUID.0000のいずれにもDefaultSettings。* Resolutionキーがありません。仮想デバイスしかないからだと思います。それぞれにそのキーを追加できますか?それはうまくいくでしょうか?
Joel

@ジョエル:私はそれを疑う。「ビデオ」ブランチはまったくありませんか?EC2にServer Core 2008 R2インスタンスがあるので、今晩それを確認します。
パラドロイド2012

うん、そうは思わなかった。とにかく聞いてみようかな。解決策を探し続けます。何か見つけたらお知らせください。ありがとう。
Joel

レジストリにDefaultSettings。*もありません。私もこの解決策を試すことができませんでした。それはすべてではなく、一部を助けることができるようです。
コピーして貼り付け

1

上記の@ kenny-trytekの回答と自動ログインの設定を組み合わせて使用​​して、これを機能させることができました。

VNCの解像度は現在のユーザーに対してのみ設定されると思います。そのため、自動ログインを設定すると、このユーザーが確実にセッションを開くことができます。

自動ログインのセットアップ https://support.microsoft.com/en-us/kb/324737

次に、ユーザーのStart Upフォルダーに、セレンノードプロセスを開始するためのショートカットまたはbatファイルを提供します。


1
リンク先のページが変更されると回答が無効になる可能性があるため、参照リンクから回答の本質的な部分を引用してください。
DavidPostill

1

私は上記のほとんどすべてを試して失敗しました。シンプルな.. windows power-shellを使用する、私の状況に固有のソリューションを見つけました。

power-shellスクリプトを書いた

Set-DisplayResolution -Width 1920 -Height 1080 -Force

それにresolution.ps1という名前を付けます

C:\ myTestFolderに保存されました

以下のようなコマンドラインから実行します.....(私のスクリプトはバッチファイルによって駆動されます)

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

0

以下は、RDPを使用してAWS Windowsでヘッドレス画面の解像度を設定する方法です。

  • rdp_localという新しいユーザーを作成する
  • 指定された解像度で指定されたユーザーアカウント(セレンなど)にRDPへの起動スクリプトを作成する
  • ファイアウォールルールを追加してRDPポート3389を開く
  • 再起動時にrdp_localとしてログインするように自動ログオンを構成する

自動ログオンにはユーザー名とパスワードが必要であり、パスワードは暗号化されずにWindowsレジストリHKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogonに保存されることに注意してください。

Amazon Windows Server 2012 R2 AMIでテスト済み。

これは、上記を行うChefクックブックです。https//github.com/dhoer/chef-windows_screenresolution


更新:github.com/dhoer/choco-screen-resolution#screen-resolutionを使用して、セレンテストに使用されるWindowsマシンの画面解像度を設定することをお勧めします。ドライバのインストールは不要で、自動ログインは安全です(プレーンテキストのパスワードはありません)
Dennis Hoer
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.