2012-07-17 84 views
0

我們從一個在VBScript中執行一些操作的web服務執行腳本。該腳本從命令行運行,沒有錯誤。當我們使用ProcessStartInfo從服務運行此腳本時,它在運行進程的用戶未登錄時不會執行。我們收到此錯誤:CScript錯誤:加載設置失敗。 (訪問被拒絕。)但是,當執行服務的用戶通過遠程桌面登錄時,服務正在成功運行。什麼可能導致這種情況,我們如何解決這個問題?爲什麼VBScript服務僅在用戶登錄時才起作用?

+0

你有[搜索](http://serverfault.com/questions/230219/vbscript-wont-run-for-domain-user-on-windows-server-2008-r2)的錯誤? – CodeCaster 2012-07-17 11:59:40

+0

我在stackoverflow上搜索....我給這個鏈接一看。 – Patrick 2012-07-17 12:06:48

+0

我們完成了所有這些操作,但運行進程監視器的提示很不錯。我們給了這個線索。 – Patrick 2012-07-17 12:08:48

回答

0

什麼用戶身份是當您收到「訪問被拒絕」消息時正在運行的VBScript?我敢打賭這是NT AUTHORITY\NETWORK SERVICE,這可能會解釋它。

當您通過cmd登錄或在資源管理器中雙擊運行任何內容時,該進程將在當前用戶的用戶標識(安全上下文)下運行。當您在本地控制檯會話(如服務會話)之外運行時,它通常在父服務進程的用戶身份下運行。

「服務」是指Windows Service(您在Services.msc中看到的內容)還是您的Web服務?如果它是一個Web服務,那麼它在當前IIS應用程序池的用戶身份下運行。

嘗試從Web服務腳本運行「whoami」(它是一個命令行程序),並讓它將控制檯輸出重定向到一個文件。這會告訴你你正在使用的當前用戶身份。

+0

我們做了whoami技巧,它是正確的用戶。在此之後,我們嘗試重新啓動,現在它正在工作。 – Patrick 2012-07-17 13:01:22

+0

宇宙之謎。 – Dai 2012-07-17 13:36:15

相關問題