Windows 11
 Computer >> コンピューター >  >> システム >> Windows 11

Windows 10および11で複数のRDPセッションを許可するにはどうすればよいですか?

リモートユーザーは、リモートデスクトップサービス(RDP)を介してWindows10および11コンピューターに接続できます。デバイス設定でRDPを有効にし、リモートデスクトップクライアントを使用してコンピューターに接続するだけで十分です。ただし、同時RDPセッションの数には制限があります。同時に作業できるのは1人のリモートユーザーのみです。 2番目のRDPセッションを開こうとすると、最初のユーザーのセッションを切断するように求める警告が表示されます。

別のユーザーがログインしています。続行すると、そのユーザーは切断されます。とにかくサインインしますか?

すべてのデスクトップWindowsバージョン(Win 10および11を含む)には、リモートデスクトップサービスの使用に関していくつかの制限があります。

  1. RDPを介してリモート接続できるのは、Windowsの上位エディション(ProfessionalおよびEnterprise)のみです。 Windows HomeおよびSingleLanguageエディションでは、着信リモートデスクトップ接続は禁止されています。
  2. 1つの同時RDP接続のみがサポートされます。 2番目のRDPセッションを開こうとすると、ユーザーはアクティブな接続を閉じるように求められます。
  3. コンピューターのコンソールで(ローカルで)作業しているユーザーがいる場合、新しいリモートRDP接続を作成しようとすると、コンソールセッションが切断されます。ユーザーがローカルでログインしようとすると、リモートRDPセッションも強制的に切断されます。

Windows 10および11で複数のRDPセッションを許可するにはどうすればよいですか?

実際、Windowsでの同時RDP接続の数は、ライセンスによって制限されます(技術的な側面では制限されません)。したがって、この制限では、複数のユーザーが使用できるワークステーションに基づいてターミナルRDPサーバーを作成することはできません。 Microsoftのロジックは単純です。ターミナルサーバーが必要な場合は、Windows Serverライセンス、RDS CALを購入し、リモートデスクトップセッションホスト(RDSH)の役割をインストールして構成します。

技術的には、十分な量のRAMを備えたWindowsバージョンであれば、数十人のリモートユーザーの同時操作をサポートできます。 1つのユーザーセッション(実行中のアプリを除く)には、平均して150〜200MBのRAMが必要です。これらの場合、同時RDPセッションの最大数は、理論的にはコンピューターリソースによってのみ制限されます。

Windows10と11で同時にRDP接続を許可する方法について2つの方法を考えてみましょう。RDPラッパーを使用する方法です。 ツールまたはパッチを適用するtermsrv.dll システムファイル。

。この記事に記載されているシステムの変更は、Microsoftライセンス契約の違反と見なされ、自己責任で実行することができます。

RDPラッパー:Windowsで複数のRDPセッションを有効にする

RDPラッパーライブラリ OpenSourceプロジェクトを使用すると、termsrv.dllファイルを置き換えることなく、Windows10で複数のRDPセッションを有効にできます。このツールは、SCM(サービスコントロールマネージャー)とリモートデスクトップサービスの間のレイヤーとして機能します。 RDPWrapを使用すると、複数の同時RDP接続のサポートを有効にするだけでなく、WindowsHomeエディションでRDPサーバーを構築することもできます。 RDPラッパーはtermsrv.dllファイルに変更を加えず、変更されたパラメータを使用してtermsrvライブラリをロードするだけです。

したがって、RDPWrapは、termsrv.dllファイルが更新された場合でも機能します。これにより、WindowsUpdateを恐れることがなくなります。

重要 。 RDPラッパーをインストールする前に、termsrv.dllファイルの元の(パッチが適用されていない)バージョンを使用していることを確認することが重要です。そうしないと、RDPラッパーが不安定になったり、まったく起動しなくなったりする可能性があります。

RDPラッパーはGitHubリポジトリhttps://github.com/binarymaster/rdpwrap/releasesからダウンロードできます(RDPラッパーライブラリの最新バージョンはv1.6.2です)。プロジェクトは2017年以降更新されていませんが、Windows 10のすべての新しいビルド、さらにはWindows11で使用できます。

RDPWrap-v1.6.2.zip アーカイブにはいくつかのファイルが含まれています:

  • RDPWinst.exe —RDPラッパーライブラリがプログラムをインストール/アンインストールします。
  • RDPConf.exe —RDPラッパー構成ツール;
  • RDPCheck.exe -RDPチェックユーティリティ(ローカルRDPチェッカー);
  • install.bat、uninstall.bat、update.bat — RDPラッパーをインストール、アンインストール、および更新するためのバッチファイル。

Windows 10および11で複数のRDPセッションを許可するにはどうすればよいですか?

RDPWrapをインストールするには、 install.batを実行します 管理者としてファイル。プログラムはC:\ Program Files \ RDP Wrapperにインストールされます。 ディレクトリ。

Windows 10および11で複数のRDPセッションを許可するにはどうすればよいですか?

インストールが完了したら、 RDPConfig.exeを実行します 。ほとんどの場合、インストール直後に、ツールはRDPラッパーが実行されている(インストール済み、実行中、リスニング中)ことを示しますが、機能していません。赤い警告[サポートされていません]に注意してください。このバージョンのWindows10(バージョン10.0.19041.1320)はRDPWrapperでサポートされていないことが報告されています。

Windows 10および11で複数のRDPセッションを許可するにはどうすればよいですか?

実際のところ、Windows 10のバージョンごとに、rdpwrap.ini構成ファイルに説明が必要です。構成ファイルには、Windows10ビルドの設定が含まれていません。

rdpwrap.iniファイルの現在のバージョンは、https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini

からダウンロードできます。

このページの内容を「C:\ ProgramFiles \ RDP Wrapper\rdpwrap.ini」ファイルに手動でコピーします。または、PowerShellコマンドレットInvoke-WebRequestを使用してファイルをダウンロードします(最初にリモートデスクトップサービスを停止する必要があります):

Stop-Service termservice -Force
Invoke-WebRequest https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini -outfile "C:\Program Files\RDP Wrapper\rdpwrap.ini"

Windows 10および11で複数のRDPセッションを許可するにはどうすればよいですか?

コンピューターを再起動し、RDPConfig.exeツールを実行します。 診断ですべての項目が緑色になっていることを確認します セクションとキャプション[完全にサポートされています]が表示されます。以下のスクリーンショットは、この新しい構成のRDPラッパーがWindows11でも正常に機能することを示しています。

Windows 10および11で複数のRDPセッションを許可するにはどうすればよいですか?

コンピューターへのRDPセッションをいくつか確立してみてください(任意のRDPクライアント(mstsc.exe、rdcmanなど)を使用してください)。それはうまくいきました(保存されたRDPクレデンシャルを使用することもできます)!これで、Windows 10では、2人(およびそれ以上)のリモートユーザーが異なるRDPセッションを同時に使用できるようになりました。

Windows 10および11で複数のRDPセッションを許可するにはどうすればよいですか?

RDPWrapツールはすべてのWindowsエディションでサポートされているため、任意のWindowsデバイスで独自のターミナル(RDS)サーバーを構築できます。

また、RDPラッパーでは次のことが可能です。

  • リモートデスクトップを有効にする;
  • オプションログオン画面でユーザーを非表示にする Windowsログオン画面からユーザーのリストを非表示にすることができます;
  • ユーザーごとの単一セッションを無効にした場合 オプションを選択すると、同じユーザーアカウント(レジストリパラメータ fSingleSessionPerUser )で複数の同時RDPセッションが許可されます。 =0はregキーHKLM\SYSTEM\ CurrentControlSet\Control\Terminal Server\fSingleSessionPerUserの下に設定されます );
  • RDPポート —リモートデスクトップのポート番号をTCP3389からその他に変更できます。
  • セッションシャドウイングモードの場合 セクションでは、RDPセッションへのリモートコントロール(シャドウ)接続モードを構成できます。
GPOを使用して、RDPセッションの期間に制限を設定できます。

RDPラッパーがWindows10で機能しない

場合によっては、RDPラッパーツールが期待どおりに機能せず、複数のRDPセッションを使用してWindowsホストにアクセスできないことがあります。

ユーティリティのステータスセクションに[サポートされていません]と表示された場合、rdpwrap.iniファイルにはWindowsビルドの構成が含まれていません。上記のようにrdpwrap.iniファイルを更新します。

rdpwrap.iniファイルを更新してもRDPラッパーが機能しない場合は、rdpwrap.iniファイルを開いて、Windowsバージョンの説明セクションを探してみてください。 rdpwrapper構成ファイルでご使用のバージョンのWindowsがサポートされているかどうかを確認するにはどうすればよいですか?

以下のスクリーンショットは、私のバージョンのWindows 10(10.0.19041.1320)には、2つの説明セクションがあることを示しています。

[10.0.19041.1320]…..[10.0.19041.1320-SLInit]…..

Windows 10および11で複数のRDPセッションを許可するにはどうすればよいですか?

ご使用のバージョンのWindowsの構成ファイルにセクションがない場合は、Googleを使用してWindowsビルドのrdpwrap.ini文字列を検索してみてください。見つけた行をファイルの最後に追加します。

また、RDPWrapperに問題がある場合は、https://github.com/stascorp/rdpwrap/issuesで問題を開くことができます。ここには、実際のrdpwrap.iniファイルもあります。

セキュリティ更新プログラムをインストールした後、またはWindows 10ビルドをアップグレードした後、RDPラッパーが正しく機能しない場合は、[診断]セクションに[リスナーの状態:リッスンしていません]が表示されているかどうかを確認してください。

Windows 10および11で複数のRDPセッションを許可するにはどうすればよいですか?

rdpwrap.iniファイルを更新してから、サービスを再インストールしてみてください:

rdpwinst.exe -u
rdpwinst.exe -i

別のユーザーアカウントで2番目のRDP接続を確立しようとすると、警告が表示されることがあります。

このコンピューターへの接続数は制限されており、現在すべての接続が使用されています。後で接続するか、システム管理者に連絡してください。

Windows 10および11で複数のRDPセッションを許可するにはどうすればよいですか?

この場合、ローカルグループポリシーエディター(gpedit.msc)を使用して、ポリシー「接続数の制限」を有効にすることができます。 [コンピューターの構成]->[管理用テンプレート]->[Windowsコンポーネント]->[リモートデスクトップサービス]->[リモートデスクトップセッションホスト]->[接続]セクションにあります。その値を999999に変更します。

Windows 10および11で複数のRDPセッションを許可するにはどうすればよいですか?

コンピューターを再起動してGPOを更新し、設定を適用します。

複数のRDPセッションを有効にするようにTermsrv.dllを変更します

rdpwrapperを使用せずにWindows10での同時RDPユーザー接続数の制限を解除するには、置換を実行できます。 元のtermsrv.dll ファイル。これは、リモートデスクトップサービスによって使用されるメインライブラリファイルです。ファイルはC:\ Windows \ System32にあります ディレクトリ。

termrv.dllファイルを編集または置換する前に、バックアップコピーを作成することをお勧めします。これは、必要に応じてファイルの元のバージョンに戻すのに役立ちます。管理者特権のコマンドプロンプトを開き、次のコマンドを実行します:

copy c:\Windows\System32\termsrv.dll termsrv.dll_backup

次に、ファイルの所有権を取得する必要があります。次のコマンドを使用して、ファイルの所有者をTrustedInstallerからローカルのAdministratorsグループに変更するには:

takeown /F c:\Windows\System32\termsrv.dll /A

成功:ファイル(またはフォルダー):c:\ Windows \ System32\termsrv.dllが管理者グループによって所有されるようになりました

次に、icacls.exeを使用してtermsrv.dllファイルに対するローカル管理者グループのフルコントロール権限を付与します。

icacls c:\Windows\System32\termsrv.dll /grant Administrators:F

<前処理されたファイル:c:\ Windows \ System32 \termsrv.dll1つのファイルが正常に処理されました。 0ファイルの処理に失敗しました。

Windows 10および11で複数のRDPセッションを許可するにはどうすればよいですか?

その後、リモートデスクトップサービス( TermService )を停止します ) services.mscを使用する コンソールまたはコマンドプロンプトから:

Net stop TermService

リモートデスクトップサービスのUserModeポートリダイレクターサービスはそれで停止します。

Windows 10および11で複数のRDPセッションを許可するにはどうすればよいですか?

先に進む前に、Windows 10のバージョン(ビルド番号)を確認する必要があります。PowerShellコンソールを開き、次のコマンドを実行します。

Get-ComputerInfo | select WindowsProductName, WindowsVersionを選択します

私の場合、Windows10ビルド21H1がインストールされています。

次に、任意のHEXエディター(Tiny Hexerなど)を使用してtermsrv.dllファイルを開きます。 Windowsビルドに応じて、次の表に従って文字列を見つけて置き換える必要があります。

Windowsビルド 文字列を検索 置換
Windows 11 RTM(

21H2 – 22000.258)

39 81 3C 06 00 00 0F 84 4F 68 01 00

B8 00 01 00 00 89 81 38 06 00 00 90

Windows 10 x64 21H2 39 81 3C 06 00 00 0F 84 DB 61 01 00
Windows 10 x64 21H1 39 81 3C 06 00 00 0F 84 2B 5F 01 00
Windows 10 x64 20H2 39 81 3C 06 00 00 0F 84 21 68 01 00
Windows 10 x64 2004 39 81 3C 06 00 00 0F 84 D9 51 01 00
Windows 10 x64 1909 39 81 3C 06 00 00 0F 84 5D 61 01 00
Windows 10 x64 1903 39 81 3C 06 00 00 0F 84 5D 61 01 00
Windows 10 x64 1809 39 81 3C 06 00 00 0F 84 3B 2B 01 00

Windows 10 x64 1803 8B 99 3C 06 00 00 8B B9 38 06 00 00

Windows 10 x64 1709 39 81 3C 06 00 00 0F 84 B1 7D 02 00

Tiny Hexerエディターは、system32フォルダーからtermsvr.dllファイルを直接編集することはできません。デスクトップにコピーし、変更後、元のファイルを置き換えます。

たとえば、私のWindows 10 x64のビルドは21H1(19043.1320)で、termsrv.dllファイルのバージョンは10.0.19041.1320です。 Tiny Hexerでtermsrv.dllファイルを開き、テキストを見つけます:

39 81 3C 06 00 00 0F 84 2B 5F 01 00

次のように置き換えます:

B8 00 01 00 00 89 81 38 06 00 00 90

Windows 10および11で複数のRDPセッションを許可するにはどうすればよいですか?

ファイルを保存して、TermServiceを実行します。

何か問題が発生し、リモートデスクトップサービスで問題が発生した場合は、サービスを停止し、変更したtermsrv.dllファイルを元のバージョンに置き換えます。

copy termsrv.dll_backup c:\Windows\System32\termsrv.dll

PowerShellを使用したWindowsでのTermsrv.dllのパッチ適用

HEXエディターを使用してtermsrv.dllファイルを手動で変更しないようにするために、次のPowerShellスクリプトを使用してパッチを自動的に適用できます。このスクリプトはWindowsPowerShellバージョンに基づいており、最新のPowerShellCoreでは機能しません。このスクリプトはユニバーサルであり、Windows 10(1809+)およびWindows11のすべてのエディションでtermsrv.dllファイルにパッチを適用するために使用できます。

# Stop RDP service, make a backup of the termsrv.dllfile and change the permissions
Stop-Service UmRdpService -Force
Stop-Service TermService -Force
$termsrv_dll_acl = Get-Acl c:\windows\system32\termsrv.dll
Copy-Item c:\windows\system32\termsrv.dll c:\windows\system32\termsrv.dll.copy
takeown /f c:\windows\system32\termsrv.dll
$new_termsrv_dll_owner = (Get-Acl c:\windows\system32\termsrv.dll).owner
cmd /c "icacls c:\windows\system32\termsrv.dll /Grant $($new_termsrv_dll_owner):F /C"
# search for a pattern in termsrv.dll file
$dll_as_bytes = Get-Content c:\windows\system32\termsrv.dll -Raw -Encoding byte
$dll_as_text = $dll_as_bytes.forEach('ToString', 'X2') -join ' '
$patternregex = ([regex]'39 81 3C 06 00 00(\s\S\S){6}')
$patch = 'B8 00 01 00 00 89 81 38 06 00 00 90'
$checkPattern=Select-String -Pattern $patternregex -InputObject $dll_as_text
If ($checkPattern -ne $null) {
$dll_as_text_replaced = $dll_as_text -replace $patternregex, $patch
}
Elseif (Select-String -Pattern $patch -InputObject $dll_as_text) {
Write-Output 'The termsrv.dll file is already patch, exitting'
Exit
}
else {
Write-Output "Pattern not found "
}
# patching termsrv.dll
[byte[]] $dll_as_bytes_replaced = -split $dll_as_text_replaced -replace '^', '0x'
Set-Content c:\windows\system32\termsrv.dll.patched -Encoding Byte -Value $dll_as_bytes_replaced
# comparing two files
fc.exe /b c:\windows\system32\termsrv.dll.patched c:\windows\system32\termsrv.dll
# replacing the original termsrv.dll file
Copy-Item c:\windows\system32\termsrv.dll.patched c:\windows\system32\termsrv.dll -Force
Set-Acl c:\windows\system32\termsrv.dll $termsrv_dll_acl
Start-Service UmRdpService
Start-Service TermService

完全なスクリプトコードは、私のGitHubリポジトリ(https://github.com/maxbakhub/winposh/blob/main/termsrv_rdp_patch.ps1

)で入手できます。

スクリプトを実行するには、スクリプトをコンピューターにダウンロードします。現在のセッションのPowerShell実行ポリシー設定を変更します:

Set-ExecutionPolicy Bypass -Scope Process -Force

そして、スクリプトを実行します:

C:\users\root\desktop\termsrv_rdp_patch.ps1

Windows 10および11で複数のRDPセッションを許可するにはどうすればよいですか?

Windows Updateのインストール後にスクリプトを実行して、termsrv.dllファイルにすぐに変更を加えることができます(更新プログラムをインストールするたびに、HEXエディターでtermsrv.dllファイルを変更する必要はありません)。

ウイルス対策ソフトウェアがtermsrv.dllファイルを置き換えることによってWindows10または11で複数のRDPセッションを有効にする方法の利点は、ウイルス対策ソフトウェアがそれに応答しないことです(マルウェア/ハックツール/トロイの木馬として多くのウイルス対策ソフトウェアによって検出されるRDPWrapとは異なります)。

主な欠点は、Windows 10ビルドをアップグレードするたびに(または毎月の累積的な更新プログラムのインストール中にtermsrv.dllファイルのバージョンを更新するときに)termsrv.dllファイルを手動で編集する必要があることです。また、RDPWrapperを使用している場合は、WindowsUpdateのインストール後にrdpwrap.iniファイルも更新する必要があります。

この記事では、同時RDPユーザー接続数の制限を解除し、デスクトップバージョンのWindowsで無料のターミナルサーバーを実行する方法について説明しました。


  1. Windows 10 で複数のユーザー アカウントを追加および削除する方法

    Windows 10 で複数のユーザー アカウントを追加および削除する方法について説明します。Windows には、Windows 10 に複数のユーザーがログインできる機能があります。大きく分けて、2 種類のアカウントを追加できます。これらのアカウント: (1) 家族のメンバーであり、 (2) 家族の一員ではないメンバーのローカル アカウント これらの説明にはそれぞれ重要な意味があり、それについて詳しく説明します。これにより、いつどのアカウントを使用するかがわかります。 Windows 10 で複数のユーザー アカウントを削除する方法についても説明します。 また読む:Windows

  2. Windows 10 で複数のディスプレイを接続して使用する方法

    1 つのコンピューター画面では不十分な場合は、追加の画面をセットアップして生産性を高め、時間を節約する必要があります。 あなたがプログラマー、グラフィック デザイナー、データ アナリスト、またはデスクトップ PC のヘビー ユーザーである場合、2 つの画面は常に 1 つよりも優れています。複数のモニターを使用すると、マルチタスクが簡単になるため、実際に興味深いものです。 複数のタブと最小化された画面での作業は、それらの切り替えに時間がかかるため、退屈な作業です。ただし、複数の画面を使用すると、この問題を簡単に処理できます。生産性を上げる確実な方法です。さらに、さまざまなツールを使用して、2