Jan 24 2022 02:46 PM - last edited on Mar 15 2022 04:58 PM by Eva Seydl
FSLogix 2201 Public Preview Update 1 has been published to address the issue outlined below. Please read details here.
FSLogix 2201 is now available in Public Preview. This public preview is not recommended for production workloads. Please leverage your standard Microsoft support channels to report issues with this public preview release.
ISSUE IDENTIFIED IN THIS PUBLIC PREVIEW RELEASE:
Your environment is impacted by this bug if you have the "Restrict Remote Desktop Services users to a single Remote Desktop Services Session" group policy set to disabled or the HKLM:\Software\Policies\Microsoft\Windows NT\Terminal Services\fSingleSessionPerUser regkey value is set to 0.
We recommend impacted customers not install this public preview or revert back to the current generally available release. We are validating a fix for the issue and will publish an update to the public preview when it is available. Customers not impacted by this issue can continue validating this public preview release.
Preview Details
You can sign up here to participate in the Public Preview:
https://aka.ms/fslogix/preview
This release can be installed over all existing versions of FSLogix or you can perform a fresh install without a pre-existing FSLogix version.
Here's what's new in this release:
Mar 17 2022 04:15 AM
@StephanstokeDid you solve this issue? I've exact same issue. Was wondering how to fix this issue. Thanks!
Mar 17 2022 05:30 AM
What's new? You fixed a critical problem with RefCount. We are waiting for the same with local_folders. Why is it taking so long?@Steve Downs
Mar 17 2022 05:51 AM - edited Mar 17 2022 09:55 AM
Hi Sjaak,
Microsoft is still working on it. Are you experiencing the same problem in a server 2019 enviroment? I just sent some extra log files to Microsoft. I'll keep you and this forum informed.
Our environment:
- Windows server 2019 + latest updates.
- FsLogix Preview update 1 (fix a lot of bugs and is running stable).
- OneDrive latest update (no preview).
Mar 17 2022 06:48 AM
@vara93 We were finally able to troubleshoot this issue thanks to customers opening tickets and providing logs. We believe the issue is related to third-party software and are working with them to investigate.
Mar 17 2022 06:57 AM
Mar 21 2022 10:40 PM
@StephanstokeHi Stephan,
Yes almost same environment;
- Server 2019 RDS
- FSLogix 2.9.7979.62170
- Onedrive 22.033.0213.0002
Mar 24 2022 12:22 AM - edited Mar 24 2022 12:51 AM
We have same issue on azure w10 multisession 21h2, with every version fslogix I tried and with the latest onedrive, some older version and deferred ring latest version. I tried it on w11, and there is too. I contacted O365 support, but they solved anything. Its very annoying...
As it is not only impacted preview version, there is another topis with this problem https://techcommunity.microsoft.com/t5/azure-virtual-desktop/onedrive-in-avd/m-p/3250770/highlight/f...
E: I tried to install iton clean image 21h2 without any updates ant it works, but If I install teams and some other apps VLC(don't ask, customer want it), total commander and so, it fails again, so its not linked to specific update...
Apr 19 2022 07:04 AM
Hi, i have exactly the same. I can reproduce this also on other environments with 2019 RDS.
When you use in onedrive the free/cleanup space (remove cached files). Only on the first time you open a file you got error 0x8007047c. If you got the error, and trie to open the file again, it is working.
When you place you onedrive folder outsite the fslogix problem than everything works fine. Did you find a solutions for this, rather than scripting and setting attributes on folders/files?
Also when using storage sense, you have the same error after cached files are removed.
Apr 19 2022 07:59 AM
@Steve Downs is there an update on the local_ folders?
Apr 19 2022 10:18 AM
Apr 19 2022 11:20 AM
May 03 2022 08:15 AM
May 03 2022 08:32 AM
May 03 2022 08:38 AM - edited May 03 2022 09:03 AM
It seems to be tied to a later (latest?) version of FSLogix since these errors are a relatively new occurrence for my clients.
The only other culprit I could think of that can hold files on driver/kernel level would be the antivirus software. We are using WithSecure (formerly F-secure) maybe other people are using the same?
Since it's a Kernel process there is no way of determining what process opened the file.
@Jason_Parker can you elaborate what 3rd party software was involved in other occurrences?
For us the folders that are left in use (access denied) are mainly:
Since it's such a variety of files it's probably FSLogix itself or a virusscanner. I would like to trial running without AntiVirus but the issue only occurs every so often so that could take a long time to determine for sure if the issue stays away or not.
May 03 2022 08:48 AM
In the end, our workaround is:
- Schedule a reboot of servers during Maintenance hours
- Run a delprof2 afterwards
That's it really.
In the end I've built a script that is scheduled on the RD Broker to check the RD Session Hosts during the night (the script is tied to a scheduled task that runs every 30 minutes between 03:00 AM and 05:00 AM) to reboot and cleanup the server whenever no users are connected (or are disconnected for at least 10 minutes). It also does some Client Side Rendering cleanups.
Hope this script might help out some of you people out there:
$Computers = (Get-RDSessionCollection | Get-RDSessionHost).SessionHost
$ScriptFolder = "C:\Scripts"
$LogFolder = "C:\Scripts\Logs"
$MinimumDisconnctedTimeInMinutes = 10
#Creating logoutput and filenames
$LogFile = $LogFolder + "\" + (Get-Date -UFormat "%d-%m-%Y") + " Maintain RDS Nodes.txt"
Function Write-Log
{
param (
[Parameter(Mandatory=$True)]
[array]$LogOutput
)
$currentDate = (Get-Date -UFormat "%d-%m-%Y")
$currentTime = (Get-Date -UFormat "%T")
$logOutput = $logOutput -join (" ")
"[$currentDate $currentTime] $logOutput" | Out-File $Logfile -Append
}
# Reboot where possible
Write-Log -LogOutput "Starting stage Reboot"
$rdUserSessions = Get-RdUserSession
$RebootedComputers = @()
Foreach($computer in $Computers)
{
Write-Log -LogOutput "- Validating $($computer)"
# Check if the server is online:
If (Test-Path "\\$($computer)\\c$")
{
$noRdSessionBlock = $True
$rdSessionCount = ($rdUserSessions | Where-Object { $_.HostServer -eq $computer}).Count
# If there are sessions, see if they are a reason NOT to reboot:
If ($rdSessionCount -gt 0)
{
# Walk through sessions on this computer:
ForEach($rdUserSession in ($rdUserSessions | Where-Object { $_.HostServer -eq $computer}))
{
# Check if the session was active:
If ($rdUserSession.SessionState -eq "STATE_ACTIVE")
{
$noRdSessionBlock = $False
}
# Check if the session is disconncted LESS than it should:
ElseIf ($rdUserSession.DisconnectTime -gt (Get-Date).AddMinutes(0 - $MinimumDisconnctedTimeInMinutes))
{
$noRdSessionBlock = $False
}
}
}
# Check if we're OK to reboot:
If ( $noRdSessionBlock )
{
# Test if the server has been 'up' for at least 16 hours:
If ((Get-CimInstance -ComputerName $computer -ClassName Win32_OperatingSystem).LastBootUpTime -le (Get-Date).AddHours(-16))
{
# Reboot the server:
Try
{
Restart-Computer -ComputerName $computer -Force -Confirm:$False
$RebootedComputers += $computer
Write-Log -LogOutput "-> Server is rebooted"
}
Catch
{
Write-Log -LogOutput "-> Failed to reboot Server"
}
}
Else { Write-Log -LogOutput "-> Server was recently rebooted already" }
}
Else { Write-Log -LogOutput "-> Server still has active or recently disconnected sessions" }
}
Else { Write-Log -LogOutput "-> Server is not accessible" }
}
Write-Log -LogOutput "Sleeping 5 minutes to start-up"
Start-Sleep -Seconds 300
# Cleanup old profiles
Write-Log -LogOutput "Starting stage Cleanup"
Foreach($computer in $RebootedComputers)
{
Write-Log -LogOutput "- Cleaning $($computer)"
# Prepare request
$arguments = ""
$arguments += " /c:\\" + $computer;
$arguments += " /u /ed:vt.admin* /ed:SVC-NW-PRTGServices";
$finalcommand = ".\DelProf2.exe" + $arguments
# Run request
Push-Location $ScriptFolder
$result = Invoke-Expression $finalcommand
Pop-Location
Write-Log -LogOutput "-> Profiles Cleaned"
# Also Cleanup the Printer Client Side Rendering:
Invoke-Command -Computer $computer -ScriptBlock {
$RegPath = "HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider"
If (Test-Path $RegPath)
{
Remove-Item $RegPath -Recurse -Force -Confirm:$False
Restart-Service Spooler -Force
}
}
Write-Log -LogOutput "-> Spooler Cleaned"
}
May 03 2022 09:56 AM
May 03 2022 12:55 PM
May 04 2022 10:36 PM
May 04 2022 10:51 PM
Hi @Steve Downs
we recommend the session host disk hosting the CCD proxy directory has a physical block size greater than or equal to the CCD storage provider with the largest blocksize size.
Does this belong to the block size of NTFS or ReFS volumes where Profile or Office Containers are saved to?
What are the recommendations on this block size?
May 04 2022 11:02 PM