What? Are you kidding me? I never knew we could automate Remote Desktop Services using PowerShell. But, yes we can. You can almost automate everything within your Remote Desktop Services Infrastructure using Windows PowerShell.

So the burning question is, when should I use PowerShell and when should I prefer using a GUI?

To explain this, let’s discuss common scenario. You have about 10 Remote Desktop Session Host Servers in your Farm. You would like to do an inventory the RemoteApps running on each of these servers. Now ideally, it is recommended to run the same RemoteApps on RDSH Servers running in a Farm. But let’s take an exception here. What would be your approach in this case?

One way to tackle this is to use the RemoteApp Manager, connect to each RDS Server and check the RemoteApps running on it. Well, nothing very complex about this approach. But imagine the amount of time you’d spend on doing this! Consider there are more than 10 Servers participating in a Farm. You’d be just:

  • Clicking around,
  • Connecting to remote servers,
  • Taking a note of the RemoteApps and then
  • Drafting a report from the data collected from it.

The other way to deal with this scenario is, yes, you guessed it right, use PowerShell.

Ask yourself a question: If you were in charge of a team of IT administrators, which ones would you want in your team?

The ones who need several minutes to click their way through a GUI for each task?

OR

The ones who can perform tasks in a few seconds after automating them?

It’s an obvious choice. PowerShell has given the term “administration” a new definition and very soon who will see the Microsoft IT Administration world split into two worlds:

  1. Ones who would continue to ignore PowerShell, use GUI and continue to use GUI even if it results in skipping their meals to get the tasks done.
  2. Ones who already are comfortable with the GUI and use it to perform one time tasks while harness PowerShell to automate bulk operations.

Now that I have set the background on “Why to use PowerShell?”, let me on-board you to a seven part journey to automate your existing RDS Environment using PowerShell.

Part 1 – Installing Remote Desktop Role Services

Part 2 – Configuring Remote Desktop Session Host using the RDS Provider for PowerShell

Part 3 – Configuring Remote Desktop Connection Broker

Part 4 – Configuring Remote Desktop Farms

Part 5 – Configuring Remote Desktop Gateway

Part 6 – Configuring Network Load Balancing for RD Gateway using PowerShell

Part 7 – Using Best Practices Analyzer to review our RDS Infrastructure

Part 8 – Using additional resources

Alright, so let’s dive straight into the first part, i.e. Installing RDS Roles using PowerShell. Let’s be immediately effective.