2014-09-24 25 views
0

我想使用ASP classic重新啓動位於不同服務器的服務,但它不適用於我的目的。在ASP Classic頁面執行一個.Bat文件

我有2批處理文件,將停止在另一臺遠程服務器上啓動多項服務:

sc \\<machine address> stop service1 
sc \\<machine address> stop service2 

sc \\<machine address> start service1 
sc \\<machine address> start service2 

,我將其稱之爲從我的ASP經典代碼,就像下面這樣:

dim wshell 
set wshell = CreateObject("WScript.Shell") 
wshell.run "c:\folder1\stopService.bat" 
wshell.run "c:\folder1\startService.bat" 
set wshell = nothing 

使用這些代碼,它仍然不起作用。我已經閱讀了與此問題相似的解決方案,將ApplicationPool更改爲LocalSystem,併爲該文件提供了足夠的權限。但仍然不適合我。

我錯過了什麼來解決這個問題?

請幫忙!謝謝!

回答

1

我能解決我就如何重啓位於另一臺服務器上的多個服務問題:

我犯了這樣的我的批處理文件,要求在服務器另一個批處理文件在我的服務位於:

cmdkey.exe /add:<machine_ipAddress> /user:<domain>\<username>/pass:<password> 
psexec.exe \\<machine_ipAddress> "C:\batch.bat" 
cmdkey.exe /delete:<machine_ipAddress> 

這裏是batch.bat樣子:

cmd /c "net stop "service1" & net stop "service2" & net start "service1" & net start "service2"" 

這可能不是最有效的解決方案,但肯定它的工作原理:)

謝謝!

0

請確保您的.bat文件權限與應用程序池用戶的權限相同。

如果您收到任何錯誤並未提及它們,請這樣做。

+0

實際上,我沒有收到任何錯誤消息,只是沒有什麼事情發生,如果我手動執行批處理文件。順便說一下,我已經把權限對準應用程序池用戶,仍然沒有運氣:( – carl 2014-09-25 06:40:26

+0

看這裏http://stackoverflow.com/questions/5644689/how-to-execute-a-bat-file-from- a-classic-asp-page-on-the-server這裏http://stackoverflow.com/questions/14886183/batch-file-execution-asp-classic – 2014-09-25 06:49:49

0

Beeing能夠從一個網站運行.BAT文件是一項非常冒險的操作。黑客喜歡這種類型的東西,不認爲沒有黑客會對破壞公司網絡感興趣。你應該尋找另一種做事的方式。例如,您可以在遠程服務器上有一個進程,在某些數據庫中定期查看某個值,並讓您的頁面更改此值以停止或重新啓動服務。

另一種方法是使用許多可用應用程序中的一種獲取遠程桌面。

在所有情況下,在開始使用網站作爲網絡上任何服務器的遠程控制器之前,請三思。

+0

感謝提醒。無論如何,.bat文件將被執行當頁面收到超時時,沒有任何按鈕或任何可以被我們網站上提供的用戶執行.bat文件的命令:) – carl 2014-09-29 08:47:32

+0

也許只是給予Web服務器執行.bat文件所需的權限本身就是嚇人的。如果黑客獲得了對Web服務器的一些控制權並且能夠在服務器上寫入一些文件,那麼這將是他/她將要檢查的第一件事情之一。不要忘記,機器的黑客攻擊往往是一個多步驟的過程,特別是對於服務器而不是桌面。 – SylvainL 2014-09-29 09:06:30