Failure on part 2 of PDF Enable for Web Reports

I was just writing up a question to post and I figured out the answer just before submitting. Since this could happen to someone else, I decided I would keep the question in place and then put the solution.

When deploying “BES Web Reports: Enable PDF Reports - Part 2/2” the action script runs the command rundll32 printui.dll,PrintUIEntry /if /b “BES Web Reports Printer” /f %windir%\inf\ntprint.inf /r “G:\Program Files (x86)\BigFix Enterprise\BES Server\BESReportsData\ArchiveData__pdf\” /m “Xerox Phaser 6180MFP-D PS” and hangs here.

When I try to manually execute the command, a dialog with the message “the arguments are invalid” appears. From the reading I have done, it seems to point to the name of the printer (/m parameter), must exist in the ntprint.inf file, which on the systems I have, it does not.

As anyone seen this issue, if so, how did you work around it?

The Web Reports server is on Windows 2008 R2

When the server was built, it was installed with IIS. Since we wanted to use port 80 for IEM Web Reports, we removed IIS. Turns out that when you do that, it does not free up port 80. There are quite a few hits on it, but basically it has something to do with HTTP.sys locking the port. The one hit we looked at was The instruction that was followed was to disable the HTTP driver and after a reboot, the port was freed. All was good.

Well not so good. When the rundll32 executes, it needs the print spooler to be running and the print spooler has a dependency on, yep you guessed it, HTTP, so the spooler would not start. So I set it to “demand” and started the print spooler. Now it seems that everything is working correctly. I did have to also run the following registry update as this did not complete as part of the fixlet. Note the HKEY_Users might be different for you depending on the id the web reports service is running as. Refer to the fixlet to help determine the source.

Windows Registry Editor Version 5.00
[HKEY_USERS\S-1-5-18\Software\Microsoft\Windows NT\CurrentVersion\Windows]
“Device”=“BES Web Reports Printer,winspool,Ne00:”
[HKEY_LOCAL _MACHINE\Software\Wow6432Node\BigFix\Enterprise Server\BESReports]

Two questions then. Was the Xerox printer selected as your “default” printer or did you maybe not have a default printer on this machine before? Driver was deleted etc. That may change the inf file.

And for the print spooler to use a web browser that seems unusual unless you have drivers that needed that functionality? Drivers/spoolers work without IIS running so that seems unusual unless one of your drivers needed it.

The fixlet relevance chose the printer driver. This is for pdf exporting, so I believe that is needed, but I did not deep dive on that. :wink:

As far as the print spooler and HTTP.sys, well that is internal to Windows. I did some testing and comparing and it seems that once you “install” IIS, this driver is installed. No idea why it does not remove when IIS is removed or why the print spooler has a dependency, but it does.

There are quite a few hits on this issue not even related to IEM.

Yes you seem right on that, hmmmm. Looks like we need to update that relevance when we extended the platforms this fixlet applied to. I’ll file a bug on that.

Oh yeah I forgot to mention that it does not work on 2012 :smile:

I’ve spent a happy afternoon trying to get PDF printing working on Win2012R2…
I’ve found the Xerox printer selected in Fixlet Part 2/2 does not exist so did that bit manually and selected an alternative PS printer
I can perform a test print once and observed the file created. When I select Export to PDF from WebReports I see a .tmp file created in the _pdf directory and the web reports log says that it’s “Waiting for printer to start…”

Try again another day!

Hi All,

Quick question, I’ve already configured the " BES Web Reports: Enable PDF Reports - Part 1/2" and heading on for Part 2/2, but the task “BES Web Reports: Enable PDF Reports - Part 2/2” is no applicable computers thats why it is grey.

What should be the possible cause? and how to solve this.

Thank you all.