「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
タスク = タスク・スケジューラ = Windowsサービスのため
「タスク・スケジューラもWindowsサービス」です。
Windowsサービス全般のトラブルシュートについて説明します。
サービス・タスク系の実行アカウントがデバッグ時と異なり、トラブる。
UACの問題で動かず、トラブる。
タスク スケジューラのセキュリティ コンテキストに対して Administrators グループを使用してタスクが登録されている場合、
タスクを実行するには、[最上位の特権で実行する] チェック ボックスがオンになっていることも確認する必要があります。
WindowsのUAC機能を有効にしていると,ビルトインAdministratorを除く,すべての
AdministratorsグループのOSユーザーは,Administrators権限が無効な状態で動作します。
JP1/AJS3では,Administrators権限を必要とするジョブ※が実行できなくなる場合があります。
・・・
「UAC機能有効時にAdministrators権限でジョブを実行するための設定」を有効
にすることによって,UAC機能が有効の場合でもAdministratorsグループの
OSユーザーでAdministrators権限が必要なジョブを実行できます。
ネットワーク経由で、ファイル共有やプリンタにアクセスする場合。
Windowsサービスやタスク スケジューラで帳票ツールを使用しないで印刷を行う推奨された方式はない。
帳票ツールが出力するレベルを求めると難易度が高い。
また、帳票定義もないので開発・保守も難しくなる。
これが推奨だが、要件によってはオーバースペックで、費用もかかってくる。
一番安い Active Reportsで、開発者ライセンス=1、サーバライセンス=1 で20万円。
#カッチリしていない帳票→レポートなら、.NET同梱のReportViewerも使用できる。
Windowsサービスやタスク スケジューラからの
UIを伴うWindowsアプリケーションの起動は推奨されない。
以下のフォーラムのスレッドでは、非対話型プロセスで偽装ユーザを
対話ウインドウステーションに追加する方法を説明している。
バックグラウンドからのUIオートメーションはサポートされない。
従って、以下のように設定をして、フォアグラウンドで実行できるようにする。
参考:
ユーザ・プロファイルが無い場合にエラーとなるようなAPIは使用する事ができません。
この場合、必要に応じてユーザ・プロファイルをロードする必要があるようです。
以下の様な処理が該当します。
ネットワーク ドライブの接続および切断を例にとると、
例えば、net use(WNetAddConnection?)
を使用してネットワーク・アクセスをすると、
Windowsの
といったデバイスへのマッピングを覚えます。
しかし、これは、情報をプロファイルに覚えるので、
対話型ユーザでログオンしている必要があるようです。
Windowsサービスやタスク スケジューラの処理が、
ユーザ・プロファイルが存在しない実行カウントのコンテキスト上で実行される場合、
必要に応じてユーザ・プロファイルをロードします。詳しくはコチラをご参照下さい。
Office オートメーションをタスクスケジューラから実行しようとした場合に、
の問題に合致するケースがあり得るので注意する必要があります。
ので、標準入出力が用意されます。