Configuring Remote Desktop IP Virtualization III

Configuring Remote Desktop IP Virtualization III

  • Comments 9

Part III: using Remote Desktop Services Provider for Windows PowerShell™

Part I of this blog post series describes what Remote Desktop IP Virtualization is all about, illustrates the scenarios where it can add value, lists the requirements for configuring a server in Remote Desktop IP Virtualization mode and details the steps involved in configuring per-program and per-session Remote Desktop IP Virtualization using Remote Desktop Services provider for Windows PowerShell.

Part II of this blog post series describes configuring RD IP Virtualization automatically on managed computers by using Group Policy objects.

This post explains how to do all this using the RDS Provider for Windows PowerShell.

  1. On the RD Session Host server, start “Windows PowerShell Modules” with elevated privileges. Click Start, select Administrative Tools, right-click “Windows PowerShell Modules,” and then click “Run as administrator.
  2. Type “cd RDS:” and press ENTER to switch to the RDS Provider for Windows PowerShell. Type “cd RDSConfiguration\VirtualIPSettings” and press ENTER. Type “Dir” and press ENTER to see the configuration settings required to set the RD Session Host Server in Remote Desktop IP Virtualization mode.
    image 
  3. Remote Desktop IP Virtualization is disabled by default. To enable Remote Desktop IP Virtualization, type “Set-Item VirtualIPActive 1” and press ENTER.
    image
  4. To select a network adapter to be used for Remote Desktop IP Virtualization:
    a. If the MAC address of the network adapter is already known, provide the value directly to set-item by typing “set-item .\NetworkAdapter 00-15-17-0E-7A-43”, where “00-15-17-0E-7A-43” is the MAC address of the network adapter and Press ENTER.
    image
    b. Alternatively, to get the MAC address of the network adapter, type “$NetworkAdapter=Get-WmiObject -namespace root\cimv2\terminalservices –query "select * from win32_tsvirtualip"” and then press ENTER.
    image

    Now select the MAC Address of the appropriate network adapter to be used for IP Virtualization by accessing the $NetworkAdapter.NetworkAdapterMacList[] array. In the above example, if “Intel(R) PRO/1000 PT desktop Adapter” is to be used for IP virtualization, Type “set-item .\NetworkAdapter $NetworkAdapter.NetworkAdapterMacList[0] -passthru” and then press ENTER.
    image

Note: Only single network adapter scenarios are currently supported. If the server has multiple enabled network adapters, only the adapter selected in the settings will be used for Remote Desktop IP Virtualization.

Configuring IP Virtualization in Per Program Mode

By default, when Remote Desktop IP Virtualization is enabled, the server is configured on per-program mode (the value of VirtualIPMode being 1).

Note: This mode is of no practical significance if no programs are selected that use virtual IP addresses.

To choose applications that need a virtual IP address, create entries under the RDS: \RDSConfiguration\VirtualIPSettings\Applications node. An application can be virtualized by using either:

  • The full path of the application: Only the application at the specified location is IP-virtualized
  • The process name: All applications with the process name, regardless of their path, are IP-virtualized.

Type “New-Item –Path RDS: \RDSConfiguration\VirtualIPSettings\Applications” and then press ENTER. Enter the path of the application.
image

You can assign Virtual IPs to an application directly by using either the AppPath or AppName parameters directly as shown in the screen snapshots below:

a. Using AppPath:
image

b. Using AppName:
image

Note: To remove a program from the list, say notepad.exe, type “Remove-Item –Path RDS:\RDSConfiguration\VirtualIPSettings\Applications\notepad.exe –Recurse” and then press ENTER.

The final step is to reboot the RDSH server so that new user sessions logging on will get virtual IP addresses for their virtualized applications.

Configuring IP Virtualization in Per Session Mode

To change the mode to per-session, type “Set-Item VirtualIPMode 0” and then press ENTER. Reboot the server to complete the configuration.
image

To disable RD IP Virtualization, type “Set-Item VirtualIPActive 0” and then press ENTER.

Leave a Comment
  • Please add 7 and 7 and type the answer here:
  • Post
  • Hi There.

    On Per Session Mode

    How do we monitor the IP Address assigned to the RDP Sessions.

    On the Client when checked using ipconfig and browser based IP check. All Returned the Host IP Address.

    On the Host Using Remote Desktop Service Manager It showed the Client IP Address

    Is there anyway we can see the assigned IP Address for a Session or For a Program.

    Thanks in Advance

    Anbu

  • Hi Anbu- you should be able to see 2 IP addresses when running ipconfig from your session - one of the host and one for the session if it's been configured correctly. Can you double check that you've enabled IP Virt properly (configured the network adapter you must use, etc)?

  • Is there any way to reserve addresses on a per-user basis so that that individual users receive the same address for IP virtualization for each session session they start?  Such a thing would be useful for monitoring purposes.

  • Hi, Mike,

    I'm afraid that that functionality isn't supported in WS08 R2. For your purposes, would it be sufficient to be able to determine which user was using a particular IP address at a given time? Or is there a scenario that demands a static mapping?

  • He could however use Microsoft VDI functionality of 2008 R2 RDS to staticly assign users of this application to a virtual desktop with a static IP.

  • It's a scenario that requires static mapping such that each user is consistently assigned their own, specific IP address (on a multi-homed system) regardless of number of sessions, session connects/disconnects, etc.  By doing this, in theory, we'd be able to monitor their network usage entirely by IP address which would greatly simplify the process.

  • Has anyone tried using GetHostByName programmatically to retrieve the virtual IP of a Remote session?  It seems like it always return the machine physical IP even though in a command prompt, doing Ipconfig shows both the machine IP and the virtual session IP.

  • when 4 rdp users are logged in, ipconfig only shows the 1 adapter ip(.177) and 2 virtual ips.

    this is the order they were logged in, their group, and what ipconfig showed at each point

    test1(rdp users) - .177, .139

    test2(rdp users) - .177, .139

    testadmin1(administrators) - .177, .139, .101

    testadmin2(administrators) - .177, .139, .101

    I'm assuming that when each user logs in a new deprecated ip should be created, right?

  • NOTE:

    maybe this has something to do with the rdp licensing?

    right now we don't have 2008 rdp licensing because we are trying to determine proof of concept.

    so with the grace period, it allows more than 2 rdp sessions, but maybe ip virtualization ignores that?

Page 1 of 1 (9 items)