Microsoft Windows Virtual Desktop (WVD) bug with Multisession Windows 10 version 2004
I have today found out a major bug in Microsoft Windows Virtual Desktop (WVD) with OS Windows 10 Multisession version 2004. After helping a client with expanding some FSlogix storage, I saw there was some important patches for OS (CU) and some security patches, its always recommended to apply these patches, as you will gain performance and stability and improve security.
But after applying these CU, I ran into a very strange problem that when you login to the Multisession host from any WVD client, the Windows screen flicker and keep updating in the GUI and you couldn’t do anything not click anything inside the desktop. After some research on the web, I saw other people facing the same issue with as I saw. The interesting part was that Pieter Wigleven from Microsoft, confirm this bug and that the Microsoft Search team will solve this part in future builds of Windows.
UPDATE 22TH SEPTEMBER 2020 FROM PIETER WIGLEVEN, MICROSOFT This specific issue only impacts Windows 10 Enterprise/multi-session version 2004 and the fix is currently scheduled for release in the third week of October 2020. In that third week of October - if you manually click the “Check for Updates” button you will get it. If you won't check manually, you’ll receive this bugfix in November's Patch Tuesday (second week of the month).
Deep dive into the bug
Issue is not happening if you connect to Multisession Windows 10 version 2004 with pure RDP connection, it only happends if you connect via WVD (HTML5 or native clients)
Error like these gets written to event viewer all the time when you try to login to a session
The user experience following experience from a WVD device:
Create a sheduled task with one of below options
- on your golden image and deploy out new changes
- Or manual on each Multisessionhost
- or via a GPO:
Create a new task and give it a name WVD Windows Search fix
Click on tab “Triggers“
Click button “New“
On new window that opens “New trigger” do following:
Change “Begin the task” to “On an event“
Click Custom, click button New Event Filter
Click on tab “XML“
Add following query
<Query Id=”0″ Path=”Application”>
<Select Path=”Application”>*[System[(EventID=1000)]] and *[EventData[Data=’explorer.exe’]]</Select>
Click on Active and validate its enabled. Then click on OK button
Click on tab Actions
type cmd.exe under "Program/script"
And add following argument
/c NET Stop WSearch && NET Start Wsearch
Thank you to Tim Sinclair for sharing experience on solution and Mark Aldridge for sharing XML solution which inspired me to create this blogpost with more details.
Nice writeup. I prefer the Citrix workaround to disable the poorly implemented per-user search feature.
Code below FYI:
# Check if registry value exist.
# If registry value exists configure value data to 0, otherwise create registry value
If (!(Get-ItemProperty -Path “HKLM:SOFTWARE\Microsoft\Windows Search” -Name “EnablePerUserCatalog” -ErrorAction SilentlyContinue))
New-ItemProperty -Path “HKLM:SOFTWARE\Microsoft\Windows Search” -Name “EnablePerUserCatalog” -Value 0 -PropertyType “DWORD” -Verbose
Set-ItemProperty -Path “HKLM:SOFTWARE\Microsoft\Windows Search” -Name “EnablePerUserCatalog” -Value 0 -Verbose