2011-07-29 3 views
1

새 행이 데이터베이스 테이블에 삽입 될 때마다 네트워크의 특정 프린터에 ssrs 보고서를 자동으로 인쇄해야한다는 요구 사항이 있습니다. xp_cmdshell을 사용하여 보고서를 렌더링하고 인쇄하는 콘솔 응용 프로그램을 호출하는 데이터베이스 테이블에 트리거가 있습니다. 명령 프롬프트에서 콘솔 응용 프로그램을 실행하면 작동합니다. 또한 SQL Server가 관리자로 실행되는 계정을 변경하면 xp_cmdshell이 ​​예상대로 작동하고 보고서가 인쇄됩니다. 그러나 sp_xp_cmdshell_proxy_account를 사용하여 프록시 계정을 설정하기 위해 SQL Server가 관리자 권한으로 실행되는 것을 원하지 않습니다. 관리자는 SQL Server가 xp_cmdshell을 실행하고 SQL Server를 로컬 시스템으로 실행하도록 설정 한 계정으로 사용했습니다. 그러나 SQL Server에 sysadmin이 아닌 계정으로 로그인하고 xp_cmdshell을 사용하여 콘솔 응용 프로그램을 실행하면 콘솔 응용 프로그램이 다음 예외를 생성합니다.SQL Server 에이전트 프록시에서 xp_cmdshell을 실행할 때 콘솔 응용 프로그램이 인쇄되지 않습니다.

RPC 서버를 사용할 수 없습니다 - 소스 : System.Drawing - 스택 추적 : at 시스템의 System.Drawing.Printing.PrintController.Print (PrintDocument 문서)에서 System.Windows.Forms.PrintControllerWithStatusDialog.OnStartPrint (PrintDocument 문서, PrintEventArgs e)의 System.Drawing.Printing.StandardPrintController.OnStartPrint (PrintDocument 문서, PrintEventArgs e) Drawing.Printing.PrintDocument.Print() at PrintQCChecklist.Program.Main (String [] args)

그런 다음 xp_cmdshell을 사용하여 whoami.exe를 호출하고 '관리자'를 반환합니다. SQL Server가 admin으로 실행 중일 때 문서가 인쇄되는 이유는 admin으로 관리자 권한으로 실행 중일 때 충돌이 발생합니다. (xp_cmdshell을 사용하여 머리를 쓰지 마십시오. 보안 위험에 대해 알고 있습니다.) 감사합니다.

답변

0

SSRS 보고서를 네트워크 공유에 게시하고 프린터 프로그램에서 보고서를 받도록했습니다 , 인쇄 한 다음 보관하십시오. 나는 벤더가 지원하는 저렴한 제 3 자 인쇄 도구와 비슷한 작업을 해왔다.

+0

답장을 보내 주셔서 감사합니다. 나는이 시점에서 대안을 탐구하는 것에 확실히 관심이있다. 당신의 준비 시간이 지연 되었습니까? 보고서는 순간적으로 인쇄되어야합니다. 또한, 어떤 타사 인쇄 도구를 사용 했습니까? – Ryan

관련 문제