簡體   English   中英

在SQL Server代理程序下使用xp_cmdshell執行時,控制台應用程序不打印

[英]Console app doesn't print when executing with xp_cmdshell under sql server agent proxy

每當將新行插入數據庫表時,我都需要自動將ssrs報告打印到網絡上的特定打印機。 數據庫表上有一個觸發器,該觸發器使用xp_cmdshell調用控制台應用程序,該應用程序呈現和打印報告。 當我從命令提示符下執行控制台應用程序時,它將起作用。 另外,當我將sql server的運行帳戶更改為管理員時,xp_cmdshell會按預期工作,並打印報告。 但是,我不希望sql server以管理員身份運行,所以我使用sp_xp_cmdshell_proxy_account設置了代理帳戶。 我使用管理員作為SQL Server執行xp_cmdshell的帳戶,並將SQL Server設置為作為本地系統運行。 但是,當我使用不是sysadmin的帳戶登錄SQL Server並使用xp_cmdshell執行控制台應用程序時,控制台應用程序會生成以下異常:

RPC服務器不可用-來源:System.Drawing-堆棧跟蹤:位於System.Windows.Forms.PrintControllerWithStatusDialog.OnStartPrint(PrintDocument文檔,PrintEventArgs e)處,位於System.Drawing.Printing.StandardPrintController.OnStartPrint(PrintDocument文檔,PrintEventArgs e)處System.Drawing.Printing.PrintController.Print(PrintDocument文檔)位於System.Drawing.Printing.PrintDocument.Print()位於PrintQCChecklist.Program.Main(String [] args)

然后,我用xp_cmdshell調用whoami.exe,它返回“ administrator”。 為什么在以admin身份運行sql server時會打印文檔,但是以admin身份在代理下運行時會崩潰? (請不要因為使用xp_cmdshell而煩惱。我知道安全隱患。謝謝。)

您是否考慮過將SSRS報告發布到網絡共享,並讓打印機程序提取報告,打印報告並進行存檔? 我曾經使用廉價的第三方打印工具做類似的事情-由供應商支持,而且-在我看來-更清潔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM