У меня есть следующий код, в котором используется пакет Nuget TaskScheduler Дэвида Холла версии 2.5.20, который является оболочкой планировщика заданий Windows. Я пытаюсь получить все задачи из определенной папки, но для этого вопроса давайте просто посмотрим на этот код:
using (TaskService ts = new TaskService(_ServerName, _TaskSchedulerUsername, _DomainName, _TaskSchedulerPassword)) {
var folder = ts.GetFolder(TASK_FOLDER_NAME);
}
_TaskSchedulerUsername
и _TaskSchedulerPassword
— это действующая локальная учетная запись с правами администратора; Я использовал эти учетные данные, чтобы открыть планировщик заданий Windows и вручную создать задачу в качестве теста, и смог сделать это без проблем.
_ServerName
и _DomainName
одинаковые, локальная машина.
Этот код работал как есть и в настоящее время работает без проблем на моем тестовом сервере (на котором работает Windows Server 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
Любые идеи о том, почему это не будет работать на моем dev box, и что с этим делать?