1

新しい行がデータベース テーブルに挿入されるたびに、ssrs レポートをネットワーク上の特定のプリンターに自動的に印刷する必要があります。データベース テーブルには、xp_cmdshell を使用して、レポートをレンダリングおよび印刷するコンソール アプリケーションを呼び出すトリガーがあります。コマンドプロンプトからコンソールアプリケーションを実行すると動作します。また、SQL Server が実行するアカウントを管理者に変更すると、xp_cmdshell が期待どおりに機能し、レポートが出力されます。しかし、SQL Server を管理者として実行したくないので、sp_xp_cmdshell_proxy_account を使用してプロキシ アカウントを設定しました。SQL Server が xp_cmdshell を実行するアカウントとして管理者を使用し、SQL Server を Local System として実行するように設定しました。でも、

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 ドキュメント) で System.Drawing.Printing.PrintDocument.Print() で PrintQCChecklist.Program.Main(String[] args)

次に、xp_cmdshell を使用して whoami.exe を呼び出すと、「administrator」が返されます。SQL サーバーが管理者として実行されているときにドキュメントが印刷されるのに、管理者としてプロキシの下で実行されているとクラッシュするのはなぜですか? (xp_cmdshell を使用することで頭を悩ませないでください。セキュリティ上のリスクは承知しています。ありがとうございます。)

4

1 に答える 1

0

SSRS レポートをネットワーク共有に公開し、プリンター プログラムでレポートを取得して印刷し、アーカイブすることを考えたことはありますか? 私は安価なサードパーティの印刷ツールを使って同様のことをしていました - ベンダーによってサポートされていて、私の考えでは - クリーナーです。

于 2011-07-29T18:58:01.023 に答える