Windows タスク スケジューラをラップする David Hall の TaskScheduler Nuget パッケージのバージョン 2.5.20 を使用する次のコードがあります。特定のフォルダーからすべてのタスクを取得しようとしていますが、この質問については、次のコードを見てみましょう。
using (TaskService ts = new TaskService(_ServerName, _TaskSchedulerUsername, _DomainName, _TaskSchedulerPassword)) {
var folder = ts.GetFolder(TASK_FOLDER_NAME);
}
およびは_TaskSchedulerUsername
、_TaskSchedulerPassword
管理者権限を持つ有効なローカル アカウントです。これらの資格情報を使用して Windows タスク スケジューラを開き、テストとしてタスクを手動で作成しましたが、問題なく実行できました。
_ServerName
と_DomainName
同じ、ローカル マシンです。
このコードはそのままの状態で動作していましたが、現在、テスト サーバー (Windows サーバー 2003 を実行している) で問題なく実行されています。また、実稼働の Windows 2012 Server ボックスでも実行されます。私の開発ボックス (Windows 10 を実行) でUnauthorizedAccessException
、新しい TaskService インスタンスをインスタンス化しようとすると、次のようになります。
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
スタック トレースはあまり役に立ちません。
at Microsoft.Win32.TaskScheduler.V2Interop.TaskSchedulerClass.Connect(Object serverName, Object user, Object domain, Object password)
at Microsoft.Win32.TaskScheduler.TaskService.Connect()
at Microsoft.Win32.TaskScheduler.TaskService.EndInit()
at Microsoft.Win32.TaskScheduler.TaskService..ctor(String targetServer, String userName, String accountDomain, String password, Boolean forceV1)
at Test.TaskSchedulerServices.GetTaskSchedules() in C:\Projects\LE\dev\Test\Shared\Services\TaskSchedulerServices.svc.cs:line 54
これが私の開発ボックスで実行されない理由と、それに対して何をすべきかについてのアイデアはありますか?