Windows Remote Desktop Audio Not Working
Sunday, January 27th, 2019Hopefully this post can help you solve an issue if you’re experiencing a situation with no audio while connecting to a Windows 10 VM in Hyper-V, but audio is not passing through via RDP.
A client had a Hyper-V deployment on Server 2012 R2, hosting a Windows 7 Virtual Machine. They were using Remote Desktop via a Windows 10 client computer to connect to the Windows 7 VM. Within the RDP shortcut on the Windows 10 machine, they had several options checked under ‘local resources’, ‘configure remote audio settings’:
- Remote audio playback, play on this computer was checked
- Remote audio recording, record on this computer was checked
In addition, within the same RDP shortcut file were the following applied settings (edited with notepad):
audiocapturemode:i:1
audiomode:i:0
audioqualitymode:i:2
From within the Hyper-V host, the VM had ‘allow enhanced session mode’ and ‘use enhanced session mode’ applied for both user and server.
Under these settings and while connecting to the Windows 7 Virtual Machine, audio pass-through via RDP was functional. The Windows 10 machine was able to RDP into the W7 VM and play audio files within the VM that would pass through to the local machine’s speakers.
The problem arose after performing a Windows Update that updated the Windows 7 VM to a Windows 10 VM. The update went smoothly and all application data and user data was preserved during the update process. The client was using the same RDP connection settings to connect to the new Windows 10 VM as described above. However, no audio was passed through the VM to the local machine. In fact, there was a red X shown on the speaker icon from within the VM in the taskbar, and upon hovering over the red X the message displayed was “No audio device” and “Code 45”.
Several troubleshooting steps were attempted, including all the following:
- Verify on the local windows 10 machine that the following services were running and set to automatic startup: Windows Audio, Remote Desktop Services, Remote Desktop UserMode Port Redirector
- Verify that all of the same services were running on the Hyper-V host server
- Look for the ‘Remote Audio’ device from device manager on the Server 2012 R2 Hyper-V host system, which existed.
- Attempt to uninstall, then re-install the ‘Remote Audio’ device on the Windows 10 VM, which failed.
- Verify that all updates were applied to both the Hyper-V server and the Windows 10 Virtual Machine, which had no impact on the issue
- On the server, looked at the Group Policy settings under Computer Configuration, Administrative Templates, Windows Components, Remote Desktop Session Host, Device and Resource Redirection and verified that “Limit audio playback quality” was set to “Enabled” and “Audio Quality” was set to “High”
- SFC and DISM scans were ran within the Windows 10 VM to verify that no OS files were corrupt
The most unusual aspect of this issue was the fact that, when connecting to the Windows 10 Virtual Machine using the Hyper-V Manager, and using ‘Enhanced Session’, the remote audio played on the VM would work just fine and would transfer through for playback on the local machine. Since audio redirection worked just fine when connecting via the Hyper-V Manager, but not RDP, I was certain that it was a setting pertaining to the RDP that connection that was the source of the problem.
After some additional reading, we first thought that the VM was faulty, as it was initially setup as Generation 1 for Windows 7, whereas most recommend using Generation 2 for Windows 10. However, after several days of tweaking settings and testing, we finally found the true source of the issue.
The fix was found in the group policy “Enable Remote Desktop Protocol 8.0”. This setting was set to “Enabled” under the Windows 7 VM for whatever reason. After the update to Windows 10, the setting remained, and caused the audio redirection to fail. Changing this setting from “Enabled” to “Not Configured” followed by a reboot allowed audio redirection to work again. Finally, audio could be passed from the Windows 10 VM to the local Windows 10 machine for playback.