RemoteApps are a part of the Windows Server 2008 Terminal Services role. Up until this point , Terminal Services have been covered in the context of displaying an entire virtual desktop session on a local client from remote server. Whilst this can be useful in a number of situations it is actually more common that only an application running on a remote server needs to be displayed on a local client, essentially making the application appear as though it is running locally. This functionality is provided by ''RemoteApps '' and is the focus of this chapter.
== Preparing the Server for RemoteApps ==
Secondly, any applications which are to be configured as RemoteApps must be installed for Terminal Services so that they support multiple users. The steps to implement this are covered in the chapter entitled [[Installing Applications for Windows Server 2008 Terminal Services]].
Finally, if the application applications are to be accessed via a browser using the TS Web Access services role, this will also need to be configured as outlined in the [[Configuring Windows Server 2008 TS Web Access]].
Once the first two, and optionally the third, requirements are met the server is now ready to begin the RemoteApp configuration process.
== What are RemoteApps? ==
RemoteApps are part of the Windows Server 2008 Terminal Services role. The objective behind terminal services is to allow client systems to access desktops and applications running on remote servers. As the description suggestsuggests, remote desktop access presents an entire desktop session from the remote server on the screen of the local client. This allows the user to perform a number of desktop based tasks including launching and interactive interacting with applications on the remote host. The RemoteApps feature avoids the necessity to access an entire desktop on the remote system in ordfer order to launch an application, instead allowing the user to launch individual applications from their local system. When launched, each RemoteApp appears in its own window on the client's desktop just as any locally running would.
RemoteApps can be launched either by clickin clicking on a link on a TS Web Access web page, or by installing a file on the client which, when clicked, launches the RemoteApp.
== Configuring a Application as a RemoteApp ==
Applications are configured as RemoteApps using the ''TS RemoteApp Manager'' tool. This can which can be accessed either from the ''Start -> All Programs -> Terminal Services -> TS Remote App Manager'' or by running '''remoteprograms.msc''' in a Run dialog or at a command prompt. Once launched, the manager will appear as follows:
The wizard also provide provides a number of different properties that may be changed for each of the applications. To change these settings, select an application in the list and click on the ''Properties'' button to display the ''RemoteApps Properties'' dialog as illustrated below:
Once the RemoteApps are configured, they need to be made available to the remote users. This is achieved via TS Web Access, Windows Installer Package or Remote Desktop Protocal Protocol (.RDP) file. Each of these approaches will be covered in detail in the remaining sections of this chapter.
== Making RemoteApps Available to Users via TS Web Access ==
By default, RemoteApps are configured to be accessible via TS Web Access (for details on installing and configuring the TS Web Access service role refer read [[Configuring Windows Server 2008 TS Web Access]]. As outlined above this setting can be checked during the RemoteApp configuration process by verifying that the ''RemoteApp is available through TS Web Access'' box is set in the properties dialog. This setting can be modified at any time by right clicking on the RemoteApp in question on the TS RemoteApp Manager ''RemoteApp Programs'' list and selecting ''Properties''.
Assuming that the RemoteApps are configured for TS Web Access, simply open a browser windows window and enter the URL of the TS Web Access page the format of is typically as follows (where ''server'' is the name or IP address of the Terminal Server system):
<pre>
[[Image:windows_server_2008_TS_Web_Access_page.jpg|Windows Server 2008 TS Web Access web page]]
To launch an application the user simply clicks on the icon for the required application. First to appear will be the ''RemoteApp Starting'' dialog. This will be followed by a settinmgs settings dialog which allows the user to decide which resources on the local system (such as drives, devices, keyboard, mouse, printers, ports etc) should be made available to the application running on the remote system. this This can be particularly useful, for example, if a user needs to print from the remote application onto a local printer, or save a file onto a local disk or USB drive:
One alternative to providing RemoteApp access via TS Web Access is to create a Windows Installer package which can be used to install the RemoteApp launcher on any client systems which need access. To create a Windows Installer for a RemoteApp, right click on the RemoteApp in question on the TS RemoteApp Manager ''RemoteApp Programs'' list and select ''Create Windows Installer Package'' from the menu. When the ''RemoteApp Wizard'' welcome screen appears click on ''Next'' to proceed to the package setting screen. On this screen, set the target directory where the RemoteApp launcher is to be installed in the client system. Also on this screen are settings for controlling which server and Remote Desktop Protocol (RDP) port the client system will be directed to in order to launch the RemoteApp. The final setting allows access to the RemoteApp to be protected through the use of certificates.
The ''Next'' button proceeds to the ''Configuration'' screen where settings such as controlling whether the application is listed in the Start menu and Desktop of the client user's desktop after installation. The final option is related to file extension associations. As examples of file extension associations, a Word document has a .doc file extension and an Excel file a .xls extentionextension. When configured, file extension association associations ensure that when a user double clicks, for example, on a .doc file, Word is started with the selected file opened and ready for editing. The ''Take over file extensions'' option associates appropriate file extensions with the RemoteApp, such that the RemoteApp is started when a corresponding local file is selected by a user.
Exception encountered, of type "Error"
[efeca3b2] /index.php/Special:MobileDiff/7138 Error from line 434 of /var/www/techotopia/includes/diff/DairikiDiff.php: Call to undefined function each()
Backtrace:
#0 /var/www/techotopia/includes/diff/DairikiDiff.php(544): DiffEngine->diag()
#1 /var/www/techotopia/includes/diff/DairikiDiff.php(344): DiffEngine->compareSeq()
#2 /var/www/techotopia/includes/diff/DairikiDiff.php(227): DiffEngine->diffLocal()
#3 /var/www/techotopia/includes/diff/DairikiDiff.php(721): DiffEngine->diff()
#4 /var/www/techotopia/includes/diff/DairikiDiff.php(859): Diff->__construct()
#5 /var/www/techotopia/includes/diff/DairikiDiff.php(980): MappedDiff->__construct()
#6 /var/www/techotopia/extensions/MobileFrontend/includes/diff/InlineDiffFormatter.php(99): WordLevelDiff->__construct()
#7 /var/www/techotopia/includes/diff/DiffFormatter.php(140): InlineDiffFormatter->changed()
#8 /var/www/techotopia/includes/diff/DiffFormatter.php(82): DiffFormatter->block()
#9 /var/www/techotopia/extensions/MobileFrontend/includes/diff/InlineDifferenceEngine.php(117): DiffFormatter->format()
#10 /var/www/techotopia/includes/diff/DifferenceEngine.php(797): InlineDifferenceEngine->generateTextDiffBody()
#11 /var/www/techotopia/includes/diff/DifferenceEngine.php(728): DifferenceEngine->generateContentDiffBody()
#12 /var/www/techotopia/extensions/MobileFrontend/includes/specials/SpecialMobileDiff.php(241): DifferenceEngine->getDiffBody()
#13 /var/www/techotopia/extensions/MobileFrontend/includes/specials/SpecialMobileDiff.php(135): SpecialMobileDiff->showDiff()
#14 /var/www/techotopia/extensions/MobileFrontend/includes/specials/MobileSpecialPage.php(53): SpecialMobileDiff->executeWhenAvailable()
#15 /var/www/techotopia/includes/specialpage/SpecialPage.php(384): MobileSpecialPage->execute()
#16 /var/www/techotopia/includes/specialpage/SpecialPageFactory.php(553): SpecialPage->run()
#17 /var/www/techotopia/includes/MediaWiki.php(281): SpecialPageFactory::executePath()
#18 /var/www/techotopia/includes/MediaWiki.php(714): MediaWiki->performRequest()
#19 /var/www/techotopia/includes/MediaWiki.php(508): MediaWiki->main()
#20 /var/www/techotopia/index.php(41): MediaWiki->run()
#21 {main}