1

C# アプリケーションを使用して、Windows タスク スケジューラで手動で作成されたスケジュールされたタスクを変更しようとしています。

ここに画像の説明を入力

次のコードを使用します。

rootFolder.RegisterTaskDefinition(taskEdit.Name, 
            taskDefinition, 6, null, null, _TASK_LOGON_TYPE.TASK_LOGON_NONE, null);

プリンシパル タスク スケジューラ フォルダーでこの操作を実行すると、私のコードは完全に機能します。しかし、サブフォルダー内のタスクを変更しようとすると、エラーが発生しました

アクセスが拒否されました。(HRESULT からの例外: 0x80070005 (E_ACCESSDENIED))

次のように、 nullの代わりにユーザー名パスワードを使用しようとする場合:

rootFolder.RegisterTaskDefinition(taskEdit.Name, taskDefinition, 6, "username", "pwd", 
                           _TASK_LOGON_TYPE.TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD, null);

以下のエラーが発生しました。

(48,4):UserId:

何か案は?本当にありがとう!

4

2 に答える 2

1

問題の解決策の 1 つは、 https://taskscheduler.codeplex.com/からダウンロードできる Task Scheduler Managed Wrapper を使用できることです。

これは、Windows タスク スケジューラで動作し、「アクセスが拒否されました」という問題も処理できる非常に強力なラッパーです。

于 2016-09-22T09:02:19.623 に答える