Hey guys, a colleague of mine may have found an issue relating to Windows Server 2019 folder junctions and FSRM File Screens. He's been testing various scenarios for the past two days and can accurately replicate the possible bug in the underlying system.
Create a folder at the root of C:\Folder1 new-item -Type Directory -Name Folder1 -Path C:
Create a folder at the root of C:\Folder1 called Folder2 new-item -Type Directory -Name Folder2 -Path C:\Folder1
Create Junction in Folder1 called Folder2, this is actually a Folder on the root of c: (e.g C:\Folder2) new-item -type Junction -path "C:\Folder1\Folder2" -value "C:\Folder2"
Now try and create a file inside Folder2 using the UNC path. \\localhost\c$\Folder1\Folder2 That will succeed.
Install FSRM, add any type of file screen (active or passive) to any folder on the C: volume. Now try the same test again. It will fail. (Obviously, don't block .txt files and expect to create a txt file.)
We repeatedly demonstrate this issue by installing a base copy of Windows Server 2019, installing FSRM and setting up just one File Screen will break the ability to write to folder junctions over a UNC path.
1. Base install Windows Server 2019, Build Number 316 or 437, doesn't matter which, we've tried both. 2. Install File server Resource Manager Role 3. Create a folder on c:\ called Folder1. 4. Create a folder on c:\ called Folder2. 5. PS> new-item -type Junction -path "C:\Folder1\Folder2" -value "C:\Folder2" #This creates the junction 6. Using FSRM, create a file screen affecting any folder in the C: drive. It doesn't matter where as such. We've noticed this bug affects the volume the screen is applied to. 7. The TESTs > Test 1. Browse to the junction folder c:\Folder1\Folder2 and create a file inside it. That will succeed. You can check C:\Folder2 to see the newly created file. That's fine and the expected result. Test 2. Browse to the junction folder \\localhost\c$\Folder1\Folder2 and create a file (FILE, NOT FOLDER) inside it. That will FAIL. This is not the anticipated behaviour. (You can confirm it's not a permission fault by going direct to \\localhost\c$\Folder2 and create that same file. That'll succeed. ) Test 3. Remove the file screen in FSRM and restart. Repeat Test 2 again. This time it'll succeed.
We've noticed that a storage driver is added to a volume when a file screen is active. If that driver is in place, then creating files over a UNC path errors. Remove the file screen and the driver is removed (on reboot) and the file creation over UNC path works.
So we're thinking it's a fault with the FSRM more so than the junction. We've been using junctions and FSRM on Windows Server 2016 for the past 2 years fine. We encountered the problem after upgrading to 2019.
tl;dr: When a file screen is applied to Windows Server 2019, users can no longer write files to UNC paths that use junctions.
Could someone please take a stab at replicating this fault too? :)