Windows System Resource Manager and Windows Server 2012 R2

Features Removed or Deprecated in Windows Server 2012
Windows System Resource Manager (WSRM) is deprecated. Similar functionality is provided by Hyper-V.
Features Removed or Deprecated in Windows Server 2012 R2
Windows Server Resource Manager * – marked as removed.
* mistake on the Microsoft site. There is no such feature (Windows Server Resource Manager), but they refer to Windows System Resource Manager.

 

So, no more Windows System Resource Manager on Windows Server 2012 R2, but as you will see later in this post there is still something we can do. It is ridiculous to see Microsoft finds Hyper-V as replacement of WSRM (providing similar functionality). How does Microsoft thinks I can prioritize, or keep the Windows process usage under control with Hyper-V? By making a VM per application and use the Hyper-V resource allocations? That means we have to pay more!
I understand Hyper-V & VDI can replace the clasical Terminal Server & WSRM setup, but WSRM is not only used by the Remote Desktop Session Hosts (formerly TS).

 

Anyway, we cannot install WSRM on Windows Server 2012 R2 using the “Add Roles and Features”, but this doesn’t stop us to manually deploy WSRM and still use it.
What I will explain next is step by step how to deploy WSRM and still use it with Windows Server 2012 R2. This configuration is NOT supported by Microsoft, but if you are smart enough and know how WSRM works you will understand this setup is harmless. This setup has also some limitations, but those limitations are minor inconveniences compared with not having WSRM at all.

 

1. You will need a Windows 2012 server (let’s name it sever A). On the Windows 2012 server (A) you will install and configure WSRM exactly how you would like to have it on the Windows 2012 R2 server (server B) where you would like to run it. At this step please define also the Process Matching Criteria, Resource Allocation Policies, Calendar Events, WSRM Properties.

 

2. On the sever B you will have to add the Windows Internal Database feature. This feature is not required all the time. Some simple configurations of WSRM doesn’t even require it, but I am mentioning this step because I never know how complex your configuration is. For example the WSRM configuration I use for my SharePoint test environment doesn’t require the Windows Internal Database.
WSRM_W2012_R2_SETUP_01

 

3. On the server B you will need to copy the C:\Windows\System32\Windows System Resource Manager folder from server A.
WSRM_W2012_R2_SETUP_02

 

4. On the server B you will need to copy C:\Windows\System32\wsrm.exe and C:\Windows\System32\WSRM.msc from server A.
WSRM_W2012_R2_SETUP_03

 

5. Import on the server B the [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\WSRM] registry exported from server A.
WSRM_W2012_R2_SETUP_04

 

6. Import on the server B the [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WSRM] registry exported from server A.
WSRM_W2012_R2_SETUP_05

 

7. Import on the server B the [HKEY_CLASSES_ROOT\AppID\{0643C58D-5861-4F0C-AE82-FC867CCEDD7A}] registry exported from server A.
WSRM_W2012_R2_SETUP_06

 

8. Import on the server B the [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\FX:{585cee48-ce61-4a2c-a3b1-2ab794b6e311}] registry exported from server A.
WSRM_W2012_R2_SETUP_07

 

9. Import on the server B the [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\FX:{723e46e7-fd90-43bb-a909-64ef13d744e0}] registry exported from server A.
WSRM_W2012_R2_SETUP_08

 

10. Import on the server B the [HKEY_CLASSES_ROOT\CLSID\{E8BCFFAC-B864-4574-B2E8-F1FB21DFDC18}] registry exported from server A.
WSRM_W2012_R2_SETUP_09

 

11. Create  a new String Value registry in [HKEY_CLASSES_ROOT\Local Settings\MuiCache\XXXX\52C64B7E] Value name: @%SystemRoot%\system32\wsrm.exe,-110
Value data: Assigns computer resources to multiple applications running on Windows Server. If this service is stopped or disabled, no management will occur, no accounting data will be collected, and the administrator will not be able to use command-line controls to administer Windows System Resource Manager.
WSRM_W2012_R2_SETUP_10

 

12. Restart your server.

At this point we finished to manually deploy the WSRM on Windows Server 2012 R2.WSRM_W2012_R2_SETUP_11

 

Please keep in mind the existing WSRM.EXE denies all the MMC connections. Despite this limitation the WSRM process is running well – is applying the resource allocation policy as it was defined on the Server A.
WSRM_W2012_R2_SETUP_12
Connecting to WSRM on the selected computer is not supported because its version is not compatible with your installation.

 

Yes, I know is frustrating to not be able to use the MMC console to control the WSRM directly on Windows Server 2012 R2, but keep in mind this is a minor inconvenience for a heavy WSRM user. The solution is simple – always have a Windows Server 2012 machine where WSRM is installed. On that machine define the Resource Allocation Policies as you need, export the configuration settings (please make sure you export everything – select all the check boxes), on the R2 server stop the WSRM windows service, copy the WSRM export configuration files to C:\Windows\System32\Windows System Resource Manager\data and after that restart the WSRM service.

 

8 thoughts on “Windows System Resource Manager and Windows Server 2012 R2”

  1. Hi Viorel,

    Thanks for sharing this information. In addition to the registry keys mentioned above, you can export the following:

    WSRM Application Event descriptions:
    HKLM\SYSTEM\CurrentControlSet\Services\EventLog\Application\WSRM

    WSRM Performance Counters:
    HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\_V2Providers\{44c53164-cd4f-435b-a098-f693fbd2b43a}

  2. Somehow, all the configuration files in C:\Windows\System32\Windows System Resource Manager\data gets overwrite once WSRM.exe is started

Leave a Reply