Applies to: Windows Server 2012 and 2012 R2
In a previous article, we went through the steps of deploying a 2012 / 2012R2 Remote Desktop Services (RDS) farm. Now with the farm built, let’s take a look at the changes and the process of publishing RemoteApp programs and session-based desktops in Server 2012 / 2012 R2.
Let’s open Server Manager and look at our farm. On the left column you will see a new node called Collections. Collections give you the ability to group a set of RD Session Host servers with a common set of applications and publish them to users. These can be RemoteApp programs or Session Host and VDI desktops. So think of collections as something similar to an application silo. For instance, let’s say we had a group of 5 RD session host servers which all have Office 2013 installed and are configured the same way. If we wanted to publish the Office applications across the 5 RD session host servers, we would first create a collection that included all 5 servers and publish the Office apps accordingly. This is the same if you wanted to provide users with a session host desktop. You would simply create a new collection, add the servers which will be providing the session desktop and publish them to the proper user group(s). One thing to note is you cannot publish a desktop to an existing collection which has already been configured for RemoteApps. The published desktop will require its own collection.
In the following steps, we will go through the process of creating a new collection and publishing some RemoteApp programs.
Highlight “Collections”, then on the right hand side, click on the “tasks” drop down and select the option “Create Session collection”.
On the Before you Begin screen, click next.
On the next screen, we will name the new collection. Here we named it DemoLab Office Apps. Click next.
On the Specify RD Session Host servers screen, we can add RD session host servers which will be part of our collection. For this example, we will be adding RDSH01. Hit next.
We will now need to add the user group(s) which will have access to the collection. To make things easy, it defaults to Domain users. As a good practice, a specific security group should be created and assigned for each of the collections. For this example, you can leave domain users. Since I’ve already created a specific security group for this collection, we will go ahead and add the group. The group is called demolab\RemoteApp Office Apps. Click next.
On the User Profile Disks screen, we can enable and configure Profile Disks for the collection. For this example we will disable Profile Disks. Uncheck the Enable user Profile Disks checkbox and hit next.
Stay tuned for an upcoming article on Profile Disks.
On the confirmation screen, confirm your settings and click create.
Once completed, click close.
Back in Server Manager, we now see our collection. Go ahead and highlight the new collection and let’s take a look at our options. In the Properties section we can view and edit the properties of the collections. Since we just created this collection, it defaults to Remote Desktop for the resource type. This means it is servicing a desktop for users should they log into the RD Web Access site. So if you were publishing a session-host desktop, your job is done.
In the RemoteApp Programs section, we can publish RemoteApp programs for users. Once we start publishing RemoteApps, the servers in the collection will no longer serve a desktop connection to users.
In the Host Servers section, we can see the list of session host servers which are part of the collection. This is where we can also add new RD Session Host servers as well as remove them. A session host server can only be a member of single collection.
In the Connections section, we can see a list of users connected to the servers in the collection. Here we can complete common tasks such as resetting or logging off user sessions.
Now that we are familiar with Collections, lets publish some RempoteApp programs. In the RemoteApp Programs section, click the Tasks dropdown and select Publish RemoteApp Programs or just click the text in blue that says “Publish RemoteApp Programs”
A wizard will appear and begin examining the registered applications on the session host servers in the collection. Once completed, it will list the registered applications. Here we can simply select the applications we wish to publish by checking the box next to the application. I will select a few Office and non-Office applications and hit next. In the event your application does not appear in the list you can hit the ADD button to browse for the application manually.
On the Confirmation screen check your settings and hit publish.
Once it is completed, click on close.
We now have RemoteApps available for users and can log into our RD Web Access page to see the published applications.
Let’s go ahead and take a look at the properties of the individual RemoteApps programs. Back in Server Manager within our collection, we now see the list of apps we published.
Right-click on Excel 2013 and select the option “Edit Properties”.
Here we can edit properties for an individual RemoteApp program. On the General section, we can edit a few things for our application such as changing the name of the app, modifying the icon, removing it from RD Web Access or we can organize it in a folder for users when they log into the RD Web Access site. For this example, I’ve set a RemoteApp program folder called DemoLab MISC Apps.
On the parameters screen we can modify any command line parameters should the application require it.
By default, any RemoteApp program in a collection will be available to the security group which was assigned to the collection. On the User Assignment screen, we can change that. Here, we can specify a single user or a different user group other than the group assigned to the collection who will have access to the individual application. In order for this to work, the user must also be a member of the security group which is assigned to the collection.
For the File Type Association section, we can assign certain file types which can be associated to the RemoteApp program. When this option is used, should a user launch a file with one of the associated file types on their client device, it will open the file with the designated RemoteApp program.
Now that we have modified the RemoteApp program folder for Excel 2013, when the user logs back into the RD Web Access site, it will look like the following:
As you can see, Microsoft has really made vast improvements to the publishing of RemoteApps and session based desktops. Not only are we able manage and configure everything from a single console, we now have the ability to organize the published resources appropriately using Collections.
© 2014 Eddie Kwasnik “the Wolf” All Rights Reserved
#1 by Nick on March 31, 2014 - 11:23 am
Best walkthrough I’ve found so far.
#2 by Jo on June 1, 2014 - 5:59 pm
Another great step by step guide. Thank you
I have been following your guide “Deploying a 2012 / 2012R2 Remote Desktop Services (RDS) farm” awesome by the way. I am currently looking at replacing our 2008R2 production RD farm.
Current users connect to the 2008R2 RDHS servers via RDP connection.
I have built a test lab by following your instruction so far so good. I have created a collection called “RDFARM” and added my 3 x 2012R2 RD Session Host servers to the collection. In my lab I only have 1 connection broker. We do not require Remote App. With 2012 how users connection the collection? 1.I’ve read on other threads that I should be pointing my RDP client at the Broker, not at a Round Robin DNS containing the Session hosts? I am confused 😦
If I RDP to the broker server I get the session of the broker server
Would you be able to show me how client RDP to the connection broker then redirect to the collection
#3 by Eddie Kwasnik on June 2, 2014 - 9:15 am
Since you have a collection created for the RDSH server(s) desktop, you can use the RD Web Access site to access the collection. This is easier since users can go directly to the RD Web Access URL, log-in and launch their desktop. You can install the RD Web Access role on the RD Connection Broker.
#4 by Dallas on September 15, 2015 - 1:36 pm
I am with the other 2 users here and need to know how to connect thin clients with mstsc to our session collection? How do I find the exact url or server name that they would connect with?
#5 by Rei on June 18, 2014 - 9:40 am
I am stuck exactly in the same point you are. As you, I have the same kind of lab and need the clients to access three session host servers in the farm using RDP but I have not been able to do that using the Broker. Have you been able to make any progress on that? Thank you
#6 by Eddie Kwasnik on June 18, 2014 - 10:40 am
Did you install the RD Web Access role? This can be added to the Connection Broker server since it is a lab. Then you can access the farm using the RD Web Access url to see the remoteapps and desktops in the collection.
#7 by Jo on June 3, 2014 - 4:32 am
#8 by Eugene on July 22, 2014 - 11:27 am
Not sure if this post answered the question. I built the farm exactly like you, RDWeb works perfectly and i can access everything. But, my firm does not want to use the web to access the desktop. How do I get the client to connect to the farm? Thank you.
#9 by Eddie Kwasnik on July 22, 2014 - 1:29 pm
The RD Web Access is not required but does make life a bit easier. At the end of the day, it is simply generating an RDP file for users to access their remoteapps and/or desktops. You can manually create the rdp files or find a third party utility that can do it for you. You can then deliver the rdp files as a shortcut to the users. It does create a bit more administrative work though.
#10 by will on August 7, 2014 - 7:27 am
Great set of documentation! It was my sole source for upgrading skills from 2008r2 RDS. Thank you. The one question I keep going in circles with, I have a customer with a 2008r2 deployment on a single server, remote apps are published, as well as an RDP session, works great. It appears 2012r2 does not let you do the same. In other words, I have a single server running all my roles, I can do a desktop deployment, but as soon as I publish apps, I lose my RDP file. Am i missing something? Any advice would be greatly appreciated. Thanks again.
#11 by Eddie Kwasnik on August 7, 2014 - 9:00 am
Thanks!!! That is by design. If a RDSH server is in a collection with published remoteapps, you will not be able to publish its desktop. So you can either publish the desktop or publish remoteapps to the server, but not both.
#12 by Stanislav Galchonkov on November 5, 2016 - 9:34 am
#13 by Itay on August 19, 2014 - 3:52 am
Great work. I’m implementing for the first time in my organization RDS farm.
Do you know if it’s possible to somehow publish an app, and the user will have shortcut to the published app on his desktop (instead of web access)?
If it’s possible, can you explain me how to do it or refer me to an article that says how to do it?
#14 by Eddie Kwasnik on August 19, 2014 - 9:51 am
Thanks for great comments. You can integrate the shortcuts to the user’s start menu instead of having the users access the applications through a browser. This applies to Windows 7 and Windows 8. From the user’s machine, open up the control panel and in there, go to RemoteApp and Desktop connections. Within there, click on the shortcut Access RemoteApp and desktops (Its on the left side of the screen). You will now need to type the URL for the rdweb access server but also append the following: /RDWEB/Feed/Webfeed.aspx. So it will look something like: https://rdwebaccessserverFQDN/RDWEB/Feed/Webfeed.aspx.
Once it connects, it will prompt you for your credentials. Once authentication is completed, you will see the shortcuts in your start menu. You can find more information here:
#15 by Itay on August 22, 2014 - 12:14 pm
This is exactly what I was looking for! from the start manu I can send shortcut to the user desktop! thank you very much.
keep up the good work.
#16 by Big Roll Tide on September 4, 2014 - 10:01 am
There is still no answer to a question on if a user has an RDP file that is set to connect through a RD Gateway server. This is easier for the user than connecting to a web site first, and then opening the session to the RDSH server. What computer name should be in the RDP file for the user to connect to a farm of RDSH servers?
#17 by Eddie Kwasnik on September 4, 2014 - 10:35 am
Personally, Ive never been a fan of distributing RDP files to users. When changes to the farm are made, it can become an administrative nightmare. Lets say you have 100 users connecting via a custom rdp file, what happens when you need to make changes to your RDS farm? You will have to generate new rdp files and redistribute them to the users. By using products such as the RDP Web Access server, there is nothing to distribute to the clients. The rd web access server will be able to generate the connection for the user even after changes have been made to the farm. The user does nothing different but just log into the page and launch their applications.
However, an easy way to create the rdp file is to initially log into your RD web access server and launch the application or desktop you want the RDP file for. In order for it to have the gateway settings in there, you should do it from an external location which requires your connection to be through the gateway server. After you launch the application, you can find the rdp file which was generated on your client machine for the connection in your user profile directory. It will be in the directory: %userprofile%\AppData\Local\Temp\Low. You can than open this file with a text editor and remove the entry which has your user name. This then can be used and modified as needed.
A better alternative is to integrate the shortcuts to the user’s start menu instead of having the users access the applications through a browser. This applies to Windows 7 and Windows 8. From the user’s machine, open up the control panel and in there, go to RemoteApp and Desktop connections. Within there, click on the shortcut Access RemoteApp and desktops (Its on the left side of the screen). You will now need to type the URL for the rdweb access server but also append the following: /RDWEB/Feed/Webfeed.aspx. So it will look something like: https://rdwebaccessserverFQDN/RDWEB/Feed/Webfeed.aspx.
Once it connects, it will prompt you for your credentials. Once authentication is completed, you will see the shortcuts in your start menu. You can find more information here: http://blogs.msdn.com/b/rds/archive/2009/06/08/introducing-remoteapp-and-desktop-connections.aspx
Hope this information helps!
#18 by www.essexcaraudioandalarms.co.uk on September 25, 2014 - 4:33 am
My brother recommended I might like this web site. He was totally right.
This post actually made my day. You cann’t imagine just how much time I had spent for
this info! Thanks!
#19 by Tony Ng on November 6, 2014 - 9:59 am
Great work! It saved me a lot of time! Thanks!
#20 by muhammad sikander on November 26, 2014 - 8:00 am
great work it worked for us within 20 minutes.thanks
#21 by michael kryzanski on January 1, 2015 - 10:25 am
My supervisor wanted me to start looking into citrix and alternatives. I came across your blog on the windows remote desktop services and it was unbelievably helpful. Thank you so much!
#22 by Eddie Kwasnik on January 2, 2015 - 9:01 am
#23 by Jon G on January 16, 2015 - 8:42 am
Great guide, thanks for posting it. All the documentation says you cant publish a desktop session and remoteapp in the same collection. I was assuming I could create another collection, however if I have a RDS Broker/Web server in an HA configuration I can’t create a second collection? Am I missing something or is there a 1-1 relationship between collection and broker?
#24 by Eddie Kwasnik on January 16, 2015 - 8:52 am
Thank you. The collections are based on the RD Session Host servers and not the brokers. So if you have one broker or an HA pair, you still can have as many collections as you want. The catch here is an rdsh server can only be part of one collection. So the collections are related to the RDSH servers and not the brokers.
#25 by Malcolm on January 28, 2015 - 8:16 am
Thanks for the guide.
Questions, in your example what is the point of having 2 session hosts?
I’ve installed the web url on Broker01, does that mean the session-desktop they log in to is being generated by broker01 or my sessionhost?
Also, how does it work out its load balancing?
#26 by Eddie Kwasnik on January 28, 2015 - 9:05 am
Having two session host servers is a good practice for fault tolerance. As for the load balancing, by default it will balance the users evenly across the session hosts, however at the properties of a collection, you have the ability to adjust the load balancing settings for each session host.
#27 by Malcolm on January 28, 2015 - 9:12 am
Makes sense, Thanks!!
#28 by Eddie Kwasnik on January 28, 2015 - 9:19 am
#29 by Michael on January 29, 2015 - 9:03 am
Hi, I saw that user can access the application published also from the Remote Desktop app. Well, i’m filling in the rdweb address but is not working. Any idea?
#30 by Eddie Kwasnik on January 29, 2015 - 9:43 am
What is it doing? Is the page not coming up?
#31 by Michael on January 30, 2015 - 3:05 am
I’m filling in the RD web address and i get: RemoteApp and desktop resources aren’t available. This is because the remote PC can’t be identified. I have to mention that i’m trying this from internal network and at the address bar i’m typing the https://servername.fqdn/RDWeb/Feed/webfeed.aspx
#32 by Adriano on February 20, 2015 - 1:59 am
First of all, a big thanks for this guide.
I followed the steps, and now when a user want to access to the remote app, the webpage say that the username/password is incorrect.
I check if the user is both a member of the security group and has access to the remote app, and that’s okay.
Can you help me ?
#33 by Adriano on February 20, 2015 - 2:41 am
I figured out the problem, it was because the user doesnt have password.
#34 by Eddie Kwasnik on February 20, 2015 - 8:52 am
Glad you got it resolved!
#35 by willsvk on February 27, 2015 - 6:52 pm
Is it possible to see the collection in the web without providing user name and password?
Also i am always getting ‘HTTP Error 403.4 – Forbidden’ if i didn’t use https: . Then am also getting this prompt in the web page ‘ There is a problem with this website’s security certificate.’
How to overcome these problems?
#36 by Eddie Kwasnik on March 2, 2015 - 1:08 pm
Unfortunately, there is no anonymous publishing of applications and desktops so you will need to enter some credentials. As for the certificate error, can you include a screenshot of the error?
#37 by Geir O. Jensen on March 27, 2015 - 7:59 am
is it possible to install say office 2010 on one session host and office 2013 on another session host in the same collection? I would like to say no, but that feature would solve some issues we’re having with some users requiring older software versions without installing more session host servers… great blogposts about this btw, got us up and running with only your examples… next I’m going to tackle the HA broker and gateway sessions 😀
#38 by Eddie Kwasnik on March 30, 2015 - 10:07 am
Thank you. As for the two different versions of office, it would fail since the shortcuts for the office applications will be different based on their versions so you would need to create two different collections.
#39 by Stefano B on March 29, 2015 - 8:41 am
It seem that there is no way to connect to a host farm using the broker address if you use an RDP only thin client, right?
#40 by Eddie Kwasnik on March 30, 2015 - 10:08 am
You may want to check with the thin client vendor. Each of them will have their specific configurations for connecting.
#41 by menyus005 on April 7, 2015 - 4:22 pm
Thanks for the great post.
I’m trying to build a test environment for RDS features. I’d like to keep it small so I’ve installed two servers with the following roles:
Server01 RDWeb Access, RD Gateway, RD Connection Broker, RD Session Host
Server02 RD Session Host
I’ve created two collections. Each RD Session Hosts have their own collection. I published one app from server01 and one from server02. So the two published applications are in a different collection and they are running on different servers. I logged into RDWeb and try to run the apps, but I can only open one app at a time. When I try to open the second one I got the following error message: “Windows cannot start the remote app program. The following remote app program is not in the list of authorized program”. I’ve got the same result if I open the app on server01 first and then the app on server02 and vice versa.
Could you please help me where is the problem? I’d like to run apps simultaneously from different RD Session Hosts.
Thanks for the help!
#42 by Eddie Kwasnik on April 13, 2015 - 8:42 am
So Server01 has all of the main components installed on it? (i.e. Broker, rdweb, etc…)
#43 by menyus005 on April 14, 2015 - 5:31 am
Yes. The problem is solved. We had this error on Win7 machines. I had to install the following patches:
Now it’s working fine.
#44 by Eddie Kwasnik on April 14, 2015 - 9:26 am
Thats great! Glad its working.
#45 by wabby80 on April 8, 2015 - 4:15 am
Great guide! We are using remoteapp for some of our customers, but we are struggling with one problem. When the users open the folder app to browse in folders. Some of the users changed the folderview setting. But after the log out, the folderview setting is getting reset. How is it possible to keep the setting that each user has chosen in the folderview (list, details, tiles, etc etc)?
#46 by Eddie Kwasnik on April 13, 2015 - 8:38 am
Thank you. What are you using for profile management in the RDS farm?
#47 by wabby80 on April 14, 2015 - 4:04 am
Thanks for the reply. We are using Citrix Profile Manager and it’s adjusted / tuned a bit through GPO.
I’m not the guy installed this, but I’m the lucky one who got it handed over to.
#48 by Jason on April 16, 2015 - 4:51 pm
I’ve run into a major (and pointlessly stupid) roadblock. I have a group of users I want assigned to one collection, and a separate group of users assigned to a different collection. Both of these groups then belong to a few individual security groups for assigning similar applications.on the portal. So GroupA is assigned to CollectionA, and GroupB to CollectionB, under the each collection however, AppZ is assigned to GroupZ which GroupA and GroupB both belong to. Unfortunately, it’s showing AppZ twice when assigned this way. AppZ is coming from CollectionA and CollectionB and ignoring the collection-level assignments. Is this normal, or have I configured something wrong?
#49 by Eddie Kwasnik on May 7, 2015 - 9:28 am
Sorry for the late response. So AppZ is only part of a single collection?
#50 by Jason on June 3, 2015 - 6:10 pm
Same application AppZ needed in both session collections, assigned using the same group. The only reason for the second session collection is to split clients into their own set of Terminal servers. This second set of terminal servers have most of the same apps as the first set, except one important one.
#51 by Chris on April 17, 2015 - 5:04 pm
Thanks for the super great article. The roles kept failing to install on my fully patched fresh 2012 R2 domain joined machine. https://support.microsoft.com/en-us/kb/2832204 was a big help.
I’m looking forward to other articles in the series and on you page =)
#52 by Eddie Kwasnik on May 7, 2015 - 9:25 am
#53 by Chrysostomos Vakoulas on April 27, 2015 - 6:38 am
I’m looking into publishing an application to some clients using remoteapp. The client PCs are embedded Windows PCs and the application will need to start using some kind of shortcut. Is it possible to pass the username/password as an option on the shortcut so that the user won’t have to enter them?
#54 by Eddie Kwasnik on May 7, 2015 - 9:19 am
Yes it is, but it all depends on the version of the embedded OS and if the devices are domain joined. If they are windows 7, it is not an easy configuration to get working.
#55 by lee on September 1, 2015 - 12:35 pm
is there a way to have multiple collections, each client connecting to their own collection and have HA in place? I can’t get it to work. I can get one client to connect but not both at the same time.
#56 by Junior on April 13, 2016 - 3:20 pm
Hi Eddie, tks for the guide ! tks for posting it, it helped me a lot ! God job !
#57 by Criss79 on May 26, 2016 - 9:53 am
I’m not sure if I’m writing the correct area
I have an RDWEB server 2012. I want to configure/allow another service to run over RDWEB clients sessions? there is any way to do this? by default my specific Service is not running over RDWEB session but is Running over Normal RDP.
Any way to do this ?
Thanks in advance,
#58 by Criss79 on May 26, 2016 - 9:56 am
I’m not sure if I’m writing the correct area.
I have an RDWEB server 2012-R2
I want to configure/allow another service to run over RDWEB clients sessions? there is any way to do this? by default my specific Service is not running over RDWEB session but is Running over Normal RDP.
Any way to do this ?
Thanks in advance,
#59 by Shimon Adimor on September 12, 2016 - 5:28 pm
Nice article, Eddie.
I have a farm which already has quite a few collections, some of them remote desktop and some Remote Apps.
The remote desktop ones are HA – easy to configure.
If I want to add a session host in a remote app collection (which already has about 15 Apps on it) – is there an easy way to duplicate the existing server and launch a secondary exact server (with a different host name, of course) and add it to the collection ?
This may save a LOT of work…
#60 by Shimon Adimor on October 20, 2016 - 7:34 pm
Nice article !
I am running an RDS farm with 8 remote desktop session hosts and 3 session hosts for remote apps.
Right now each remote app session host is defined in a separate collection, because the apps are different.
I am looking into adding a remote app session host to an existing collection, and my question is:
Once I install all the apps exactly as they are installed in the first server, and add the 2nd session host to the collection – will the load balancing start working, or there are any other steps that have to be taken ?
Thanks in advance for any assistance here.
#61 by Adam on November 29, 2016 - 12:26 pm
Hi Eddie, Excellent informative article! I have set my farm up as per your guide with 3 session host servers and 1 connection broker also acting as gateway and web access.
I have installed my applications (MS office etc) on the 3 session host servers. When try to retrieve the list of available apps to publish (obviously publishing them on the connection broker), when it tries to interrogate the 3 session host servers for apps, it just stays searching, i have left it searching for 3 days and still nothing, but no error messages and nothing in the logs. Any ideas?
#62 by Amanda Pavlik on December 27, 2016 - 10:32 am
This is a great article!
I have one question regarding publishing RemoteApps, We have recently updated an application that is currently published out, how do you go about publishing out a new RemoteApp to an existing collection.
#63 by mpecsinc on February 26, 2017 - 11:49 pm
I’m not sure if my previous comment hit moderation or not as signing in seemed to kick me off the page.
Question 1: Where does the button go that links to the Session Hosts that is there just after creating the Collection but disappears after publishing RemoteApps?
Question 2: I’ve seen other articles that set up RemoteApps edit the Collection to point the UPDs to another location. When folks log on to the Session Hosts they get the original UPD and location while opening a RemoteApp puts them into another UPD in another location. Is this necessary?
Thanks for the great guide!
#64 by Pat on October 31, 2017 - 7:44 am
Hi Eddie, Great guide. I have two RD Session hosts going to a broker 2012R2 (for all servers). The programs on the session hosts gets published to the broker witch is connect to Wyse thin clients. The issue I have is that the icons become generic when I publish something other than the actual program. ie if it is a shortcut or pdf published…the broker doesn’t have the program, so it defaults to a generic icon. Is there a way to fix this?
#65 by Gerardo on June 11, 2018 - 8:43 am
Great guide. Thank you. One thing I cannot find. If I install a new application on one session host (via the applet in Control Panel obviously). Would that application install on all session host members at the same time? or do I need to go to ALL session hosts (we have 16) separately to install it on each of them? one-by-one?