Remote Desktop IP Virtualization IP Address Assignment

Microsoft.Windows.Server.10.0.RemoteDesktopServices.NewUnitMonitor_22 (UnitMonitor)

This object monitors the assignment of Remote Desktop IP Virtualization IP address assignments.

Knowledge Base article:

Summary

Remote Desktop IP Virtualization allows you to assign a unique IP address to a user session or on a per program basis. You must have a DHCP scope configured with enough IP addresses for all sessions or programs on an RD Session Host server.

Resolutions

To resolve this issue, check the event ID, and then view the troubleshooting information for that event in the sections below.

Resolution steps for the following event IDs: 110, 109

To resolve this issue, confirm that the Remote Desktop IP Virtualization settings are configured correctly by using the Remote Desktop Session Host Configuration tool.

To perform this procedure, you must have membership in the local Administrators group, or you must have been delegated the appropriate authority.

To check the Remote Desktop IP Virtualization settings by using Remote Desktop Session Host Configuration:

1. On the RD Session Host server, click Start, point to Administrative Tools, point to Remote Desktop Services, and then click Remote Desktop Session Host Configuration.

2. Under the RD IP Virtualization heading, double-click IP Virtualization.

3. Confirm the following settings:

4. The Enable IP virtualization check box is selected.

5. The appropriate network adapter is shown in the Select the network adapter to be used for IP virtualization box.

6. Ensure that the appropriate IP virtualization mode is selected, either Per session or Per program. If you are using Per program, ensure that the appropriate programs are shown in the Assign virtual IP addresses to these programs box.

Note: You can also specify Remote Desktop IP Virtualization settings for an RD Session Host server by using Group Policy.

Resolution steps for the following event IDs: 115, 106, 105, 116

To resolve this issue, identify and fix any issues with your DHCP server by doing the following:

To perform these tasks, refer to the following sections.

Note: The following procedures include steps for using the ping command to perform troubleshooting. Therefore, before performing these steps, check whether the firewall or Internet Protocol security (IPsec) settings on your network allow Internet Control Message Protocol (ICMP) traffic. ICMP is the TCP/IP protocol that is used by the ping command.

To perform these procedures, you must have membership in the local Administrators group, or you must have been delegated the appropriate authority.

Determine if there is a network connectivity problem

To determine if there is a network connectivity problem between the RD Session Host server and the DHCP server:

1. On the RD Session Host server, click Start, click Run, type cmd, and then click OK.

2. At the command prompt, type ping server_FQDN, where server_FQDN is the fully qualified domain name (FQDN) of the DHCP server (for example, server1.contoso.com), and then press ENTER.

If the ping was successful, you will receive a reply similar to the following:

Reply from IP_address: bytes=32 time=3ms TTL=59

Reply from IP_address: bytes=32 time=20ms TTL=59

Reply from IP_address: bytes=32 time=3ms TTL=59

Reply from IP_address: bytes=32 time=6ms TTL=59

3. At the command prompt, type ping IP_address, where IP_address is the IP address of the DHCP server, and then press ENTER.

If you can successfully ping the DHCP server by IP address, but not by FQDN, this indicates a possible issue with DNS host name resolution.

If you cannot successfully ping the DHCP server by IP address, this indicates a possible issue with network connectivity, firewall configuration, or IPsec configuration.

Ensure that enough IP addresses are available within the DHCP scope

To ensure that enough IP addresses are available within the DHCP scope:

1. On the DHCP server, click Start, point to Administrative Tools, and then click DHCP.

2. Expand the DHCP server, expand IPv4, and then click Address Leases.

3. Ensure that the amount of DHCP leases does not exceed the amount of IP addresses available within the DHCP scope.

Perform additional troubleshooting steps

The following are some additional troubleshooting steps that you can perform to help identify the root cause of the problem:

Ensure that the DHCP server and the RD Session Host server are located on the same subnet.

Element properties:

TargetMicrosoft.Windows.Server.10.0.RemoteDesktopServicesRole.Service.RDSessionHost
Parent MonitorSystem.Health.ConfigurationState
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.2SingleEventLogManualReset3StateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Remote Desktop IP Virtualization IP Address Assignment Alert
Event ID: {0} -- Description: {1}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.10.0.RemoteDesktopServices.NewUnitMonitor_22" Accessibility="Public" Enabled="true" Target="Microsoft.Windows.Server.10.0.RemoteDesktopServicesRole.Service.RDSessionHost" ParentMonitorID="SystemHealth!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLogManualReset3StateMonitorType" ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.10.0.RemoteDesktopServices.NewUnitMonitor_22_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/EventDisplayNumber$</AlertParameter1>
<AlertParameter2>$Data/Context/EventDescription$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateIdf6d3de9cd52f491b875c4c15860fd7ea" MonitorTypeStateID="ManualResetEventRaised" HealthState="Success"/>
<OperationalState ID="UIGeneratedOpStateIde23cfd9d21b544ccae654266cae9c496" MonitorTypeStateID="SecondEventRaised" HealthState="Warning"/>
<OperationalState ID="UIGeneratedOpStateId6f6e65091fe744f2a12285f6aa1cc971" MonitorTypeStateID="FirstEventRaised" HealthState="Error"/>
</OperationalStates>
<Configuration>
<FirstComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</FirstComputerName>
<FirstLogName>Microsoft-Windows-TerminalServices-TSAppSrv-TSVIP/Admin</FirstLogName>
<FirstExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Channel</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-TerminalServices-TSAppSrv-TSVIP/Admin</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">105</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">106</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">116</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">109</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">110</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
</And>
</FirstExpression>
<SecondComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</SecondComputerName>
<SecondLogName>Microsoft-Windows-TerminalServices-TSAppSrv-TSVIP/Admin</SecondLogName>
<SecondExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">115</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Channel</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-TerminalServices-TSAppSrv-TSVIP/Admin</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</SecondExpression>
</Configuration>
</UnitMonitor>