2013-04-06 84 views
0

我想安排一個vbs腳本以普通用戶權限運行。腳本以用戶身份登錄時運行良好,但是當我嘗試從「任務計劃程序」運行腳本作爲「運行用戶是否已登錄」時,它會卡在以下行上:使用用戶帳戶的任務計劃程序和vbs

Set IE = CreateObject(「InternetExplorer.Application」)

我試着運行它與「最高權限運行」選中和未選中。我從任務調度運行程序爲:

program/script: "c:\windows\system32\cscript.exe" 
arguments: "test.vbs" 
start in: c:\ 

下面是完整的代碼:

Set fso = WScript.CreateObject("Scripting.Filesystemobject") 
set tfo = fso.createTextFile("c:\123.txt") 
tfo.writeline("1") 
Set IE = CreateObject("InternetExplorer.Application") 
tfo.writeline("2") 
tfo.close 

輸出時爲「運行,只有當用戶登錄」跑:

1 
2 

當以「運行用戶是否登錄」運行時輸出:

1 

此外,使用管理員帳戶時,任務將以「運行用戶是否已登錄」的方式正確運行,但我無法使用管理員帳戶作爲解決方案。

回答

1

您需要授予用戶「作爲批處理作業登錄」權限。這是可以做到無論是通過GUI:

  • 開始gpedit.msc
  • 導航到計算機配置→   Windows設置→  安全設置→  本地策略→  用戶Righst分配
  • 雙擊「登錄作爲批處理作業「特權
  • 添加用戶帳號
  • 單擊 「確定」 並關閉gpedit.msc

或者在命令行:

ntrights +r SeBatchLogonRight -u domain\username 

ntrights.exeWindows Server 2003 Resource Kit Tools的一部分,但可以在Windows 7了。您不必安裝整個軟件包。相反,您可以使用例如7-zip打開/解壓rktools.exe內的rktools.msi

編輯:由於您已經這樣做了,所以問題可能是該腳本無法產生GUI應用程序,因爲當用戶未登錄時沒有交互式桌面。嘗試添加一些調試代碼到你的腳本:

... 
On Error Resume Next 
Set IE = CreateObject("InternetExplorer.Application") 
If Err Then tfo.writeline Err.Number & vbTab & Err.Description 
On Error Goto 0 
... 

此代碼段的試運行給了我一個「權限被拒絕」的錯誤。顯然有限的用戶不能在計劃任務中創建IE實例。

這就是說,你試圖用IE瀏覽器對象來實現什麼?使用XMLHttpRequest可能是後臺任務更好的方法。

+0

感謝您的建議,但我已經補充說。我可能應該明確地加入到我的問題中...... – oscar13sd 2013-04-08 01:48:27

+0

感謝Ansgar,讓我先解決您的問題: – oscar13sd 2013-04-11 06:33:13

+0

謝謝Ansgar,讓我先解決您的問題: 「問題可能是腳本無法產生GUI應用程序「,如果是這種情況,那麼嘗試使用管理憑據運行相同的代碼時不會失敗? 「你試圖用IE瀏覽器對象來實現什麼」,我承認我的vbs體驗非常有限,如果我有選擇,我不會在vbs中完成這個腳本,那就是說,我所有的嘗試要做的是搜索一個新的病毒定義的網頁,這工作作爲管理員,所以我沒有看看任何替代品,我會給你的XMLHttpRequest一試。 – oscar13sd 2013-04-11 06:39:31

相關問題