5

PDFを印刷する非インタラクティブなプロセスを作成しようとしています。 2008(およびVista/7)。非インタラクティブなプロセス(Windowsサービス、スケジュールされたタスクなど)からWinServer 2008のPDFを印刷する

以前は、ディレクトリ内のすべてのPDFを印刷する予定のタスク(ユーザーアカウントがログオンされているかどうかに関係なく実行するように設定されています)がありました。 (別のプロセスでは、PDFがディレクトリに移動します)。実行時に、PDFを印刷するために別のプロセス(Adobe ReaderまたはFoxit Reader)が起動します。 Adobe ReaderとFoxit Readerの両方でサイレント印刷が行われるため、スケジュールされたタスクが実行されたユーザのためにすべてがデフォルトプリンタに送信されます。 UIは生成されず、すべてのファイルは問題なく印刷されます。 これは私が完全にわからないんだけど、私は、これはセッション0の分離に関係していると信じていServer 2008のにサーバープロセスは、もは​​や作品2003

に取り組みました。私はこれを証明することはできません。しかし、は、「ユーザーがログインしているときだけ実行する」と設定されている場合、プロセスはスケジュールされたタスクとして機能すると言えます。さて、これが動作している間、ユーザーは強制的にマシンにログインし、私の要求を満たしません。 (私の最初の手がかりはthis previous questionでした)

私はこれをどのように進めることができるのか判断できません。私の要求を満たす方法はありますか?

いくつかの注意事項:

私が見てきたすべてのソリューションは、ログインしているユーザーの資格情報を使用しているように見えます。上記のリンク先の質問を参照してください。リストされている解決策は、ログインしているユーザーのトークンを取得し、それを使ってプログラムを実行しているようです。 GetCurrentUserToken()プロシージャを見てください。返された値は、後でAPI呼び出しCreateProcessAsUser()で使用されます。

私の現在のプロセスは、私の知る限りではUIを生成しません。 ProcMonを使用して、リーダープロセス(AdobeまたはFoxit)が正しく印刷されているように見え、印刷ドライバ自体に問題があるように見えます。これは、print-to-fileドライバを使用しようと試みることによってバックアップされます。ファイルへの出力ドライバは、3つの目に見える手順で実行され、2番目の手順を開始せずにすべてのファイルに対して最初に完了します。では、セッション0の分離がプリンタドライバにどのような影響を与えますか?これは私には不明です。 (The best documentation I can find on the subjectは、印刷スプーラがセッション0で実行されているにもかかわらず、プリンタドライバが影響を受ける可能性があることのみを言及しています)。

プロセスに「サービスとデスクトップとの対話を許可する」チェックボックスをオンにしても、

ぼかしを誘導するテキストの壁効果に対抗するために太字のテキストが追加されました。

+0

Win2k8では、WindowsサービスでGDI +が無効になっています。私は、WindowsベースのPDFリーダーはある時点でGDI +を使用すると想定しているので、win2k8でこれを実装することはできないと思います。私はあなたがこれを解決したかどうか疑問に思います。 – yms

答えて

0

Acrobat Readerの代わりにFoxit Readerを使用してみてください。 Foxit ReaderはGUIレス/コマンドライン実行を適切にサポートしています.Windows 2008以上でも!

印刷も可能ですが、印刷ジョブを実行するたびにsession0にプリンタを追加(または確認)する必要があります。

これ以上のヘルプが必要な場合は、もう一度お問い合わせください。私はすでにFoxit Readerの助けを借りてpdfファイルを出力するタスクスケジューラで動作するpowershellスクリプトを構築しました。

関連する問題