在Windows 8中作为计划任务调用时,VBS脚本无法运行

时间:2015-11-10 20:46:11

标签: post vbscript windows-8 scheduled-tasks

我创建了一个VBS脚本,即使在没有管理员权限的ID上,也可以在Windows 8 Home计算机上手动运行时完美运行。无论我用什么用户凭据通过计算机启动时的计划任务运行它,同样的脚本都会反复失败。我已经尝试过机器上的系统,管理员和非特权用户ID都没有成功。

这个相同的VBS脚本在多个Windows 7以及Windows 8.1 Home和Professional计算机上的计划任务中完全没有问题。

此脚本尝试成功ping网站,并且成功ping后将使用本地计算机的当前时间将数据发布到网页。

boolExitFlag = False

Do
    If Ping("HOSTNAME") Then
        Call pingsuccess              
        boolExitFlag = True
    End If
        WScript.sleep 1000
Loop while boolExitFlag <> True

Sub pingsuccess
    set oHTTP = CreateObject("Microsoft.XMLHTTP")
    oHTTP.open "POST", "URL",false
    oHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    oHTTP.setRequestHeader "Content-Length", Len("send=send&time=" & Hour(Now) & ":" & Minute(Now) & ":" & Second(Now))
    oHTTP.send "send=send&time=" & Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)
End Sub

Function Ping(strHost)
    Dim oPing, oRetStatus, bReturn
    Set oPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_PingStatus where address='" & strHost & "'")

    For Each oRetStatus In oPing
        If IsNull(oRetStatus.StatusCode) Or oRetStatus.StatusCode <> 0 Then
            bReturn = False
        Else
            bReturn = True
        End If
        Set oRetStatus = Nothing
    Next
    Set oPing = Nothing

    Ping = bReturn
End Function

当我在Windows 8计算机上运行计划任务时,我看到了 &#34;任务当前正在运行。 (0x41301)&#34;没有成功。我已经尝试了几乎所有尝试在编写批处理脚本以运行VBS脚本之外的工作。这似乎过分没必要了。

1 个答案:

答案 0 :(得分:0)

我可以设法让Windows 8运行此VBS脚本的唯一方法是创建一个调用VBS的批处理文件,并选中计划任务中的框以“#34;以最高权限运行”#34; 。没有这两个脚本就不会运行。我不是百分之百确定为什么只有Windows 8在没有这样做的情况下失败。

批处理文件仅包含以下代码。

RecyclerView