Batch file Windows服务恢复-运行程序不起作用

Batch file Windows服务恢复-运行程序不起作用,batch-file,windows-services,Batch File,Windows Services,我该怎么做 我已经尽力了 浏览要运行的.exe文件。 运行bat文件 在程序文本框中写入forcedos.exe,并在命令行参数文本框中写入我的bat文件的路径 为什么它不能与普通的exe一起工作 我知道它应该运行一个程序,因为它可以正确地重新启动服务 编辑 这是我最近的一次尝试 脚本中有代码 Dim objShell Set objShell = WScript.CreateObject( "WScript.Shell" ) objShell.Run("iexplore") Set objSh

我该怎么做

我已经尽力了

浏览要运行的.exe文件。 运行bat文件 在程序文本框中写入forcedos.exe,并在命令行参数文本框中写入我的bat文件的路径 为什么它不能与普通的exe一起工作

我知道它应该运行一个程序,因为它可以正确地重新启动服务

编辑

这是我最近的一次尝试

脚本中有代码

Dim objShell
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Run("iexplore")
Set objShell = Nothing
现在,如果我运行cmd命令,脚本将打开internet explorer

wscript.exe "C:\asfh.vbs"

服务崩溃时的“运行程序恢复”选项以与服务相同的方式运行指定的可执行文件,即,它在会话0中运行,因此受影响,另请参见,并且它与服务使用相同的安全上下文运行

这意味着它不能直接与用户交互,您可以显示GUI,但没有人会看到它,但它也限制了可执行文件或脚本的功能。例如,某些shell API函数将无法正常工作,除非用户帐户已在某个时间以交互方式登录。在您发布的示例脚本中,脚本本身可能正在运行,但无法启动Internet Explorer,因为IE仅设计为在交互式会话中运行

如果您将自己限制在基本功能范围内,那么所有功能都应该按预期工作。据我所知,没有一个主列表可以描述在服务上下文中使用哪些功能是安全的,但通常很容易猜测。如果有必要,你可以尝试错误


另请注意,据我所知,forcedos.exe已不再出现在现代版本的Windows中。如果要运行批处理文件,可以将cmd.exe指定为应用程序,将/c myscript.bat指定为命令行参数。

谢谢,我将在超级用户上试用。如果您向超级用户发送邮件,则需要更清楚地说明您正在尝试执行的操作以及原因。我不知道windows服务恢复应该是什么意思。如果按windows服务上的属性,这是一个选项卡。因此,当某个特定服务失败时,您试图让系统运行一个程序?如果这是你的服务,也就是你自己写的服务,那么问题可能就在这里。您知道运行的程序不能直接与用户交互吗?您是否检查了事件日志中的错误消息?我不知道Internet Explorer是否能够在服务上下文中运行。您是否尝试过运行一个简单的脚本,比如写入日志文件?一种更简单的方法是将cmd.exe设置为要运行的程序,不带任何参数。然后,您可以使用任务管理器查看cmd.exe是否启动。这对于forcedos.exe信息非常有用,我花了很多时间尝试这个角度。谢谢你的帮助,就像我之前在评论中说的,我得到了一个简单的脚本,阅读了我事先准备好的两个文件,并通过电子邮件将内容发送给我。通过这种方式,我可以了解我的客户和软件的版本,我可以联系他们并帮助他们。
wscript.exe "C:\asfh.vbs"