デスクトップ全体を渡さずにいくつかのアプリをリモートで実行したい場合、RemoteAppモードが実に効果的です。Windows Serverのリモートデスクトップサービス(RDS)の機能なので少し奇妙に感じるかもしれませんが、実はWindows 10や11 Pro/Enterpriseでも設定できるんです。本格的なRDSサーバーは必要ありません。基本的にアプリウィンドウだけがポップアップ表示されるので、デスクトップ全体を共有するよりもシームレスに見えます。RDPセッション全体を使うのはやりすぎだと感じたことがあるなら、これは良い代替手段です。
多くの場合、Microsoftの公式ドキュメントはサーバー関連のものに焦点を当てているため、多くの人が行き詰まってしまいます。しかし、ここで重要な点があります。少し調整するだけで、これらのアプリを自分のWindowsデスクトップでRemoteAppとして実行できるようになります。注意点として、ボタンをクリックするだけの簡単操作ではありませんが、実行可能です。うまく動作すれば、かなり素晴らしいです。デスクトップへの完全な配信はなく、ウィンドウ内のアプリだけが表示されます。ちなみに、この設定には制限があり、RDPラッパーやサードパーティ製ツールを使ってより複雑な操作をしない限り、一度に1つしか実行できません。
Windows 10/11でRemoteAppのセットアップを修正する方法
リモートコンピュータ(RDPサーバー)を構成してRemoteAppsをホストする
- リモートデスクトップが有効になっていることを確認してください。「設定」>「システム」>「リモートデスクトップ」に移動し、オンにしてください。必要に応じて「デバイスの再接続を要求する…」にチェックを入れてください。
- RemoteAppとして実行したいアプリをインストールします。特別な操作は必要ありません。通常通りインストールしてください。
- ユーザーアカウントをRemote Desktop Usersグループに追加します。「コンピューターの管理」>「ローカルユーザーとグループ」>「グループ」>「Remote Desktop Users」。権限を再確認してください。
- gpedit.msc(ローカルグループポリシーエディター)を開きます。次の場所に移動します。
Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections
- 「リストにないプログラムのリモート起動を許可する」ポリシーを有効にします。これにより、RemoteAppsとして正式に公開されていないアプリを起動できるようになります。
- あるいは、レジストリ経由で実行するには (その方が簡単な場合もあります)、次のコマンドを実行します。
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fAllowUnlistedRemotePrograms /t REG_DWORD /d 1 /f
注: これらの変更を行った後、リモートマシンを再起動する必要がある場合があります。理由は定かではありませんが、レジストリの変更が再起動しないと反映されない場合があります。
リモートで実行できるローカル アプリを制限する (オプション)
– RemoteApps として表示されるアプリを厳選したい場合は、HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applicationsの下に個別のレジストリ キーを作成します。 – Acrobat Reader の例を次に示します。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications\MyAdobeReaderApp] "CommandLineSetting"=dword:00000000 "RequiredCommandLine"="" "Name"="Adobe Reader" "Path"="C:\\Program Files\\Adobe\\Acrobat DC\\Acrobat\\Acrobat.exe" "ShortPath"="C:\\PROGRA~1\\Adobe\\Acrobat DC\\Acrobat\\Acrobat.exe" "IconPath"="C:\\PROGRA~1\\Adobe\\Acrobat DC\\Acrobat\\Acrobat.exe" "IconIndex"=dword:00000000 "ShowInTSWA"=dword:00000001 "SecurityDescriptor"="
– これを.regファイルとして保存してインポートするか、regeditを使って直接追加します。これにより、指定したアプリのみがリモートで利用できるようになります。
ユーザーのデバイスにRDPクライアントを設定する
- mstsc.exe (デフォルトのリモートデスクトップクライアント)を起動します。リモートマシンのDNS名またはIPアドレスとユーザー名を入力します。
- (オプション) タブを確認して、必要に応じてローカル ドライブ、プリンター、クリップボードを設定し、リモート セッションをより使いやすくします。
- 接続を.RDPファイルとして保存します(名前を付けて保存をクリックします)。このファイルには接続設定が保存されます。
- .RDPファイルをメモ帳で開きます。末尾に以下の行を追加します。
remoteapplicationmode:i:1 RemoteApplicationName:s:My_RemoteApp RemoteApplicationProgram:s:"C:\\Path\\To\\YourApp.exe" DisableRemoteAppCheck:i:1 PromptForCredentialsOnClient:i:0 AlternateShell:s:rdpinit.exe
コマンドライン引数を渡す必要がある場合は、これも追加します。
RemoteApplicationCmdLine:s:"/arg1 /arg2"
たとえば、メモ帳を RemoteApp として起動する場合、RDP の調整は次のようになります。
remoteapplicationmode:i:1 RemoteApplicationName:s:Remote_Notepad RemoteApplicationProgram:s:"%windir%\\notepad.exe" DisableRemoteAppCheck:i:1 PromptForCredentialsOnClient:i:0 AlternateShell:s:rdpinit.exe
接続すると、パスワードプロンプトが表示されます(認証情報を保存している場合)。証明書を信頼すると、アプリが独自のウィンドウでポップアップ表示されます。簡単ですよね? まあ、ちょっと奇妙ですが、ちゃんと動作します。
注: パッケージ ファミリ名を使用すると、ユニバーサル Windows プラットフォーム アプリ (電卓など) を起動することもできます。例:
start shell:AppsFolder\Microsoft. WindowsCalculator_8wekyb3d8bbwe!App
次のようにして、PowerShell からPackageFamilyNameをコピーします。
Get-AppxPackage | Select-Object Name, PackageFamilyName | Where-Object { $_. Name -like "*calc*" }
ショートカットを何度も作成するのが面倒だと感じる場合は、RemoteAppツールなどのサードパーティ製ツールを使ってRDPファイルやMSIインストーラーを自動生成できます。アイコンのカスタマイズやその他のパラメータ設定を数回クリックするだけでできるので、作業が楽になります。
それに、この方法では完全なRDS展開は不要なので、シングルユーザーのRemoteAppsのためだけにRDSライセンスを購入する必要はありません。ただし、RDPラッパーなどのハックを使わない限り、一度に1つのセッションだけを使用することに注意してください。Windowsでは、当然ながら、この操作を必要以上に複雑にする必要があるためです。
まとめ
- リモート Windows マシンを構成します (リモート デスクトップを有効にし、アプリをインストールし、権限を設定します)。
- リストにないアプリを許可するには、グループ ポリシーまたはレジストリを調整します。
- RemoteApp 用の特別な設定で RDP ショートカットを設定します。
- 必要に応じてコマンドライン引数を追加し、RDP ファイルを保存して接続します。
- オプション: 管理を容易にするために、RemoteApp ツールなどのツールを使用します。
まとめ
これは最も簡単な設定ではありませんが、一度設定してしまえば、多くの手間を省くことができます。特に、デスクトップ全体を渡さずに特定のアプリだけをリモートで実行する必要がある場合はなおさらです。こうした奇妙な機能も、場合によっては価値があるかもしれません。ただし、より深く設定しない限り、単一のセッションでしか動作しないことに注意してください。リモートワークを効率的に進めようとしている方にとって、この方法が少しでもお役に立てれば幸いです。