vbscript - 作为计划任务运行脚本时"Path not found"

标签 vbscript scheduled-tasks windows-server-2008-r2

我有一个 VBScript 脚本,当我手动运行时,它可以完美运行,但是当我将其作为计划任务运行时,Err.Description 中的错误是“找不到路径”。

  • 我已经在计划任务中设置了路径。
  • 我还在脚本本身中设置了当前工作目录。
  • 我已将计划任务设置为以我登录的用户身份以“最高权限”运行。
  • 我尝试在 filename 变量中指定完整路径(尽管该路径已从下面的示例中删除)
  • 我尝试过指定带有或不带有最终斜杠的各种路径。

(注意:下面的示例是实际脚本的子集/修改版本,以便于阅读此问题)

Set fs = CreateObject("Scripting.FileSystemObject") 
Set shell = CreateObject("WScript.Shell")
shell.CurrentDirectory = "C:\backupscompressed"
Set logfile = fs.OpenTextFile("copy files.txt", 8, True) 

Function logwrite(m) : logwrite = logfile.WriteLine(Now & " : " & m) End Function

Function copytootherserver(filename)
    On Error Resume Next
    dest = "\\172.17.201.12\Backups\Copied from Primary DB Server\"
    logwrite "Copying """ & filename & """ to """ & dest & """"
    fs.CopyFile filename, dest

    If Err.Number <> 0 Then
        logwrite "Error occured: " & Err.Description
    End If
End Function

logwrite "Beginning Script"

db1_zipfile = "db1.zip"
db2_zipfile = "db2.zip"
db3_zipfile = "db3.zip"

copytootherserver db1_zipfile
copytootherserver db2_zipfile 
copytootherserver db3_zipfile

logwrite "Ending Script"

编辑:我用 shell.Run 调用 robocopy 替换了 fs.CopyFile。当我手动运行时它有效。当我从计划任务运行时,它显示 “错误 1326 (0x0000052E) 访问目标目录\\172.17.201.12\Backups\从主数据库服务器复制\ 登录失败:未知的用户名或错误的密码。” 所以我猜计划任务没有使用其他服务器上此共享文件夹的存储凭据。那么有没有办法让它使用存储的凭据?或者我是否必须将该文件夹设置为“所有人”的完全控制权?

最佳答案

看起来,当直接运行脚本时,它能够使用目标服务器的缓存凭据,但是当通过计划任务运行时,它不会这样做,所以我通过添加目标服务器的凭据解决了问题:

控制面板->用户帐户->“管理您的网络密码

enter image description here

在目标服务器上添加适当的用户帐户后,脚本现在可以从计划任务成功运行。

(注意:这些服务器不是域的成员)

关于vbscript - 作为计划任务运行脚本时"Path not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46073618/

相关文章:

javascript - 使用 ASP 通过表单上传文件

spring - 如何从 db 加载 cron 表达式并使用 Spring 重新安排它?

windows-server-2008-r2 - netsh 设置多个托管网络

powershell - 如何修复损坏的 Powershell 安装?

windows - Windows 上的 Python 3.5 - 覆盖其他用户创建的文件 "PermissionError: [Errno 13]"

javascript - 将 jQuery 添加到 HTA 后,调用 VBScript 过程停止工作

xml - XML节点的VBScript位置,用作到另一个节点的索引

windows-7 - 通过脚本更改 Windows (7) 监视器设置的方法

java - Spring调度线程未访问数据库

c# - 使用 C# 创建计划任务(任务计划程序托管包装器)