【Windows】RemoteAppのショートカットを作成する[WindowsServer2019]

Microsoft Windows
スポンサーリンク

Windows Server の以前のバージョンから利用されているアプリケーション仮想化の機能として RemoteApp といった Windows リモートデスクトップを活用したシステムがありますが、Windows Server 2008 などの古い環境からの移行において RemoteApp ショートカットの作成を行う方法がわからなかったので調べてみました。

スポンサーリンク

RemoteAppのショートカットを作成する

以前のターミナルサービスとして提供されていたときは、公開された RemoteApp のアプリケーションへの接続をショートカットからの起動を行う方法として、ショートカット作成の機能が備わっていました。

これが現在のリモートデスクトップサービスでは、ショートカット作成の機能はなくなってしまっているのですが、手動で作成することができました。

これを利用することでクライアントへ配布することが可能になるため、RDWebアクセスや GPO でのアプリケーション登録などを行わなくても公開された RemoteApp に接続することができるようになります。

RemoteAppプログラムのレジストリ登録

まずは、RemoteApp プログラムのレジストリ登録が必要となります。

これは実際に RemoteApp が提供されるサーバーへ登録が必要になるので、セッションホストの役割を持つサーバーに対して設定を行います。

レジストリキーの登録先は、

“HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications” 

となり、リモートデスクトップサービスの役割を入れた直後はこの通り何もありません。

以下のコマンドを参考に登録するアプリケーション名とアプリケーションのパスを指定し、PowerShell にてコマンドを実行します。

ここでは、サンプルとして notepad(メモ帳)を登録する手順で進めています。
※RD ブローカーがある構成の場合、メモ帳はアプリケーション公開により自動でレジストリへ登録されます。

コマンド例

$regPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList\Applications"
New-Item -Force $regPath -Name notepad
New-ItemProperty $regPath\notepad -Name CommandLineSetting -Value 0 -PropertyType Dword
New-ItemProperty $regPath\notepad -Name Name -Value Paint -PropertyType String
New-ItemProperty $regPath\notepad -Name Path -Value C:\Windows\notepad.exe -PropertyType String
New-ItemProperty $regPath\notepad -Name RequiredCommandLine -PropertyType String
New-ItemProperty $regPath\notepad -Name SecurityDescriptor -PropertyType String
New-ItemProperty $regPath\notepad -Name ShowInTSWA -Value 1 -PropertyType Dword

このコマンドを流すと、以下のように実行されます。

すべてのコマンドが実行されると、レジストリの「Applications」配下に指定したアプリケーション名でキーが登録されていることがわかります。

ここまで完了したら次へ進みます。セッションホストが複数台ある場合は同様に実施します。

RD 接続ブローカーにて、Windows 標準アプリを公開したところレジストリに対しても登録がされていましたが、サードパーティ製アプリケーションを公開してもレジストリの登録がされていなかったため、アプリケーション公開後にレジストリ登録がなければ手動で登録する流れがよさそうです。

RDPファイルからRemoteAppショートカットを作成

RemoteApp ショートカットを作成するには、リモートデスクトップ接続の RDP ファイルを利用します。リモートデスクトップ接続画面から「名前を付けて保存」を指定して RDP ファイルを保存します。

作成した RDP ファイルをメモ帳で開き、赤字の部分を変更/追記します。

テキスト

screen mode id:i:1
use multimon:i:0
desktopwidth:i:1366
desktopheight:i:768
session bpp:i:32
winposstr:s:0,1,0,0,800,600
compression:i:1
keyboardhook:i:2
audiocapturemode:i:0
videoplaybackmode:i:1
connection type:i:7
networkautodetect:i:1
bandwidthautodetect:i:1
displayconnectionbar:i:1
enableworkspacereconnect:i:0
disable wallpaper:i:0
allow font smoothing:i:0
allow desktop composition:i:0
disable full window drag:i:1
disable menu anims:i:1
disable themes:i:0
disable cursor setting:i:0
bitmapcachepersistenable:i:1
full address:s:<接続先サーバー名 or IPアドレス>
audiomode:i:0
redirectprinters:i:1
redirectcomports:i:0
redirectsmartcards:i:1
redirectclipboard:i:1
redirectposdevices:i:0
autoreconnection enabled:i:1
authentication level:i:2
prompt for credentials:i:0
negotiate security layer:i:1
remoteapplicationmode:i:0 →RemoteAppの場合は 1 に変更
alternate shell:s:
shell working directory:s:
gatewayhostname:s:
gatewayusagemethod:i:4
gatewaycredentialssource:i:4
gatewayprofileusagemethod:i:0
promptcredentialonce:i:0
gatewaybrokeringtype:i:0
use redirection server name:i:0
rdgiskdcproxy:i:0
kdcproxyname:s:
username:s:<接続するユーザー名>

remoteapplicationname:s:<プログラム名> ※追記箇所
alternate shell:s:||<レジストリキー名> ※追記箇所
remoteapplicationprogram:s:||<レジストリキー名> ※追記箇所

メモ帳で登録する場合は、このようになります。


※追記 レジストリ登録がある場合は「remoteapplicationprogram:s:<パス>」は不要なようです。

RDP ファイルを更新後、保存した RDP ファイルを実行すると RemoteApp の画面が表示されるようになります。種類の部分が「RemoteApp プログラム」に変わっています。

資格情報を入力して接続すると無事 RemoteApp にてアプリケーションが起動してきます。

タスクバーのアイコンを見ると、RemoteApp に登録したメモ帳のアイコンに RemoteApp のマークが表示されていることがわかります。

参考情報

参考にしたページを載せておきます。

Windows Server 2012 リモート デスクトップ環境の構成について

ちなみに、レジストリに登録せずに RemoteApp ショートカットを作成した場合、利用可能なアプリケーションがありませんと接続エラーになりました。※何回かやってるうちに繋がることもあったのですが、安定しなかったのでレジストリを追加しました。

タイトルとURLをコピーしました