XenApp 6_5 for Windows Server 2008 R2
This article describes how to setup a XenApp 6.x server to use Virtual IP (VIP) per applications or sessions.


This article describes how to setup a XenApp 6.x server to use Virtual IP (VIP) per applications or sessions.


  • RD Session Host server role installed on XenApp 6.xserver
  • Hotfix Rollup Pack 1 for Citrix XenApp 6 for Microsoft Windows Server 2008 R2
  • Hotfix Rollup Pack 1 for Citrix XenApp 6.5 for Microsoft Windows Server 2008 R2
  • Ensure there are no active sessions on the RD Session Host server before enabling this feature
  • Ensure the DHCP server is on the same subnet as the RD Session Host server and that the DHCP scope contains enough IP addresses for the load


Configuration of VIPs in XenApp 6.x differs greatly compared to previous releases of XenApp and CPS. Configuration is required at both the RDS level and the XenApp level. VIP settings must be configured in XenApp policies as well as on the server within the Remote Desktop Host Configuration tool (or through GPO). The XenApp Virtual IP policy settings add additional support to the Windows IP Virtualization feature and are beyond the scope of this document. For more information and guidance on XenApp VIP policies, refer to Citrix Documentation - Making Virtual IP Addresses Available to Applications.


Enabling RD IP Virtualization

Note: RD IP Virtualization is installed as part of the Remote Desktop Server Session Host role service, but by default it is set as “Not Enabled”
  1. Open the RD Session Host Configuration console.

  2. Locate the RD IP Virtualization setting in Edit Settings area.

  3. Double-click the IP Virtualization link to access the RD IP Virtualization properties dialog box.

  4. To enable Remote Desktop IP Virtualization, select the Enable IP virtualization check box.

  5. Check Select the network adapter to be used for IP Virtualization drop-down to list all the enabled network adapters that can be used for RD IP Virtualization.

  6. Select the appropriate network adapter to be used for RD IP Virtualization.

    User-added image

Configuring Virtual IP for Per Program Mode

Important! If your computer has more than one network adapter, you must choose per program. Using per session Remote Desktop IP Virtualization with more than one network adapter installed on the computer is not supported. Only single network adapter scenarios are currently supported. If the server has multiple enabled network adapters, only the adapter specified in the settings will be used for IP Virtualization, as explained on TechNet Configuring Remote Desktop IP Virtualization and in eDocs.
  1. If per-application mode is desired, select the Per Program radio button located in the lower section of the RD IP Virtualization tab panel in the user interface.

  2. Add the applications to virtualize. Click the Add Program button to add the applications.
    A browser view window opens to select applications installed on the server.

  3. Browse to the path application installed path, select and click Open.
    The selected applications now appear in the list view in the Assign virtual IP addresses to these programs list box.

  4. Click Apply > OK to accept changes.

  5. Reboot the RDSH server.

Note: Per Program mode has no significance if programs are not selected that use virtual IP addresses.

Configuring Virtual IP for Per Session Mode

  1. If per session mode is desired, select the Per Session radio button located in the lower section of the UI's RD IP Virtualization tab panel.

  2. Click Apply.

  3. Reboot the RDSH server.

Verify RD IP Virtualization Changes have been Applied to Registry

  1. Open REGEDIT.EXE and navigate to HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer\TSAppSrv\VirtualIP.

  2. Verify the following values were written in the registry:

    • EnableVirtualIP – DWORD value of 1
    • VirtualMode – DWORD value depending on mode (Per Program or Per Session Mode)
    • Per-Session mode = 0
    • Per-Application = 1
    • AdapterAddress – String (REG_SZ) value equal MAC address of Physical Network card being used for the IP Address Virtualization
  1. If preceding values are missing or incorrect, add each one manually with the appropriate information.

Configuring a Static IP Pool for RD IP Virtualization

In most environments, DHCP servers are assigned to distribute available IP addresses, however if specific sets of IP addresses are required, the following procedure must be followed:

Note: Ensure that selected IP addresses are excluded from the list of addresses that your DHCP server will hand out to avoid IP address conflicts.

  1. Open REGEDIT.EXE and navigate to the HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer\TSAppSrv\VirtualIP key.

  2. Assuming the previous registry settings have been added and configured correctly, proceed by adding the following value:
    IPPool – set this String (REG_SZ) value of %SystemRoot%\system32\TSVIPool.dll

  1. Proceed to adding the IP Address information in Step 4.

  2. Navigate to HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer\TSAppSrv\VirtualIP.

  3. Create a new key named IPPool.

  4. Select the newly created IPPool key.

  5. Create the following String (REG_SZ) values:

    • Start: indicates the starting IP address for your VIP addresses.

    • End: indicates the ending IP address for your VIP addresses.

    • SubnetMask: the subnet mask for your VIP address range.

      Registry Editor
  1. Next, in AppCenter, from either the Farm or Server level leaf:
    Session Items
    1. Click the Choose columns link located in the extreme right of the right pane.

    2. Select Virtual IP Address from the list, and then click OK.

      Session must now display the assigned VIP and the client device IP address
    3. Start a new session and launch the application you added in the previous Per Program.

    4. Check in AppCenter to confirm that a VIP was assigned to user session.

    5. Session must now display the assigned VIP and the client device IP address.
      User-added image


The above mentioned sample code is provided to you as is with no representations, warranties or conditions of any kind. You may use, modify and distribute it at your own risk. CITRIX DISCLAIMS ALL WARRANTIES WHATSOEVER, EXPRESS, IMPLIED, WRITTEN, ORAL OR STATUTORY, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NONINFRINGEMENT. Without limiting the generality of the foregoing, you acknowledge and agree that (a) the sample code may exhibit errors, design flaws or other problems, possibly resulting in loss of data or damage to property; (b) it may not be possible to make the sample code fully functional; and (c) Citrix may, without notice or liability to you, cease to make available the current version and/or any future versions of the sample code. In no event should the code be used to support ultra-hazardous activities, including but not limited to life support or blasting activities. NEITHER CITRIX NOR ITS AFFILIATES OR AGENTS WILL BE LIABLE, UNDER BREACH OF CONTRACT OR ANY OTHER THEORY OF LIABILITY, FOR ANY DAMAGES WHATSOEVER ARISING FROM USE OF THE SAMPLE CODE, INCLUDING WITHOUT LIMITATION DIRECT, SPECIAL, INCIDENTAL, PUNITIVE, CONSEQUENTIAL OR OTHER DAMAGES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Although the copyright in the code belongs to Citrix, any distribution of the sample code should include only your own standard copyright attribution, and not that of Citrix. You agree to indemnify and defend Citrix against any and all claims arising from your use, modification or distribution of the sample code.


Join the conversation

Citrix Discussions

Open a case

Citrix Support