ある場所から別の場所にファイルをコピーする非常に単純なプログラムがあり、Windowsスケジューラを使用して毎日実行するようにスケジュールしました。
- ただし、スケジューラーがそれを起動すると、失敗してSystem.UnauthorizedAccessExceptionをログに記録します。パス''へのアクセスは拒否されます。
- プログラムをダブルクリックして起動すると、上記と同じエラーで失敗します。
- ただし、[名前を付けて実行]を実行してプログラムを手動で実行し、Windowsスケジューラで使用したものと同じクレデンシャルを使用すると、正常に実行されます。
3つのケースすべてで使用されるクレデンシャルは、システムへのログインに使用するものです。
誰かがこれが起こっている理由を理解するのを手伝ってくれませんか?
ありがとうございました
アップデート
この動作の理由が見つからなかったため、次の回避策を実装しました-
- ファイルをコピーするプログラムを作成しました。
- ランチャープログラムを作成しました。このプログラムは、ユーザーになりすましてファイルコピープログラムを起動しました。
- Windowsスケジューラでランチャープログラムをスケジュールしました。
http://www.codeproject.com/KB/cs/Execute_Command_in_CSharp.aspxの情報を使用して偽装しました。