有没有办法将计划任务从 Windows 2003 (.job) 导入到 Windows 2008 (.xml)?

有没有办法将计划任务从 Windows 2003 (.job) 导入到 Windows 2008 (.xml)?

我有一些作业需要从旧生产服务器(Windows 2003 服务器标准版)移动到新机器(Windows 2008 服务器标准版),但新服务器无法读取旧的 .job 格式,而且导入向导只能从 .xml 作业文件(相同版本)导入。显然我不想手动重建所有作业,但找不到可以让这个过程变得稍微简单的工具。我不相信微软会提供这种工具,我以前的经历太糟糕了(DTS -> SSIS)。有什么想法吗?

提前致谢。

答案1

看起来他们正在这里讨论这个问题:http://social.technet.microsoft.com/Forums/en-US/itprovistamigration/thread/76b6276b-49f2-41e2-b4ea-f537e0eb88a8

目前似乎没有批准的方法可以做到这一点。

然而该论坛上有一位用户发布了这样的帖子:

如果您从 vista/2008 服务器 maching 运行 schtasks,则可以将 xp/2003 schtasks 导出到 xml。schtasks /query /s xpmachine /tn taskname /XML > taskname.xml 然后您可以导入它。虽然不完美,但可以节省时间。我使用 /fo 表导出了任务,将其打开到 excel 中删除了不需要的列,并创建了一个批处理文件来转储 xml,然后 /create /xml xmlfile.xml 将 xml 导入到新服务器。希望这对您有所帮助。

因此,这似乎是可能的,但需要一些技巧。

我自己尝试了一下,但 Win2008 一直出现拒绝访问错误。尽管我是具有所有权限的网络管理员。也许其他人可以尝试一下?

编辑解决方案:

您的作业文件可能位于 c:\windows\tasks,但在 Vista 下,xml 文件存在于一个新位置。(在 c:\windows\system32\tasks 下)如果可能,请尝试在旧机器上查找该位置。

然而,如果您无法轻松找到原始机器,还有一种方法。

  • 您将需要 XP 机器上的 2 个文件 (Schtasks.exe 和 Schedsvc.dll),它们都位于 Windows\System32 文件夹中,将它们复制到 USB,这就是您从 XP 所需要的全部内容。
  • 现在在您的 Vista 机器上。将它们放在 Vista 机器上的各自目录中(假设您创建一个名为 c:\sch 的目录并将这 2 个文件放在其中)不要覆盖 c:\windows\system32 中的 Vista 文件。
  • 重命名您的作业文件 Test1.job、Test2.job、Test3.job、Test4.job 并将其复制到 c:\windows\tasks
  • 打开命令提示符(开始程序、附件,右键单击命令提示符并选择以管理员身份运行)
  • 现在触摸新的.job 文件以使 vistas 调度程序接受参数。
  • 在命令提示符中
    输入 cd目录:\sch然后输入(对于我们的例子)
  • 现在对于每种工作类型 schtasks /change /TN "Test1" /RU 特里 /RP 特里 (在我们的示例中,将 Test1 更改为 Test2、Test3、Test4)/RP 和 /RU 值必须更改,即用户名和密码(RP 为密码,RU 为用户)
  • 对于每个作业,您应该收到消息“成功:计划任务“Test1”的参数已更改”。

完成后关闭命令提示符。从那里 Windows 调度程序现在知道这些,并且您可以使用 Windows Gui 来更新它们的名称以及它们以谁的身份运行。

我亲自尝试过,确实有效。编写脚本只需要多花一点功夫。你只需要将 xp 文件留在 vista 机器上。然后你也可以通过脚本将它们导出为 XML。

关联:来自专家交流

答案2

我找到了另一种对我来说更简单的方法;它需要更多点击,但实际思考更少。您必须能够从 Windows Server 2008 计算机“连接”到旧的 Windows Server 2003 计算机。

在 Win2k8 框中,打开任务计划程序(从“管理工具”菜单,而不是服务器管理器)。单击“任务计划程序(本地)”节点,然后在操作中,您可以选择“连接到另一台计算机”;连接到您的 Win2k3 机器。

现在,当您单击“任务计划程序库”时,您将看到所有 Win2k3 任务。此时,您可以右键单击所需的任务并选择“导出...”。您现在有一个 .xml 文件,您可以直接将其导入 Win2k8 任务计划程序!

答案3

虽然上述描述手动过程的答案对我来说也很有用,但我想要一种更简单的方法,并提出了以下方法:http://briandunnington.github.io/migrate-scheduled-jobs.html

本质上,您将 .job 文件复制到 c:\windows\tasks,然后运行脚本(提供用户名/密码)并且您的作业会自动转换 - 无需复制旧的 dll 或重命名等。

相关内容