【发布时间】: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.",所以我猜计划任务没有使用其他服务器上此共享文件夹的存储凭据。那么有没有办法让它使用存储的凭据?还是我必须将该文件夹设置为“所有人”的完全控制?
【问题讨论】:
标签: vbscript scheduled-tasks windows-server-2008-r2