将VBScript作为计划进程运行以调用网页

将VBScript作为计划进程运行以调用网页,vbscript,scheduled-tasks,Vbscript,Scheduled Tasks,我有一个VBScript文件设置为在旧的Windows XP机器上运行,专用于运行计划进程。该脚本只调用一个URL。它不必做任何错误更正(网页可以处理所有这些)。脚本如下所示: Sub SampleProcessor() On Error Resume Next Dim objRequest Dim URL Set objRequest = CreateObject("Microsoft.XMLHTTP") URL = "https://www.url.com/Process

我有一个VBScript文件设置为在旧的Windows XP机器上运行,专用于运行计划进程。该脚本只调用一个URL。它不必做任何错误更正(网页可以处理所有这些)。脚本如下所示:

Sub SampleProcessor()
  On Error Resume Next
  Dim objRequest
  Dim URL
  Set objRequest = CreateObject("Microsoft.XMLHTTP")
  URL = "https://www.url.com/Processor.php"
  objRequest.Open "POST", URL, False
  objRequest.Send
  Set objRequest = Nothing
End Sub

Call SampleProcessor()
现在,这个脚本计划每五分钟运行一次,每天24小时运行一次,并且已经完美地运行了多年

我最近不得不创建一个与此类似的新流程


我使用了上面相同的.vbs文件,重命名了它,更改了函数名和URL。救了它。把它作为一个预定的过程。它不会运行。我已经验证了两个脚本都设置为在同一用户下运行。将URL输入到同一台计算机上的浏览器窗口时,该URL有效。为了避免任何可能的冲突,旧函数从晚上7:00开始每5分钟运行一次,新函数从晚上7:03开始每5分钟运行一次。这两个脚本的运行时间通常都不超过20-30秒。从浏览器调用时,页面不会产生任何类型的错误,每次都会正确运行直至完成。

首先要确定问题所在。 它可能与任务调度器有关,也可能与vbs本身有关。 因此,有几件事需要检查:

  • 事件查看器查看是否存在任何错误
  • 任务计划程序显示成功还是失败?如果是后者,请将错误粘贴到此处
  • 使用filesystemobect并在脚本的某些部分编写一个文件,这是一种简单的方法,可以让您知道脚本退出的位置(如果脚本正在执行并失败)(有点蹩脚,但可以工作:)

  • 如果无法发现错误,则将计划任务导出为xml并附加到此问题。这可能有助于调查这个问题。

    谢谢您的评论。我终于明白了。我访问了预定处理器计算机上浏览器(Chrome)中的URL,它工作得很好。。。我还将这些文件保存为.asp页面,将它们放在web服务器上,并对它们进行了测试,结果它们正常工作

    然后我回到预定的处理器机器,在IE8中打开url——一个url工作,另一个不工作

    其中一个没有运行在一台机器上,使用SNI在一个IP地址上托管多个SSL站点。IE 8不支持SNI,因此无法正确处理https握手。。。由于这段代码甚至不包含任何远程敏感的内容,所以我刚切换到http,它的工作方式很有魅力


    希望预算神会让我很快更换旧的XP机器,但如果没有,任何人都知道如何让Microsoft.XMLHTTP处理SNI?

    在第一行中添加显式选项,并以交互方式运行脚本。“Option Explicit”应该有助于在重命名内容时检测键入错误。另一件事是新URL,如果它使用https,您可能需要检查证书是否有效,如果有任何公司证书(或自签名证书)需要部署,部署到登录用户的。a)显示不起作用的代码,而不是起作用的代码。b) 在对VBScript代码进行故障排除时,删除“下一步继续时出错时的
    。有关调试计划任务的更多帮助,请参阅。您还应显示计划任务中使用的参数。我怀疑您的路径有问题,可能包含空格或类似的内容