私はかなり複雑なツールチェーンを持っているので、問題が発生するまで長い投稿の準備をしてください:
サーバーモードで実行されているWindows 7でPDFCreatorと仮想PDF作成プリンターをサービスとして取得することができました。プロセスの次のステップは、PDF の作成後に PDFCreator が VBScript を呼び出すことです。このスクリプトは、WebService を介してサーバーに PDF をアップロードし、結果の PDF についてサーバーをポーリングします。結果の PDF がダウンロードされると、VBScript はそれを構成済みのプリンターに印刷する必要があります。
印刷のために、GhostScript へのアクセスを提供する PDFCreator の統合 COM オブジェクトを使用していました。これは、PDFCreator サービスが開始されたすべてのアカウントで、Windows XP 上で完全に機能しました。たとえば、ユーザー コンテキストが PDFCreator サービスと同じであるため、ドメイン ユーザーとして VBScript から共有プリンターにアクセスできます。
Windows 7 でも同じことを試し、以前と同じように "ローカル システム" アカウントを使用しました。その結果、wscript はタスク マネージャーに残り、決して終了しません。次に、サービスのインタラクティブ モードを有効にすると、Ghostscript が印刷先のプリンターを要求するのを見ました。VBScript 内で GS を呼び出す前に確認したとおり、プリンターは存在しますが、プリンターを選択するために開いたダイアログにプリンターが表示されているにもかかわらず、何らかの理由で GhostScript がプリンターを認識しません。
何日にもわたって検索し、サービスの専用の新しい管理者アカウントでさえ失敗しようとしても成功しなかった後、私はついにそれを機能させる方法を思いつきました。PDFCreator サービスのユーザーを「locale サービス」に変更する 最初に、PDFCreator COM オブジェクトの作成に失敗したというエラーが表示されました。「ロケールサービス」は「ロケールシステム」よりも権限が少ないため、これは理にかなっていると思いました。comexp.msc の下のアクセス権を変更し、ローカルおよびリモートの COM およびスクリプト アクセスに「ロケール サービス」権限を付与することで、この制限を回避しました。出来上がり、すべてが機能しました。
理解できないこと: アカウントの権限が「ロケール システム」より少ないにもかかわらず、「ロケール サービス」アカウントの Ghostscript がプリンタを検出できるのはなぜですか?
そして:「ロケールシステム」またはその他のユーザーアカウントを機能させるには、どのアクセス権を設定する必要がありますか?
または: これらのアカウント間の詳細な違いの包括的なリストはありますか?
どうもありがとうございました。