Solved

Reporting Service and shared printers

  • 1 March 2019
  • 5 replies
  • 120 views

Userlevel 2
Badge +3
We are trying to print a batch of documents with the help of the reporting service. The logfile shows :

2019-03-01 08:39:47.5227|ERROR|dev_cf_finas|115|Printer name '\\digiserver\Thinkwise_Facturen' not found in installed printers. Valid values are: Microsoft XPS Document Writer.
2019-03-01 08:39:47.5383|FATAL|dev_cf_finas|115|Something went wrong while processing this report: Printer name '\\digiserver\Thinkwise_Facturen' not found in installed printers. Valid values are: Microsoft XPS Document Writer.


We are using shared printers on a specific server. It looks like it can not find these shared printers, only locally installed printers. Is there a way to get access to the shared printers?
icon

Best answer by Anne Buit 12 March 2019, 17:16

Hi Hugo,

Executing this command in SQL Server Management Studio will list the available printers for the service account running the SQL Server Agent. This service account is probably never used to load the report.

The Windows GUI runs the report locally under the clients' Windows account. Try executing the powershell command on one of those local machines to see if the printer shows up here. Since the reports work, I suspect they do.

The Reporting Service runs the report under a specific service account. You can find this account by running services.msc on the machine running the Reporting Service.

Try to run the powershell command on the machine hosting the Reporting Service using this service account and check if the printers are installed for this service account. I suspect they are not available. Likewise, the UNC path is probably not available to this service account either.
View original

5 replies

Userlevel 6
Badge +6
Hi Hugo,

The network printer needs to be installed on the reporting service's server for Windows to load the required printer drivers.

Just go to '\\digiserver\Thinkwise_Facturen' in Windows Explorer on the server to install the printer:

Userlevel 2
Badge +3
Thanks for your answer. It already is installed, also locally. The Reporting Service however does not recognize this printer, only the Microsoft XPS Document Writer. When printing a Report from within the application/GUI I can choose any of the available shared printers.
Our service_user (the one we use for the reporting service) has been explicitly given access to this printer. All domain users also have access to this printer.

Actually I am a bit puzzled because the Reporting Service does not seem to be able to handle UNC paths as well. If we create a report from \\ip_adress\shared_location\rapport.rpt it will not be able to find the rpt. If we change this to C:\location\rapport.rpt it does find the rpt.
Userlevel 6
Badge +6
The reporting service uses regular .NET APIs to access files and printers, so it should not have any problems with UNC paths.

Do you get to see the printer when you run the Get-Printer command in a Powershell Window under the service_user's account?

Userlevel 2
Badge +3
We have done some more testing. We used the command exec xp_cmdshell 'powershell get-printer' in the management studio to test for available printers. It reported back only 1 locally installed printer, the Microsoft XPS Document Writer. So it behaves exactly the same as the reporting service does. It is independant from rights; we granted administrator rights and it still does not give back any network printers. After a hard local install the printer can be accessed without any problems.

The main question remaining: can we only use hard, locally installed printers or is it possible to use network-printers? If so, what needs to be configured to make it work? Is it something in SQL Server 2014 that needs to be done?

Thanks in advance for any answers.
Userlevel 5
Badge +2
Hi Hugo,

Executing this command in SQL Server Management Studio will list the available printers for the service account running the SQL Server Agent. This service account is probably never used to load the report.

The Windows GUI runs the report locally under the clients' Windows account. Try executing the powershell command on one of those local machines to see if the printer shows up here. Since the reports work, I suspect they do.

The Reporting Service runs the report under a specific service account. You can find this account by running services.msc on the machine running the Reporting Service.

Try to run the powershell command on the machine hosting the Reporting Service using this service account and check if the printers are installed for this service account. I suspect they are not available. Likewise, the UNC path is probably not available to this service account either.

Reply