UltraVNCとMirrorDriverと日本語化パッチをフルオートでインストールするバッチファイルを作る
目次
PCのリモートメンテナンスや外出先から家のPCを遠隔操作したりするのに UltaraVNC をメインに使っています。
フリーソフトだし、軽いし、操作しやすいし、ミラードライバー(MirrorDriver)と組み合わせれば操作レスポンスもいいので気に入っています。このUltraVNCを仕事上、何台ものパソコンにインストールすることがあるのですが、インストールにひと手間かかるので思い切ってバッチファイル作ってみたのでメモ。
このバッチファイルでできること
今回作るのは遠隔操作される側のPCに UltraVNC のサーバーの機能のみをインストールするバッチファイルですが、ただインストールするだけではなく、初期設定などを含めて以下のことを同時に行います。
- UltraVNCのインストール
- 日本語化パッチの適用
- ミラードライバー(MirrorDriver)のインストール
- ファイアウォールの許可
これをバッチファイルで全自動で行います。
事前に用意しておくもの
バッチファイルでは以下のファイルを使用します。たくさんあってちょっと面倒ですが、事前にダウンロードしておいてください。
- UltraVNCのインストーラー
- WinVNC.exe
- MirrorDriver(ミラードライバー)
- 日本語化パッチ
- Ultravnc.ini
- INFファイル
- Devcon.exe(デブコン)
それぞれの入手方法とダウンロード先
UltraVNCのインストーラー
x64版とx86版の両方をダウンロードしてください。現在の最新バージョンは 1.2.2.2 ですが、日本語化パッチがうまく適用できたのが 1.2.1.6 用だったので、ここでは 1.2.1.6 をダウンロードします。
対応しているOSは Windows 10/8.1/8/7/Vista/XP、Windows Server 2012 R2/2012/2008 R2/2008/2003 R2 で、ほぼどの Windows に対応しています。
バージョン | 1.2.1.6 | |
ダウンロードリンク | x64 | https://www.uvnc.eu/download/1216/UltraVNC_1_2_16_X64_Setup.exe |
x86 | https://www.uvnc.eu/download/1216/UltraVNC_1_2_16_X86_Setup.exe |
winvnc.exe
winvnc.exeはUltraVNCのサーバー本体です。上記のインストーラーで winvnc.exe はインストールされるのですが、日本語化パッチが対応していないので、ここで別途日本語化に対応した winvnc.exe をダウンロードして用意します。これを後で Program Files にインストールされた winvnc.exe と置き換えて使います。これもバージョンは 1.2.1.6 を使用します。
バージョン | 1.2.1.6 | |
ダウンロードリンク | x64 | https://support1.uvnc.com/download/1216/uvnc_1216_X64.zip |
x86 | https://support1.uvnc.com/download/1216/uvnc_1216_W32.zip |
MirrorDriver
ミラードライバーは描画をハードウェア処理するドライバーで、操作される側に入れると操作する側のレスポンスが軽快になります。
バージョン | 1.0022 |
ダウンロードページ | http://www.uvnc.eu/download/driver.zip http://sc.uvnc.com/drivers.zip http://support1.uvnc.com/download/UVNC_MD_SDK.zip |
どちらのリンクでも同じものがダウンロードできます。解凍すれば、これ一つに x64用 と x86用 の両方が入っています。
インストール後はデバイスマネージャーを開くを以下のように表示されます。
日本語化パッチ
日本語化パッチは日本語化工房さんのページで配布されています。UltarVNCサーバーの設定メニューを英語から日本語に変更してくれるものです。これもバージョン 1.2.1.6 用をダウンロードします。
バージョン | 1.2.1.6 |
ダウンロードページ | https://www.nihongoka.com/jpatch_main/ultravnc/ultravnc1216_jp/ |
ダウンロードリンク | https://www.nihongoka.com/wp_files/ultravnc1216_jp.zip |
解凍すると、サーバー用 と ビューワー用 のそれぞれ x64用 と x86用 が入っています。
ultravnc.ini
ultravnc.ini はUltraVNCをインストールしたPCにある UltraVNCサーバ の設定ファイルです。これを用意しておけば、インストールと同時に設定ができるので、インストール後の設定を手動で行う作業を省くことができます。例えば接続パスワードや壁紙を省く設定などを統一できます。ultravnc.ini を用意する方法は2つあります。
UltraVNCがインストールされているPCから取り出す方法
ultravnc.iniはUltraVNCがインストールされているPCがあれば以下の場所の保存されています。
C:\Program Files\uvnc bvba\UltraVNC\ultravnc.ini
手動で作成する方法
ultravnc.ini はメモ帳などで作成することもできます。
例えば、画像と同じようなセッティングの場合は以下のようになります。
認証パスワードは暗号化されたものを入れないといけないので、同じパスワードが設定されているUltraVNCがインストールされているPCからコピーするか、後から設定するために空にしておくなどが必要です。ちなみにパスワードは「1234567890」を設定したときのものです。
[ultravnc] passwd=F0E43164F6C2E37377 passwd2=F0E43164F6C2E37377 [Permissions] [poll] TurboMode=1 PollUnderCursor=0 PollForeground=0 PollFullScreen=1 OnlyPollConsole=0 OnlyPollOnEvent=0 MaxCpu=40 EnableDriver=1 EnableHook=1 EnableVirtual=0 SingleWindow=0 SingleWindowName= [admin] UseRegistry=0 MSLogonRequired=0 NewMSLogon=0 DebugMode=0 Avilog=0 path=C:\Program Files\uvnc bvba\UltraVNC accept_reject_mesg= DebugLevel=0 DisableTrayIcon=0 rdpmode=0 LoopbackOnly=0 UseDSMPlugin=0 AllowLoopback=1 AuthRequired=1 ConnectPriority=0 DSMPlugin= AuthHosts= DSMPluginConfig= AllowShutdown=1 AllowProperties=1 AllowEditClients=1 FileTransferEnabled=1 FTUserImpersonation=1 BlankMonitorEnabled=1 BlankInputsOnly=0 DefaultScale=1 primary=1 secondary=0 SocketConnect=1 HTTPConnect=1 AutoPortSelect=1 PortNumber=5900 HTTPPortNumber=5800 IdleTimeout=0 IdleInputTimeout=0 RemoveWallpaper=1 RemoveAero=1 QuerySetting=2 QueryTimeout=10 QueryAccept=0 QueryIfNoLogon=1 InputsEnabled=1 LockSetting=0 LocalInputsDisabled=0 EnableJapInput=1 kickrdp=0 clearconsole=0 [admin_auth] group1= group2= group3= locdom1=0 locdom2=0 locdom3=0
INFファイル
INFファイルはUltaraVNCをどのようにインストールするかを設定するファイルです。例えば、GUIでインストールするときにサーバーまたはビューワーのみか、フルインストールなどを選択したり、サービスの登録をするかなどの設定をを行いますが、INFファイルで指定しておけば、そのとおりにインストールでできます。このファイルを用意する方法は2つあります。
コマンドから起動したインストーラーから書き出す
以下のように、 SAVEINF="c:\server_only_install_setting.inf" といったパラメーターを加えてコマンドプロンプトからUltraVNC.exeを起動し、GUIでインストールするとGUIで設定したとおりの内容でINFファイルが書き出されますので、それをコピーして使います。
c:\UltraVNC_1_2_16_X64_Setup.exe SAVEINF="c:\server_only_install_setting.inf"
手動で作成する
メモ帳で作成することもできます。上記の画像のようにサーバーのみのインストールと、サービスに登録、起動時にサービスを実行するとした場合は以下のようになります。
[Setup] Lang=en Dir=C:\Program Files\uvnc bvba\UltraVNC Group=UltraVNC NoIcons=0 SetupType=server Components=ultravnc_server Tasks=installservice,startservice
Devcon.exe
Devcon(デブコン)はハードウェアのデバイスドライバをコマンドで Windows にインストールするためのツールで、MirrorDriver をインストールするために使います。x64版とx86版の両方をダウンロードしてください。
上記の圧縮ファイルを解凍しただけでは Devcon.exe は出てきません。解凍したフォルダの中から以下のファイルを探してください。それを devcon.exe に名前を変更して取り出ます。
x64用 | filbad6e2cce5ebc45a401e19c613d0a28f ←これをdevcon.exeにリネーム |
x86用 | fil5a9177f816435063f779ebbbd2c1a1d2 ←これをdevcon.exeにリネーム |
Decon_x64、Devcon_x86というフォルダを作って、それぞれのフォルダにdevcon.exeを移動してください。残った他のファイルは不要です。
ダウンロード後のフォルダ・ファイル階層
これで必要なものが全部整いました。今回のバッチファイルで使うファイルは赤枠のようにフォルダを作り、階層を以下のようにしました。
バッチファイル
以下のソースをメモ帳に貼り付け、サイレントインストール.batなど適当に名前を付けて、ダウンロードしたファイルと同じ階層に保存して実行してください。
@echo off setlocal enabledelayedexpansion
echo. echo ========================================= echo UltraVNC をインストールします。 echo Windows 7/8.1/10(サーバーのみ) echo ========================================= echo.
pause
echo. echo OSの環境を確認しています。 echo. echo ----------------------------------------- ver echo %PROCESSOR_ARCHITECTURE% echo. echo -----------------------------------------
:: セットアップに必要なファイルのパス if %PROCESSOR_ARCHITECTURE% equ x86 ( set SETUPEXE=%~dp0インストーラー\UltraVNC_1_2_16_X86_Setup.exe set VNCEXE=%~dp0bin\uvnc_1216_W32\win8\winvnc.exe set LANGEXE=%~dp0日本語化パッチ\ultravnc1216_jp\=ultravnc1216_winvnc_win8_w32_jp.exe set MV2INF=%~dp0Mirror_Driver_1.0022\vista\driver\mv2.inf set DEVCONEXE=%~dp0Devcon\x86\devcon.exe goto MIRROR_DRIVER ) else if %PROCESSOR_ARCHITECTURE% equ AMD64 ( set SETUPEXE=%~dp0インストーラー\UltraVNC_1_2_16_X64_Setup.exe set VNCEXE=%~dp0bin\uvnc_1216_X64\win8\winvnc.exe set LANGEXE=%~dp0日本語化パッチ\ultravnc1216_jp\ultravnc1216_winvnc_win8_x64_jp.exe set MV2INF=%~dp0Mirror_Driver_1.0022\vista64\driver\mv2.inf set DEVCONEXE=%~dp0Devcon\x64\devcon.exe goto MIRROR_DRIVER ) echo. echo OSの環境が確認できませんでしたので終了します。 echo. goto EXIT
:MIRROR_DRIVER :: ミラードライバーをインストール echo. echo Mirror Driver がインストールされている確認しています。 "%DEVCONEXE%" find mv_hook_display_driver2 | find "No matching devices found." if %ERRORLEVEL% equ 0 ( echo. echo Mirorr Driver はインストールされていません。 echo. echo Mirorr Driver をインストールしています。 echo. "%DEVCONEXE%" install "%MV2INF%" mv_hook_display_driver2 echo. goto SETUP ) else ( echo. echo Mirror Driver はインストール済みです。 goto SETUP )
:SETUP :: UltraVNCをインストール :: サービスが存在していれば停止 sc query uvnc_service | find "RUNNING" > nul if %ERRORLEVEL% equ 0 ( echo. net stop uvnc_service )
:: Windowsファイアウォール ルール重複防止のため事前にルールを削除 netsh advfirewall firewall delete rule name="vnc5800" > nul netsh advfirewall firewall delete rule name="vnc5900" > nul netsh advfirewall firewall delete rule name="winvnc.exe" > nul
echo UltraVNC をインストールしています。しばらくお待ちください。 "%SETUPEXE%" /SP- /VERYSILENT /LOADINF="%~dp0構成ファイル\server_only_install_setting.inf" /NORESTART
echo. net stop uvnc_service
:KANKYO_SETTEI :: 管理者パスワード、日本語キーボードの有効化、壁紙をAeroを無効にするなど、設定ファイルを上書き echo 環境設定ファイルを上書きしています。 echo F | xcopy /Y "%~dp0構成ファイル\ultravnc.ini" "%systemdrive%\Program Files\uvnc bvba\UltraVNC\ultravnc.ini" > nul
:LANG :: 日本語化パッチの適用 echo. echo 日本語化パッチを適用しています。 rem 日本語化対応のVNC.exeにインストール済みの本体に上書き echo F | xcopy /Y "%VNCEXE%" "%systemdrive%\Program Files\uvnc bvba\UltraVNC\winvnc.exe" > nul rem 日本語化パッチをコピー echo F | xcopy /Y "%LANGEXE%" "%systemdrive%\Program Files\uvnc bvba\UltraVNC\ultravnc_winvnc_jp.exe" > nul rem 日本語化実行 "%systemdrive%\Program Files\uvnc bvba\UltraVNC\ultravnc_winvnc_jp.exe" > nul
echo. net start uvnc_service
:FIREWALL echo ファイアウォールを設定しています。
:: UltaraVNC関連のルール ドメイン、プライベート、パブリック すべて許可 netsh advfirewall firewall set rule name="vnc5800" profile=public new enable=yes profile=any > nul netsh advfirewall firewall set rule name="vnc5900" profile=private,public new enable=yes profile=any > nul netsh advfirewall firewall set rule name="vnc5900" profile=public new enable=yes profile=any > nul netsh advfirewall firewall set rule name="vnc5900" profile=private,public new enable=yes profile=any > nul netsh advfirewall firewall set rule name="winvnc.exe" protocol=UDP profile=public new enable=yes profile=any > nul netsh advfirewall firewall set rule name="winvnc.exe" protocol=UDP profile=private,public new enable=yes profile=any > nul netsh advfirewall firewall set rule name="winvnc.exe" protocol=TCP profile=public new enable=yes profile=any > nul netsh advfirewall firewall set rule name="winvnc.exe" protocol=TCP profile=private,public new enable=yes profile=any > nul
:: 不要なルールは無効にしておく netsh advfirewall firewall set rule name="vnc5800" profile=private new enable=no > nul netsh advfirewall firewall set rule name="vnc5900" profile=private new enable=no > nul netsh advfirewall firewall set rule name="winvnc.exe" protocol=UDP profile=private new enable=no > nul netsh advfirewall firewall set rule name="winvnc.exe" protocol=TCP profile=private new enable=no > nul
:: Ping 応答要求関連のルール ドメイン、プライベート、パブリック すべて許可 netsh advfirewall firewall set rule name="ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)" profile=public new enable=yes profile=any > nul netsh advfirewall firewall set rule name="ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)" profile=private,public new enable=yes profile=any > nul netsh advfirewall firewall set rule name="ファイルとプリンターの共有 (エコー要求 - ICMPv6 受信)" profile=public new enable=yes profile=any > nul netsh advfirewall firewall set rule name="ファイルとプリンターの共有 (エコー要求 - ICMPv6 受信)" profile=private,public new enable=yes profile=any > nul
echo. echo UltraVNCのインストールが完了しました。 echo.
:EXIT endlocal pause exit
実行の際の注意
管理者として実行しないとファイルのコピーや devcon.exe 実行の段階でエラーになります。
また、実行途中で以下のような画面が出ます。これは日本語化パッチ適用時の段階で出ます。このダイアログが出たら [OK] を押してください。[OK] を押さないと次に進むことができません。
他のサイトで見つけたソースの参考
その1
@echo off ::remove old version if it exists "%systemdrive%\Program Files\UltraVNC\unins000.exe" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART rmdir /S /Q "%systemdrive%\Program Files\UltraVNC"
::Copy preconfigured settings file into place mkdir "%systemdrive%\Program Files\UltraVNC" copy %systemdrive%\UVNC\UltraVNC\ultravnc.ini "%systemdrive%\Program Files\UltraVNC\"
:: Install UltraVNC Server %systemdrive%\UVNC\UltraVNC_1.0.9.6.1_Setup.exe /SP- /VERYSILENT /NORESTART /LOADINF=%systemdrive%\UVNC\install_server.inf
::Install the UVNC Server Service "%systemdrive%\Program Files\UltraVNC\winvnc.exe" -install
::Load (or reload) the UVNC Mirror driver %systemdrive%\UVNC\UVNCDriver\devcon.exe install %systemdrive%\UVNC\uvncdriver\mv2.inf mv_hook_display_driver2
::Wait for processes to complete @ping 1.1.1.1 -n 1 -w 5000
::Install UltraVNC Viewer %systemdrive%\UVNC\UltraVNC_1.0.9.6.1_Setup.exe /SP- /VERYSILENT /NORESTART /LOADINF=%systemdrive%\UVNC\install_viewer.inf
::Clean up install files rmdir /S /Q %systemdrive%\UVNC del %0
その2
::Old version removal if it exists "%systemdrive%\Program Files\UltraVNC\unins000.exe" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART rmdir /S /Q "%systemdrive%\Program Files\UltraVNC"
::UVNC Installation if not exist %systemdrive%\UVNC\ md %systemdrive%\UVNC\ xcopy \\"your share"\UVNC %systemdrive%\UVNC\ /y /s
if %PROCESSOR_ARCHITECTURE% == AMD64 goto ver_x64 if %PROCESSOR_ARCHITECTURE% == x86 goto ver_x86
:ver_x64 %systemdrive%\UVNC\UltraVNC_X64_Setup.exe /SP- /VERYSILENT /NORESTART /LOADINF=%systemdrive%\UVNC\setup.inf goto serv
:ver_x86 %systemdrive%\UVNC\UltraVNC_X86_Setup.exe /SP- /VERYSILENT /NORESTART /LOADINF=%systemdrive%\UVNC\setup.inf
:serv ::UVNC Server Service Installation cacls "%systemdrive%\Program Files\UltraVNC" /T /E /G Everyone:F copy "%systemdrive%\UVNC\ultravnc.ini" "%systemdrive%\Program Files\UltraVNC" "%systemdrive%\Program Files\UltraVNC\winvnc.exe" -install
::UVNC Mirror driver installation certutil.exe -addstore "TrustedPublisher" %systemdrive%\UVNC\uvnc.cer
ver | find "XP" > nul if %ERRORLEVEL% == 0 goto xp
ver | find "6.1" > nul if %ERRORLEVEL% == 0 goto win7
:xp start %systemdrive%\UVNC\driver\xp\install.bat goto exit
:win7 if %PROCESSOR_ARCHITECTURE% == x86 start %systemdrive%\UVNC\driver\vista\install.bat
if %PROCESSOR_ARCHITECTURE% == AMD64 start %systemdrive%\UVNC\driver\vista64\install.bat
:exit
::Timeout PING -n 60 127.0.0.1>nul
::Install files clean up rmdir /S /Q %systemdrive%\UVNC
del %0
参考サイト