Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 控制台应用程序没有';在sql server代理代理下使用xp\u cmdshell执行时无法打印_Sql Server_Sql Server 2008_Proxy_Xp Cmdshell - Fatal编程技术网

Sql server 控制台应用程序没有';在sql server代理代理下使用xp\u cmdshell执行时无法打印

Sql server 控制台应用程序没有';在sql server代理代理下使用xp\u cmdshell执行时无法打印,sql-server,sql-server-2008,proxy,xp-cmdshell,Sql Server,Sql Server 2008,Proxy,Xp Cmdshell,我需要在数据库表中插入新行时自动将ssrs报告打印到网络上的特定打印机。数据库表上有一个触发器,它使用xp_cmdshell调用一个控制台应用程序来呈现和打印报告。当我从命令提示符执行控制台应用程序时,它会工作。此外,当我将sql server作为管理员运行的帐户更改为管理员时,xp_cmdshell将按预期工作,并打印报告。但是,我不希望sql server以管理员身份运行,因此我使用sp_xp_cmdshell_proxy_帐户设置了一个代理帐户。我使用administrator作为SQL

我需要在数据库表中插入新行时自动将ssrs报告打印到网络上的特定打印机。数据库表上有一个触发器,它使用xp_cmdshell调用一个控制台应用程序来呈现和打印报告。当我从命令提示符执行控制台应用程序时,它会工作。此外,当我将sql server作为管理员运行的帐户更改为管理员时,xp_cmdshell将按预期工作,并打印报告。但是,我不希望sql server以管理员身份运行,因此我使用sp_xp_cmdshell_proxy_帐户设置了一个代理帐户。我使用administrator作为SQL Server执行xp_cmdshell的帐户,并将SQL Server设置为作为本地系统运行。但是,当我使用非sysadmin帐户登录SQL Server并使用xp_cmdshell执行console应用程序时,console应用程序会生成以下异常:

RPC服务器不可用-源:System.Drawing-堆栈跟踪:在System.Drawing.Printing.StandardPrintController.OnStartPrint(PrintDocument文档,PrintEventArgs e)在System.Windows.Forms.PrintControllerWithStatusDialog.OnStartPrint(PrintDocument文档,PrintEventArgs e)在System.Drawing.Printing.PrintController.Print(PrintDocument文档)位于PrintQCChecklist.Program.Main(字符串[]args)的System.Drawing.Printing.PrintDocument.Print()处


然后,我用xp_cmdshell调用了whoami.exe,它返回“administrator”。为什么sql server以管理员身份运行时会打印文档,而在以管理员身份代理运行时会崩溃??(请不要因为使用xp_cmdshell而大骂我。我知道安全风险。谢谢。)

您是否考虑过将SSRS报告发布到网络共享,并让打印机程序提取报告,打印它,然后存档?我曾经使用廉价的第三方打印工具做过类似的事情-由供应商支持,并且-在我看来-更干净。

谢谢您的回复。我对Explorer绝对感兴趣在这一点上,您正在寻找替代方案。您的设置是否有任何时间延迟?报告或多或少需要立即打印。另外,您使用了哪种第三方打印工具?