새 행이 데이터베이스 테이블에 삽입 될 때마다 네트워크의 특정 프린터에 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을 사용하여 머리를 쓰지 마십시오. 보안 위험에 대해 알고 있습니다.) 감사합니다.
답장을 보내 주셔서 감사합니다. 나는이 시점에서 대안을 탐구하는 것에 확실히 관심이있다. 당신의 준비 시간이 지연 되었습니까? 보고서는 순간적으로 인쇄되어야합니다. 또한, 어떤 타사 인쇄 도구를 사용 했습니까? – Ryan