为什么 Windows 2008 任务计划程序不运行我的批处理文件?

为什么 Windows 2008 任务计划程序不运行我的批处理文件?

我对 Windows 2003 计划任务非常熟练。一切都很顺利。但 2008 任务计划程序似乎并非如此。我需要它运行一个批处理文件,该文件调用 osql.exe,然后将新创建的文件复制到网络共享。因此,任务需要存储密码,以便可以访问远程资源。所以我让它保存密码。我还进入了本地安全策略,并将用户添加到“任务要求用户帐户具有作为批处理作业登录”权限。如果我这样做:

runas /user:mydomain\myser cmd

然后运行批处理文件,它每次都能正常工作。如果我尝试从 GUI 运行它,它不会运行,即使状态列中显示“正在运行”。我使用的用户帐户是域用户,仅此而已。对于操作选项卡,我让程序在批处理文件所在的目录中启动。

有什么想法吗?还有人遇到这个问题吗?

答案1

尝试以用户身份进入服务器并运行批处理文件。然后您可能会看到错误。

我遇到了类似的问题,批处理文件正常运行,但 08 R2 任务计划程序却无法运行。如果“仅在用户登录时运行”,它会运行,但如果“无论用户是否登录都运行”,它就不会运行。

原来有东西试图通过驱动器号访问驱动器。我不确定这是直接编程的还是 08 试图变聪明并将 UNC 路径转换为映射驱动器。但我的程序 ini 文件只有 UNC 路径。显然,当用户未登录时,驱动器号不会被映射。

我最终不得不使用凭证在批处理文件中映射驱动器(它不会通过)。然后它就起作用了。

这对您来说可能是也可能不是类似的问题。

答案2

确保运行任务的用户有权访问批处理文件和任何网络共享。然后选择“无论用户是否登录都运行”,并在“常规”选项卡上选中“以最高权限运行”复选框。

答案3

开始-管理工具-本地安全策略-本地策略-安全选项-“网络访问:不允许存储网络身份验证的密码和凭据”-默认禁用,切换到启用。

答案4

在您的 exe 目录中创建一个 .bat 文件。在第一行中更改为您的 exe 的目录。在第二行中,像这样调用您的 exe:

推送“%〜dp0”

你的Exe

在任务计划程序中不要调用你的 exe,而是调用你的 bat 文件

相关内容