Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 在ASP经典页面中执行.Bat文件_Batch File_Asp Classic - Fatal编程技术网

Batch file 在ASP经典页面中执行.Bat文件

Batch file 在ASP经典页面中执行.Bat文件,batch-file,asp-classic,Batch File,Asp Classic,我想使用ASP classic重新启动位于不同服务器上的服务,但它在我这方面不起作用 我有两个批处理文件,它们将在另一个远程服务器中停止和启动多个服务: sc \\<machine address> stop service1 sc \\<machine address> stop service2 sc \\<machine address> start service1 sc \\<machine address> start service

我想使用ASP classic重新启动位于不同服务器上的服务,但它在我这方面不起作用

我有两个批处理文件,它们将在另一个远程服务器中停止和启动多个服务:

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

sc \\<machine address> start service1
sc \\<machine address> start service2
有了这些代码,它仍然不起作用。我读过一个类似于此问题的解决方案,将ApplicationPool更改为LocalSystem,并为该文件提供足够的权限。但还是不适合我

我遗漏了什么来解决这个问题


请帮忙!谢谢

确保您已授予与应用程序池用户相同的.bat文件执行权限


如果您遇到任何错误并且没有提及,请这样做。

我能够解决如何重新启动位于另一台服务器中的多个服务的问题:

我将批处理文件设置为这样,调用我的服务所在服务器中的另一个批处理文件:

cmdkey.exe /add:<machine_ipAddress> /user:<domain>\<username>/pass:<password> 
psexec.exe \\<machine_ipAddress>   "C:\batch.bat"
cmdkey.exe /delete:<machine_ipAddress> 
这可能不是最有效的解决方案,但肯定有效:)


谢谢

从网站上运行.BAT文件是一项非常危险的操作。黑客们喜欢这种类型的东西,并且不认为没有黑客会对破坏你们公司的网络感兴趣。你应该寻找另一种做事的方法。例如,您可以在远程服务器上有一个进程,该进程定期查看某个数据库中的某个值,并让页面更改该值以停止或重新启动服务

另一种方法是使用许多可用应用程序中的一种来获得远程桌面


在任何情况下,在开始将网站用作网络上任何服务器的远程控制器之前,请三思。

实际上,我没有收到任何错误消息,只是没有任何事情发生,这与手动执行批处理文件不同。顺便说一句,我已经将权限与应用程序池用户对齐,仍然没有运气:(看看这里和这里,谢谢提醒。无论如何,当页面收到超时时,.bat文件将被执行。我们网站上提供的用户没有按钮或任何东西可以点击来执行.bat文件:)也许,但仅仅是给web服务器执行.bat文件所需的权限这一事实本身就令人害怕。如果黑客能够控制您的web服务器,并能够在服务器上写入一些文件,这将是他/她首先要检查的事情之一。不要忘记,入侵机器通常是一个多步骤的过程;尤其是对于服务器,而不是桌面。
cmdkey.exe /add:<machine_ipAddress> /user:<domain>\<username>/pass:<password> 
psexec.exe \\<machine_ipAddress>   "C:\batch.bat"
cmdkey.exe /delete:<machine_ipAddress> 
cmd /c "net stop "service1" & net stop "service2" & net start "service1" & net start "service2""