Virtual Desktop Management

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

This object monitors the management of virtual desktops.

Knowledge Base article:

Summary

Virtual desktops assigned as personal virtual desktops or assigned to virtual desktop pools are managed by using Hyper-V Manager.

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 ID: 4878

You can ensure that the virtual desktop exists by using Hyper-V Manager.

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

To ensure that the virtual desktop exists:

1. On the RD Virtualization Host server, open Hyper-V Manager. To open Hyper-V Manager, click Start, point to Administrative Tools, and then click Hyper-V Manager.

2. In the left pane, click the RD Virtualization Host server.

3. Under Virtual Machines, ensure that the virtual desktop exists.

Resolution steps for the following event ID:4608

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.

Resolution steps for the following event ID:4877

This issue can only happen when using a script to configure the SaveDelay property for a virtual desktop. Ensure that the script is configured correctly and try to run the script again.

Resolution steps for the following event ID:4876

This issue can only happen when using a script to configure the GuestOSEnlightened property for a virtual desktop. Ensure that the script is configured correctly and try to run the script again.

Resolution steps for the following event ID: 4872

To resolve this issue, do the following:

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

Restart the Remote Desktop Connection Broker service

You can restart the Remote Desktop Connection Broker service by using the Services console.

To restart the Remote Desktop Connection Broker service:

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

2. Right-click Remote Desktop Connection Broker, point to All Tasks, and then click Restart.

Restart the Remote Desktop Virtualization Host Agent service

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

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.

Resolution steps for the following event ID: 4875

This issue can only happen when using a script to configure the exclude property for a virtual desktop. The exclude property must be set to True or False.

Resolution steps for the following event IDs: 4868, 4869

This issue can happen if the SaveDelay property is set to True but Hyper-V cannot save the virtual desktop.

Use Hyper-V troubleshooting procedures to further diagnose the problem ( http://technet.microsoft.com/en-us/library/dd578337(WS.10).aspx).

Element properties:

TargetMicrosoft.Windows.Server.10.0.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
Virtual Desktop Management Alert
Event ID: {0} -- Description: {1}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.10.0.RemoteDesktopServices.NewUnitMonitor_5" Accessibility="Public" Enabled="true" Target="Microsoft.Windows.Server.10.0.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.10.0.RemoteDesktopServices.NewUnitMonitor_5_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="UIGeneratedOpStateIdbed6c28efd2e425dacd10c9e9624fd52" MonitorTypeStateID="ManualResetEventRaised" HealthState="Success"/>
<OperationalState ID="UIGeneratedOpStateId8fd6efab9e3847ff84f0269a577c05b6" MonitorTypeStateID="SecondEventRaised" HealthState="Warning"/>
<OperationalState ID="UIGeneratedOpStateIdde6a0bfc4a4348b8bc38d122e2376144" 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">4872</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4868</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4875</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4874</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4876</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4877</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4873</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4878</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4869</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">4608</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>