[Solved] How to Disable or Enable Client Side Rendering (CSR) using CMD, PS and GPO

Client-side rendering is enabled for all printer drivers by default. Most printer drivers will not experience any problems with this feature enabled. If the printer driver encounters a problem, however, you can disable the client-side rendering feature and the printer driver will render the print job on the print server like with previous versions of the Windows operating system. Client-side rendering feature can be disable using command prompt to set EMFDespoolingSetting value of the print queue to 1. System administrators can also disable client-side rendering by using the Always render print jobs on the server group policy.

Enable Client Side Rendering Printing
Enable Client Side Rendering Printing

Content Summary

Using Command Prompt (CMD)
Using PowerShell (Ps)
Using Group Policy (GPO)

In Windows 7 and later versions of Windows, print jobs that are sent to a print server are rendered on the client by default. Client-side rendering of a print jobs can be configured for each printer by setting the following values in pValueName.

EMFDespoolingSetting | REG_DWORD: A value of 0, or if this value is not present in the registry, enables the default client-side rendering of print jobs. A value of 1 disables client-side rendering of print jobs. Beginning with Windows 8, client-side rendering is automatically disabled if the EMFDespoolingSetting value is not present in the registry and client machine profile is Mobile platform.

ForceClientSideRendering | REG_DWORD: A value of 0, or if this value is not present in the registry, causes the print jobs to be rendered on the client. If a print job cannot be rendered on the client, it will be rendered on the server. If a print job cannot be rendered on the server, it will fail. A value of 1 will render print jobs on the client. If a print job cannot be rendered on the client, it will fail.

Using Command Prompt (CMD)

Enable Client Side Rendering for a printer: printui /Xs /n "printer" ClientSideRender enabled
Disable Client Side Rendering for a printer: printui /Xs /n "printer" ClientSideRender disabled

Using PowerShell (Ps)

For Windows 2012 R2 Print Servers:
Disable for all printers: Get-Printer | foreach {printui /Xs /n $_.Name ClientSideRender disabled}
Enable for all printers: Get-Printer | foreach {printui /Xs /n $_.Name ClientSideRender enabled}
For prior Windows 2012 R2 Print Servers:
Disable: (Get-WmiObject -class win32_printer) | %{printui /Xs /n $_.Name ClientSideRender disabled}
Enable: (Get-WmiObject -class win32_printer) | %{printui /Xs /n $_.Name ClientSideRender enabled}

Using Group Policy (GPO)

Computer Configuration\Administrative Templates\Printers\Always render print jobs on the server

This policy will change the ForceCSREMFDespooling value in the registry (HKLM\Software\Policies\Microsoft\Windows NT\Printers) to 1.

When Windows Vista or Windows Server 2008 client connects to a shared printer, a new subkey with the name of the print server is created in the following registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider\Servers.

For each print server that a client has connected to, a new folder is created in the following folder, with the name of the print server: %systemroot%\System32\spool\SERVERS. This new folder is used on the client to spool the print jobs destined for that print server.

The per-server path for the spool folder is specified in the DefaultSpoolDirectory value in the following registry key for each print server that the client has connected to: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider\Servers\\Providers. Client Side Rendering defines a unique “port monitor” for each shared printer connection on the client computer.

Source:
Microsoft Dev Center > Known Issues with Client-Side Rendering
Microsoft Dev Center > SetPrinterData function
Microsoft Technet > Changing default setting of “render print jobs on client computers”