The post below will show how to disable fair sharing of CPU, disk and network in Windows Server 2012/2012R2. The post relies on information found in here and here.
It’s possible to disable it directly in the Windows Registry with the program RegEdit.exe or using PowerShell commands. Both approaches will be shown.
Disclaimer: Do a backup of Windows Registry in RegEdit.exe (File -> Export, remember to choose Export Range = All) before doing these changes!
It’s possible to disable fair sharing of the CPU using Regedit.exe. You have to change the value EnableCPUQuota from 1 to 0 (zero). NB! You change it by double-clicking on EnableCpuQuota. This value can be found in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System
It’s possible to disable fair sharing of the disk using Regedit.exe. You have to change the value EnableFairShare from 1 to 0 (zero). This value can be found in
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk
It’s possible to disable fair sharing of the network using Regedit.exe. You have to change the value EnableFairShare from 1 to 0 (zero). This value can be found in
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\NetFS
It is also possible to do this through PowerShell where you write the command below
(gwmi win32_terminalservicesetting -N "root\cimv2\terminalservices")
This will give you a list of the settings for terminalservices as shown below. You are interested in EnableDFSS, EnableDiskFSS and EnableNetworkFSS. For some reason EnableNetworkFSS is not set here.
To disable CPU fair sharing in PowerShell you write.
$temp = (gwmi win32_terminalservicesetting -N "root\cimv2\terminalservices") $temp.enableDFSS = 0 $temp.put()
To disable disk fair sharing in PowerShell you write.
$temp = (gwmi win32_terminalservicesetting -N "root\cimv2\terminalservices") $temp.enableDiskFSS = 0 $temp.put()
To disable network fair sharing in PowerShell you write.
$temp = (gwmi win32_terminalservicesetting -N "root\cimv2\terminalservices") $temp.enableNetworkFSS = 0 $temp.put()
excellent article. Solved the foxpro problem I had.
glad to see foxpro is still alive, somewhere, somehow.
Thanks for these tips.
On my server I did not find those registry entries.
I tried turning off FSS via Powershell but the commands I ran did not take effect. Running PS with as Administrator too.
What might be wrong?
You seem to be doing everything right. I hope someone reading your comment can help you.
You could try manually creating the keys and rebooting to see if that has any affect.
Works for GP when performance is an issue. Just confirmed in MDGP White papers released Sept 13, 2017
Excellent article. Possible to resolved our RDP issues as well. Thanks.
DG
Tried in both Server 2016 & Server 2019.
EnableDiskFSS remains “1” no matter what I try to do.
Tried the Powershell and was not able to find them listed in the Registry.
Those keys are only visible if you have the RDSH role installed. Hope that helps.
Great Article! I love learning new things!
Implemented this tonight. I hope it fixes issues I have been experiencing with performance and printing. So many of my users complained after upgrading from a 2008 R2 RDS to 2016 RDS.
Worked on all my TS Hosts, running Server 2016
Cheers!
K-pup, Now that you are two month into the change, I wanted to know what you think about making the change. How significant were the improvements over time?
sorry for the extremely late response.
i enabled this on 1 server out of 4 and asked a bunch of users how their experience was. I got the same feedback. I am about to implement this on the last 4 and see if i get any complaints or praises.
hey K-pup,
i got the same problem on my RDS hosts with performance and printers! did this fixed your problem? or did you found out something else?
I know that I am late to the party but I am running this fix on a 2019 RDSH. IMplementing day and will restart tonight as I currently have 20 people logged in and we do use an EHR that loves to suck up the resources.
Hey Shawn, did it work for you? Running into same issue using our EHR, and some charts take up to 30 seconds to load. Running mix of 2012/2016 rds servers.
Thanks
Ive tried powershell on 3 servers – doesnt work values aren’t changed.
Had to do it via Registry Keys – Thanks good guide.
You must run PowerShell as an admin for it to work.
Not able to disable NetworkFSS, may I know any method to resolve this?
Unable to find the corresponding file under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\NetFS on windows 11. Any solution? Thanks