我有以下代码,它使用 2.5.20 版的 David Hall 的 TaskScheduler Nuget 包,它包装了 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
关于为什么这不会在我的开发盒上运行以及如何处理的任何想法?