タスクスケジューラの「ユーザーがログオンしているかどうかに関わらず実行する」モードに関して

井上 陽介 60 評価のポイント
2024-02-09T01:53:57.4466667+00:00

現在、Visual Studioの .NETを使用してexcelのマクロを自動で実行するアプリケーションを作成し、それをタスクスケジューラでユーザーがログインしていない状態でも毎日指定の時刻に実行しようとしています。 現状、実行ユーザーを管理者権限のあるユーザーにすれば、ユーザーがログインしていない状態でも実行されるのですが、標準ユーザーにすると、以下のようなエラーが表示されます。 Description: The process was terminated due to an unhandled exception. Exception Info: System.UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005 アクセスが拒否されました。 (0x80070005 (E_ACCESSDENIED)). .NET側ではCOM参照でエクセルを実行しており、マクロの実行の前のエクセルの起動プロセスでエラーとなっているようです。 Application xlApp = new Microsoft.Office.Interop.Excel.Application(); 試したケースは以下になります 管理者権限ユーザー + ユーザーがログオンしている時に実行する OK 管理者権限ユーザー + ユーザーがログオンしているかどうかにかかわらず実行する OK 標準ユーザー + ユーザーがログオンしている時に実行する OK 標準ユーザー + ユーザーがログオンしているかどうかにかかわらず実行する NG ユーザーがログオンしている時に実行するモードとユーザーがログオンしているかどうかにかかわらず実行するモードでCOMへのアクセス権限に差異があるということでしょうか・・・ 標準ユーザー + ユーザーがログオンしているかどうかにかかわらず実行するケースで実行できるようにしたいのですが、どなたか回避策、原因などわかる方いらっしゃいましたらご回答いただけますと幸いです。。

.NET
.NET
.NET ソフトウェア フレームワークに基づく Microsoft テクノロジ。
35 件の質問
0 件のコメント コメントはありません
{count} 件の投票

承認済みの回答
  1. Hebikuzure aka Murachi Akira 4,361 評価のポイント MVP
    2024-02-12T09:40:59.5466667+00:00

    Microsoft コミュニティの以下のスレッドでも回答していますが、

    「ユーザーがログオンしているかどうかにかかわらず実行する」での Office のオートメーション操作は「サーバーサイド オートメーション」の該当するので、正常な動作が保証されません。

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Raina Zhao - MSFT 1,870 評価のポイント Microsoft ベンダー
    2024-02-12T08:07:00.01+00:00

    井上 陽介さん、こんにちは。フォーラムオペレーターのRainaです。
    Microsoft Q&A フォーラムにご投稿くださいましてありがとうございます。

    標準ユーザー+ユーザーがログインしていない状態でアプリケーションを実行する場合は、ExcelのCOM オブジェクトを操作するために必要なアクセス許可が不足している可能性があります。これは、COM オブジェクトが現在のユーザーのプロファイルと環境に依存することが多く、非対話型セッションでは使用できない可能性があるためです。

    1. タスクを実行する標準ユーザーが、Excel またはその他の必要なリソース (Excel のインストール ディレクトリとそこに含まれるファイルおよびフォルダーに対する読み取りおよび実行のアクセス許可など) を操作するために必要なアクセス許可があることを確認します。
    2. このタスク専用のサービスアカウントを作成し、必要なリソースにアクセスできることを確認します。次に、タスク スケジューラでアプリケーションを構成して、このサービス アカウントで実行するように指定します。

    どうぞよろしくお願いします。

    ---参考になった投稿には「回答を承認する」と投票をご設定ください。さらに質問がある場合は、「コメント」を追加してください。 注意:Q&Aからメール通知を受け取りたい場合には、ドキュメントの手順に基づいて、メール通知を有効にしてください。 Regards, Raina

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません