Eric Guo's

Hoping writing JS, Ruby & Rails and Go article, but fallback to DevOps note

A True Story About Upgrade Crystal Report From Windows 2003 to Windows 2008


I written a post about upgrade CR (Crystal Report) from Oracle 9i to Oracle 11gR2 one month ago, at that post, I talked about how different version of Oracle Database make Crystal Report migrate tough/broken and how I have solving those problem. After the Crystal Report Travel Card (T-Card) online this month, I also meet some problem relative with the Windows Server, which I think also very interesting and hoping you will enjoy the story.

After make sure all the T-Card printed properly in the test environment, I start install the whole MES Travel Card printing system on the production which will be used on 1/2/2012 to our production environment. There is hundreds of printer; user can use any of the printers which are near him to output the paper Travel Card in the MES system. During the UAT, user tested some T-Card to output to their printer and suddenly I found that production environment T-Card printing system can only output the T-Card in test printer.

Certainly I enable the printing system logs to trace the problem immediately and found… there is nothing wrong in the log. The printing system just block at setting printer in the log:

[00:19:05]: [L3][R0]Transacting to report printer
[00:19:05]: [L5][R0] Start Loading report template: D:\Documents\TravelCards\TC-SKU.rpt
[00:19:54]: [L5][R0] Setting report Logon
[00:19:55]: [L5][R0] Collecting report parameters
[00:19:55]: [L5][R0] Param: Lot Number found in report. Passing in value: M1202T1D1C
[00:19:55]: [L5][R0] Setting printer to: \\CVPWFSIP03\CVPPRT55

There is nothing reported after that and the program just dead like a dummy, feeling very frustrated I start to write a command line based test program – PrintingSystemTestApp.exe and hoping can found something, now I’m lucky and I got it:

So that’s the point: The printer in Windows 2008 need manually install its printer driver once before it can working properly in windows service program. A secured windows server will make printing function not work at all in production!

So I just write to the our company’s windows team to see if those manually confirm dialog can be by passed similar to UAC control (Computer Configuration -> Windows Setting -> Security Settings -> Local Policies -> Security Options -> Elevate without prompting) at Group Policy.

The answer is yes! Based on the TechNet document, here is the Group Policy access path: Local Computer Policy -> User Configuration -> Administrative Templates -> Control Panel -> Printers -> Point and Print Restriction:

After disable this feature, the production T-Card printed properly now and all user are now happy!