使用 Microsoft.Win32.TaskScheduler DLL Windows Server 2016

Using the Microsoft.Win32.TaskScheduler DLL For Windows Server 2016

多年来,我一直在 Windows Server 2008 上的任务计划程序中使用 Microsoft.Win32.TaskScheduler DLL 在 C# 中列出、显示和启动任务。我正在将服务器升级到 Windows Server 2016,并且在使用此 DLL 时遇到问题。尝试使用此代码在服务器上获取任务时:

List<TaskObject> tasks = new List<TaskObject>();
using (TaskService ts = new TaskService(servername))
{
     tasks = ts.RootFolder.AllTasks.Where(x => x.Definition.Principal.UserId != null)
             .Select(x => new TaskObject(x, servername)).ToList();
}

我收到以下错误:

The current version of the native library (1.1) does not support the original or minimum version of the "EDP Policy Manager" task

我做了一些研究,看起来 Microsoft.Win32.TaskScheduler DLL 是为 Windows Server 2008 和 Windows Server 2003 构建的。有谁知道是否有更新的 DLL 可用或修复?最后,如果没有关于 Microsoft.Win32.TaskScheduler DLL 的解决方案,有人会知道我应该考虑使用的任何类似 DLL 替代品吗?

根据TaskScheduler official GitHub repo

The managed assembly closely resembles the new object model, but allows the 1.0 (internally version 1.1) COM objects to be manipulated. It will automatically choose the most recent version of the library found on the host system (up through 1.4).

所以,支持的最高版本是1.4。看来,您应该将此 dll 的使用版本更新为 Nuget.

的最新版本

不要被包或存储库名称混淆,包内有Microsoft.Win32.TaskScheduler.dll