Edited at

Windowsアップデートによってリモートデスクトップできなくなった場合の対処


追加修正 (2019.04.19updated)

2018年4月の Windows Update (April 2018 Update 1803) によってまたしても RDP Wrapper でリモートデスクトップが封じられてしまったので対策方法を修正


前提

Windows 10 の Windows Update すると時々リモートデスクトップで他PCから入れなくなることが度々ある。特に Windows10 HOME はリモートデスクトップ(RDP)サービスが元々入っていないので RDP Wrapper をインストールして対応するが、これも封じられてしまう。


対策

対策としては、termsrv.dll を入手してインストールする方法と rdpwrap.ini に設定を追加する方法があるがここでは後者を説明する(検索すると前者は沢山出てくるので割愛)


  1. rfxvmt.dll をコピーする

  2. RDP Wrapper をインストールする(2019年4月時点では v1.6.2)

  3. rdpwrap.ini に設定を追加

基本的にこれで大丈夫。


rfxvmt.dll をコピー

もともと C:\Windows\system32 の下にあるリモートデスクトップ/リモートアシスト用のDLLがWindows Update で消されてしまうらしいのでコピーする

手元の rfxvmt.dll が無い場合には下記よりダウンロードしてコピーする。

64-bit Windows 10用: https://github.com/stascorp/rdpwrap/files/1236856/rfxvmt.zip

32-bit Windows 10用: https://github.com/stascorp/rdpwrap/files/1238499/rfxvmt.zip


RDP Wrapper 最新版をインストール

RDP Wrapper を Release よりダウンロード

あとは install.bat -> update.bat する


rdpwrap.ini に設定を追加上書き

2019.07.15追加

rdpwrap.ini を修正するのが面倒な人は、下記の github (注意:本家から foked されたもの)からダウンロードして使うと良いだろう。

https://github.com/DrDrrae/rdpwrap/blob/master/res/rdpwrap.ini

以下は古い情報 (2019.07.10まで)

C:\Program Files\RDP Wrapper\rdpwrap.ini に下記サイトの設定を追加する

rdpwrap.ini は管理者権限でないと修正保存できないのでプロパティ情報を変えるなり管理者権限で修正追加を行う

Add support for build 10.0.17763.292 #645

追加する設定

;----------------------snip part1

[10.0.17763.292]
; Patch CEnforcementCore::GetInstanceOfTSLicense
LocalOnlyPatch.x86=1
LocalOnlyOffset.x86=AFAD4
LocalOnlyCode.x86=jmpshort
LocalOnlyPatch.x64=1
LocalOnlyOffset.x64=77A11
LocalOnlyCode.x64=jmpshort
; Patch CSessionArbitrationHelper::IsSingleSessionPerUserEnabled
SingleUserPatch.x86=1
SingleUserOffset.x86=4D665
SingleUserCode.x86=nop
SingleUserPatch.x64=1
SingleUserOffset.x64=1322C
SingleUserCode.x64=Zero
; Patch CDefPolicy::Query
DefPolicyPatch.x86=1
DefPolicyOffset.x86=4BE69
DefPolicyCode.x86=CDefPolicy_Query_eax_ecx
DefPolicyPatch.x64=1
DefPolicyOffset.x64=17F45
DefPolicyCode.x64=CDefPolicy_Query_eax_rcx
; Hook CSLQuery::Initialize
SLInitHook.x86=1
SLInitOffset.x86=5B18A
SLInitFunc.x86=New_CSLQuery_Initialize
SLInitHook.x64=1
SLInitOffset.x64=1ABFC
SLInitFunc.x64=New_CSLQuery_Initialize
;.------------------------------------
;

;
;.--------------------------snip part2
[10.0.17763.292-SLInit]
bInitialized.x86 =CD798
bServerSku.x86 =CD79C
lMaxUserSessions.x86 =CD7A0
bAppServerAllowed.x86 =CD7A8
bRemoteConnAllowed.x86=CD7AC
bMultimonAllowed.x86 =CD7B0
ulMaxDebugSessions.x86=CD7B4
bFUSEnabled.x86 =CD7B8

bInitialized.x64 =ECAB0
bServerSku.x64 =ECAB4
lMaxUserSessions.x64 =ECAB8
bAppServerAllowed.x64 =ECAC0
bRemoteConnAllowed.x64=ECAC4
bMultimonAllowed.x64 =ECAC8
ulMaxDebugSessions.x64=ECACC
bFUSEnabled.x64 =ECAD0
;.---------------------------

RDP Wrapper を再起動して RDPCheck なり RDPConf でポートが listen 状態か確認


参考サイト

https://github.com/stascorp/rdpwrap/issues/645

https://www.rootlinks.net/2019/02/14/rdp-wrapperのtermsrv-dll-ver-10-0-17763-292での対応/

https://qiita.com/aoi70/items/47e521c6a310e3959b35

https://wanderism.net/archives/686

https://github.com/stascorp/rdpwrap/issues/194