2015-11-10 71 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中不起作用。如果重新啓動,腳本運行沒有問題....什麼給? –