Startup Management

Microsoft.Windows.Server.RemoteDesktopServices.2012.NewUnitMonitor_4 (UnitMonitor)

This object monitors the connection requests to start a virtual desktop.

Knowledge Base article:

Summary

The RD Connection Broker server communicates with the RD Virtualization Host server when a user requests a connection to a virtual desktop.

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: 4609, 4871

To determine how to fix this error condition, examine the error code reported in the event message text.

The event message can report the following error codes:

To perform these procedures, you must be a member of the Administrators group, or you must have been delegated the appropriate authority.

RPC_S_SERVER_UNAVAILABLE (800706ba)

To resolve this issue, you should enable Remote RPC and ensure that Remote Service Management is allowed through the Windows Firewall.

To enable Remote RPC:

1. On the virtual desktop computer, open Registry Editor. To open Registry Editor, click Start, click Run, type regedit.exe and then press ENTER.

2. Navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer.

3. Double-click the AllowRemoteRPC registry entry; in the Value data box, type 1 and then click OK.

4. Close Registry Editor.

5. If this does not resolve your issue, use the procedure named "To ensure that Remote Service Management is allowed through the Windows Firewall."

You can allow Remote Service Management through the Windows Firewall by using the Windows Firewall console.

To ensure that Remote Service Management is allowed through the Windows Firewall:

1. On the virtual desktop computer, open the Windows Firewall console. To open the Windows Firewall console, click Start, click Control Panel, click System and Security, and then click Allow a program through Windows Firewall.

2. Select the Remote Service Management check box, and then click OK.

E_ACCESSDENIED (8007005)

To resolve this issue, you should enable Remote Desktop, add the appropriate user accounts to the Remote Desktop Users security group on the virtual desktop, and then add the appropriate RDP protocol permissions.

To enable Remote Desktop:

1. On the virtual desktop, open the System control panel. To open the System control panel, click Start, right-click Computer, and then click Properties.

2. Click Remote settings.

3. Click one of the following options:

4. If you want to enforce Network Level Authentication, click the Allow connections only from computers running Remote Desktop with Network Level Authentication (more secure) option.

5. If you do not want to enforce Network Level Authentication, click the Allow connections from computers running any version of Remote Desktop (less secure) option.

6. Click OK to close the System Properties dialog box.

7. If the issue is not resolved, use the procedure named "To add the appropriate user account to the Remote Desktop Users security group on the virtual desktop."

You can add user accounts to the Remote Desktop Users security group by using the Local Users and Groups console.

To add the appropriate user account to the Remote Desktop Users security group on the virtual desktop:

1. On the virtual desktop, click Start, type lusrmgr.msc and then press ENTER.

2. Click Groups.

3. Right-click Remote Desktop Users, and then click Add to Group.

4. Click Add.

5. In the Select Users, Computers, Service Accounts, or Groups dialog box, in the Enter the object names to select box, type the name of the user account, and then click OK.

6. Click OK to close the Remote Desktop Users Properties dialog box.

7. If the issue is not resolved, use the procedure named "Add the appropriate RDP protocol permissions."

You must add the appropriate RDP protocol permissions by using an elevated command prompt.

To add the appropriate RDP protocol permissions:

1. On the virtual desktop, open an elevated command prompt. To open an elevated command prompt, click Start, click All Programs, click Accessories, right-click Command Prompt, and then click Run as administrator.

2. Type the following commands where domain is the name of the domain and server is the name of the RD Virtualization Host server:

Resolution steps for the following event IDs: 4864, 4866, 4867

You can restart the Remote Desktop Virtualization Host Agent service by using the Services console.

To perform this procedure, you must be a member of the Administrators group, or you must have been delegated the appropriate authority.

To restart the Remote Desktop Virtualization Host Agent service:

1. On the RD Virtualization Host server, click Start, point to Administrative Tools, and then click Services.

2. Right-click Remote Desktop Virtualization Host Agent, point to All Tasks, and then click Restart.

Element properties:

TargetMicrosoft.Windows.Server.2012.RemoteDesktopServicesRole.Service.RDVirtualizationHost
Parent MonitorSystem.Health.AvailabilityState
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityHigh
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.2SingleEventLogManualReset3StateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Startup Management Alert
Event ID: {0} -- Description: {1}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.RemoteDesktopServices.2012.NewUnitMonitor_4" Accessibility="Public" Enabled="true" Target="Microsoft.Windows.Server.2012.RemoteDesktopServicesRole.Service.RDVirtualizationHost" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLogManualReset3StateMonitorType" ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.RemoteDesktopServices.2012.NewUnitMonitor_4_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>High</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/EventDisplayNumber$</AlertParameter1>
<AlertParameter2>$Data/Context/EventDescription$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UIGeneratedOpStateIdb5a2e109970c460a849e13a83e061368" MonitorTypeStateID="ManualResetEventRaised" HealthState="Success"/>
<OperationalState ID="UIGeneratedOpStateIdd6a9d05c72c046daa1c6fe746915f77a" MonitorTypeStateID="SecondEventRaised" HealthState="Warning"/>
<OperationalState ID="UIGeneratedOpStateIdd4dad1770c804a1c99f0654541fc5023" MonitorTypeStateID="FirstEventRaised" HealthState="Error"/>
</OperationalStates>
<Configuration>
<FirstComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</FirstComputerName>
<FirstLogName>Microsoft-Windows-TerminalServices-TSV-VmHostAgent/Admin</FirstLogName>
<FirstExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Channel</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-TerminalServices-TSV-VmHostAgent/Admin</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4865</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4866</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4864</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4867</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4870</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4871</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
</And>
</FirstExpression>
<SecondComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</SecondComputerName>
<SecondLogName>Microsoft-Windows-TerminalServices-TSV-VmHostAgent/Admin</SecondLogName>
<SecondExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4609</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Channel</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-TerminalServices-TSV-VmHostAgent/Admin</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</SecondExpression>
</Configuration>
</UnitMonitor>