【问题标题】:Windows scheduler isn't executing the batch script,but script works fine from command lineWindows 调度程序未执行批处理脚本,但脚本在命令行中运行良好
【发布时间】:2017-07-12 12:07:52
【问题描述】:

我想创建以今天日期作为文件夹名称的文件夹。然后,我想将数据从远程机器移动到新创建的文件夹。

我写了一个批处理脚本,看起来像

我的批处理脚本。
名称:run.bat

::@ECHO off
SET CurrentDate= %date:~-4,4%_%date:~-10,2%_%date:~7,2%
SET CurrentDate=%CurrentDate: =%
"%SystemRoot%\System32\cmd.exe"  /c mkdir  "Z:\some_name_commercial\%CurrentDate%"
C:\Users\H213561\Documents\pscp.exe -l username -pw **** username@mftp.somename.com:/Distribution/somename_corp/*  "Z:\some_name_commercial\%CurrentDate%"

脚本运行良好,当我从命令行运行上述脚本时,它会执行我打算执行的操作。但我无法将 Windows 调度程序中的脚本安排为日常工作。

我试过了!!!

我认为问题出在 mkdir 命令上,我尝试给出完整路径 就像没有运气一样。

"%SystemRoot%\System32\cmd.exe"  /c mkdir  "Z:\some_name_commercial\%CurrentDate%"

P.S : Z:\ 是挂载的 NAS(网络驱动器)

更新:

当我的目标位置不是网络驱动器时,我可以正常工作。 但是如果是网络驱动器,任务调度程序不起作用。

【问题讨论】:

  • 我认为你只需要mkdir 命令,像这样:mkdir "Z:\some_name_commercial\%CurrentDate%"
  • @SteveFest :这在 Windows 调度程序中不起作用。我已经试过了。
  • 这很奇怪......
  • 如果我通过命令提示符执行 bat 文件,你的建议会起作用

标签: windows batch-file scheduled-tasks mkdir


【解决方案1】:

计划任务可以根据您的设置在“不同的会话”中运行。

例如,如果您有“仅在用户登录时运行”

然后,您可以看到计划任务将在与用户相同的会话中运行。如果用户未登录,该任务将不会运行。该任务会看到用户的所有驱动器映射

如果设置为“无论用户是否登录都运行”,

然后,进程在另一个会话中运行,即所谓的 - session 0

在这种模式下,任务看不到用户的驱动器映射。

(1) 选项 1 一种方法是在任务中显式映射驱动器

例如。

net use Z: /delete
net use Z: <share name>

那么你剩下的任务就可以和 Z 一起工作了:

(2) 选项 2

始终使用完全限定的路径,即\\server name\share name\folder name

在大多数情况下,无论用户是否登录,您都希望任务运行。在这种情况下,你不应该检查这个:

【讨论】:

    【解决方案2】:

    这适用于 Windows Vista 及更高版本。 Vista 对计划任务进行了重大安全更新。目的是防止病毒在用户未登录时通过网络传播。

    这可能是您的计划任务设置有问题。假设 Z: 是一个映射的网络驱动器,您的计划任务可能看不到映射。驱动器映射属于用户,因此它们仅在创建映射的用户登录时出现。

    如果您在任务设置中选择以最高权限运行,则任务计划程序使用内置管理员帐户。此帐户是具有单独安全上下文的单独帐户。此选项不会为选择运行任务的帐户分配更高的管理员权限 - 它使用单独的帐户。内置管理员帐户不会有用户的驱动器映射。

    在没有任何人登录的情况下运行时,任务管理器使用与您作为用户看到的不同的用户身份验证过程。这称为 S4U 身份验证,它拒绝访问网络资源,因此在这种情况下您也不会看到映射的驱动器。而且由于网络资源根本不可用,因此您也不能使用 UNC。所以在这种情况下,它根本看不到映射的驱动器 - 甚至没有使用 UNC 而不是驱动器映射。

    让它运行的唯一方法是在启动计划任务时让用户实际登录,取消选中以最高权限运行,并将任务用户设置为以登录用户身份运行。

    https://technet.microsoft.com/en-us/library/cc722152(v=ws.11).aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      相关资源
      最近更新 更多