やりたいこと
WindowsのヘッドレスサーバにRealVNCからリモートアクセスしたいのですが、PCのモニタを未接続のままではRealVNCの画面が真っ黒になり、何も表示されません。
前回の記事で、仮想ディスプレイを導入する対処法を紹介しました。しかし、Windowsを再起動すると仮想ディスプレイが消えてしまうことが判明しました。
そこで、Windows起動時に仮想ディスプレイを再生成させるため、管理者権限で動作するバッチファイルを作成しました。しかし、次のプロンプト確認が表示されてしまい、結局うまくいきませんでした。

そのため、HDMI EDIDエミュレーターの導入に決めました。幸い、価格も1,000円未満と手頃でした。
環境
| ソフト | バージョン |
|---|---|
| Windows11 | 23H2 |
| RealVNC Server | 7.12.1(r21) |
| RealVNC Viewer | 7.12.0(r14) |
手順
- 以下のAmazonリンクからEDIDエミュレータを購入します。
- モニタのHDMI端子の代わりに、このEDIDエミュレータを接続します。
以上です。
調べた事のメモ
管理者権限で起動するバッチ内容
管理者権限で動作するロジックはGitHub Copilotに生成させました。結局HDMI EDIDエミュレータを使用することにしたため、ロジックの内容は詳細に確認していません。
@echo off
REM 実行時に管理者権限として動作させます。
:: BatchGotAdmin
:-------------------------------------
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%system32cacls.exe" "%SYSTEMROOT%system32configsystem"
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%getadmin.vbs"
echo UAC.ShellExecute "cmd.exe", "/c ""%~s0""", "", "runas", 1 >> "%temp%getadmin.vbs"
"%temp%getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%getadmin.vbs" ( del "%temp%getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
:--------------------------------------
REM 仮想ディスプレイを有効化します。
deviceinstaller64 enableidd 1
