将脚本作为计划任务运行时出现“找不到路径”
Posted
技术标签:
【中文标题】将脚本作为计划任务运行时出现“找不到路径”【英文标题】:"Path not found" when running a script as scheduled task 【发布时间】:2018-02-14 20:24:20 【问题描述】:我有一个 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
。当我手动运行时,它可以工作。当我从计划任务运行时,它显示"ERROR 1326 (0x0000052E) Accessing Destination Directory \\172.17.201.12\Backups\Copied from Primary DB Server\
Logon failure: unknown user name or bad password."
,所以我猜计划任务没有使用其他服务器上此共享文件夹的存储凭据。那么有没有办法让它使用存储的凭据?还是我必须将该文件夹设置为“所有人”的完全控制?
【问题讨论】:
【参考方案1】:似乎直接运行脚本时它能够使用目标服务器的缓存凭据,但是当通过计划任务运行时它没有这样做,所以我通过添加目标服务器的凭据解决了这个问题:
Control Panel->User Accounts->"Manage your network passwords
"
在目标服务器上添加适当的用户帐户后,脚本现在可以从计划任务成功运行。
(注意:这些服务器不是域的成员)
【讨论】:
以上是关于将脚本作为计划任务运行时出现“找不到路径”的主要内容,如果未能解决你的问题,请参考以下文章
当我尝试将任务计划程序中的信息导出到 csv 文件时出现错误:无效的参数/选项 - '>'