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

时间:2017-04-28 01:00:14

标签: 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/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秒。从浏览器调用时,页面不会产生任何类型的错误,并且每次都能正确运行完成。

2 个答案:

答案 0 :(得分:0)

首先要确定问题所在。 它可能与任务调度程序或vbs本身有关。 所以,要检查一些事项:

  1. 事件查看器,查找任何错误。
  2. 是显示成功或失败的任务调度程序?如果是后者,请在此处粘贴错误。
  3. 使用filesystemobect并在脚本的某些部分写一个文件,这是一种让你知道脚本退出的简单方法(如果它正在执行和失败)(有点蹩脚,但有效:):) LI>

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

答案 1 :(得分:0)

感谢您的评论。我最终想通了。我在预定的处理器计算机上的浏览器(Chrome)中访问了网址,它运行得很好......我还将这些文件保存为.asp页面,将它们放在Web服务器上并对它们进行测试,然后就可以了。

然后我回到预定的处理器机器并在IE 8中打开了网址 - 一个网址正常工作,另一个网址没有。

没有使用SNI在单个IP地址上托管多个SSL站点的计算机上运行。 IE 8不支持SNI,所以它无法正确处理https握手...因为这段代码甚至没有包含任何远程敏感信息 - 我只是切换到http并且它的工作方式就像一个魅力。

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