2015-11-10 162 views
0

我已经创建了一个VBS脚本,在Windows 8家庭计算机上手动运行时,即使在没有管理权限的ID上运行也能很好地运行。无论我用什么用户凭证通过计算机启动时的计划任务运行它,该同一脚本都会重复失败。我已经试过机器上的系统,管理员和非特权用户ID,但都没有成功。当在Windows 8中调用VBS脚本时无法运行

这个相同的VBS脚本从多个Windows 7和Windows 8.1家庭和专业计算机上的计划任务运行都没有问题。

该脚本尝试成功地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机器我看到 运行“的任务当前正在运行。(0x41301)”,但没有成功。我已经尝试过几乎所有尝试在编写批处理脚本以运行VBS脚本之外进行这项工作。这似乎过分没有必要。

回答

0

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

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

start "" "C:\path\to\script.vbs" 
+0

如果计算机是从冷启动打开的,则此解决方案STILL在Windows 8中不起作用。如果重新启动,脚本运行没有问题....什么给? –