none
Changing default setting of "render print jobs on client computers" RRS feed

  • Question

  • How do you change default setting of "render print jobs on client computers" to off? I do not want it automatically checked. I have about 100 printers I'm installing and do not want to into each printer to uncheck something that (IMHO) should already be unchecked by default. This is on Server 2008 R2 with print services.
    Monday, August 9, 2010 8:22 PM

Answers

  • This is a client policy setting which will force Vista and Windows 7 clients to send EMF to the server.  Setting this on the print server will have no affect on printers shared from the server.    You can verify the datatype by pausing the print queue, then opening the properties of the print job.  XP clients will be sending EMF, Vista and Win7 you will see raw when client rendering is enabled, EMF when disabled. 

       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

    When you add a new printer you will need to set this.  There is not a way to change the default setting.


    Alan Morris Windows Printing Team; Search the Microsoft Knowledge Base here: http://support.microsoft.com/search/Default.aspx?adv=1

    Tuesday, August 10, 2010 7:05 PM
    Answerer
  • Hi Frank

    When using powershell to pull this data, you have to call get-printer with the -full flag

    get-printer -full|fl

    Then you can see the RenderingMode value

    RenderingMode                : CSR
    KeepPrintedJobs              : False
    Priority                     : 1


    Alan Morris formerly with Windows Printing Team

    Friday, March 23, 2018 12:56 PM
    Answerer

All replies

  • This setting will impact only Vista and greater clients.  XP clients are sending EMF data to the print server.  This setting is not exposed to any public script tools.
    Alan Morris Windows Printing Team; Search the Microsoft Knowledge Base here: http://support.microsoft.com/search/Default.aspx?adv=1
    Monday, August 9, 2010 9:02 PM
    Answerer
  • You can use Group Policy to always render the print jobs on the server and not on the clients?
    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 a 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\<printservername>\Providers.  Client Side Rendering defines a unique "port monitor" for each shared printer connection on the client computer.

    Does this answer your question?
    Tuesday, August 10, 2010 1:11 PM
  • I do have that policy set. The problem is when I create a printer I want that box unchecked by default. Where can I find the setting that sets the check box to ON so that I can set it to OFF.

    I may just have to live with it.

    Tuesday, August 10, 2010 2:56 PM
  • Set it off by default? Think that the answer of Alan would come into play then... sorry.

    Tuesday, August 10, 2010 5:57 PM
  • This is a client policy setting which will force Vista and Windows 7 clients to send EMF to the server.  Setting this on the print server will have no affect on printers shared from the server.    You can verify the datatype by pausing the print queue, then opening the properties of the print job.  XP clients will be sending EMF, Vista and Win7 you will see raw when client rendering is enabled, EMF when disabled. 

       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

    When you add a new printer you will need to set this.  There is not a way to change the default setting.


    Alan Morris Windows Printing Team; Search the Microsoft Knowledge Base here: http://support.microsoft.com/search/Default.aspx?adv=1

    Tuesday, August 10, 2010 7:05 PM
    Answerer
  • Thanks. Until then I'll just uncheck it manually.
    Monday, August 16, 2010 5:29 PM
  • I'm working on a PowerShell script that I may use to identify printers with the 'Render on client workstation' turned on as it can cause issues with the software the company I work for produces. I had no idea where to find this feature so your comment has been most useful.

    Thanks.

    Wednesday, April 18, 2012 6:12 PM
  • Hi Tony,

    I had some time to spare this evening so here are two lines that can help you when writing your script:
    # For setting the configuration so that nothing is queued locally.
    Get-WMIObject -Class Win32_Printer | Set-WmiInstance -Arguments @{Queued = $False }

    # For setting the configuration so that everything is send to the printer directly.
    Get-WMIObject -Class Win32_Printer | Set-WmiInstance -Arguments @{Direct = $True }

    I believe that both settings combined will accomplish your goal and I hope you find them useful :-)

    A bit more information can be found here: http://msdn.microsoft.com/en-us/library/windows/desktop/aa394363(v=vs.85).aspx

    Wednesday, April 18, 2012 7:23 PM
  • I am a bit confused i want it disabled for my terminal servers. When the "Always render print jobs on the server" is enabled does it then create the directories with the server names or is that when "Always render print jobs on the server" is disabled?

    Saturday, September 29, 2012 6:06 AM
  • In your case the terminal servers are the clients.  There is no "render print jobs on the server" setting.  However that would be the result of disabling "render print jobs on client.  I'll confirm if the directories are written when I return from vacation.


    Alan Morris Windows Printing Team

    Sunday, September 30, 2012 6:41 AM
    Answerer
  • Well i have used group policy on the terminal servers "Always render print jobs on the server" if that is correct thing to do? I assumed that means let the print server render the job? The registry key ForceCSREMFDespooling is set to 1 on the terminal servers
    Sunday, September 30, 2012 9:59 PM
  • Totally forgot about that policy.  But that does answer your question previously.  Offline printing is still supported so I'd expect the "server" directory creation.

    From the policy help:

    Note: This policy does not determine whether offline printing will be available to the client. The client print spooler can always queue print jobs when not connected to the print server. Upon reconnecting to the server, the client will submit any pending print jobs.


    Alan Morris Windows Printing Team

    Monday, October 1, 2012 4:59 PM
    Answerer
  • you can do via powershell 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}


    EverydayLearner

    Wednesday, August 2, 2017 2:39 PM
  • ...and for pre-W2K12 Print Servers, you can use this one:

    Disable:

    (Get-WmiObject -class win32_printer) | %{printui /Xs /n $_.Name ClientSideRender disabled}

    Enable:

    (Get-WmiObject -class win32_printer) | %{printui /Xs /n $_.Name ClientSideRender enabled}
    


    JR


    • Edited by John Ranger Wednesday, August 23, 2017 7:42 PM
    Wednesday, August 23, 2017 7:41 PM
  • you can do via powershell 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}


    EverydayLearner

    I'm trying to see first which printer has it enable. When using Get-Printer, there are no ClientSideRender that show in the result.

    Are you sure it's not "RenderingMode"

    • Edited by fr4nk1985 Thursday, March 22, 2018 12:12 PM update
    Thursday, March 22, 2018 12:12 PM
  • Hi Frank

    When using powershell to pull this data, you have to call get-printer with the -full flag

    get-printer -full|fl

    Then you can see the RenderingMode value

    RenderingMode                : CSR
    KeepPrintedJobs              : False
    Priority                     : 1


    Alan Morris formerly with Windows Printing Team

    Friday, March 23, 2018 12:56 PM
    Answerer