Windows恢复如何处理故障计数?

Old*_*ool 7 windows recovery windows-services restart

我使用以下命令配置服务故障恢复

sc failure "service" actions= ""/60000/restart/60000/run/120000 reset= 60 command = "\"c:\\windows\notepad2.exe
Run Code Online (Sandbox Code Playgroud)

(用于测试的notepad2.exe)

从这里的Microsoft文档: -

操作

此字段包含一个整数值数组,用于指定服务失败时SCM采取的操作.用[〜]分隔数组中的值.数组的第N个元素中的整数值指定服务在第N次失败时执行的操作.

所以,我从中得到的是失败的数量将决定行动=>对于第一次失败将执行行动[0]并且将执行第二次行动[ 1 ]并且对于所有后续失败行动[ 2 ]将是

我有以下服务配置来测试此行为: -

在此输入图像描述

然后我尝试通过使用来杀死运行服务的进程taskkill.

这是第一个日志 在此输入图像描述

然后我尝试手动启动服务. 在此输入图像描述

然后我再次尝试在约2分钟后终止服务(=>重置计数将故障计数设置为0,因为它配置为1分钟).

这是错误的日志 在此输入图像描述

在上图中,很明显为什么count重置为0因为reset我们已经给出60 sec了设置并且我们的服务运行的次数超过了2 mins.

但是为恢复描述的操作是错误的,因为重新启动服务是第二次失败的操作,而不是第一次失败.

那么为什么失败的计数会变为1但是恢复的行动是与第二次失败行动相对应的行动?

小智 0

我只是在解决类似的问题,在我将“重置失败计数:”设置为“1”天后,它似乎起作用了。一个可能的解释是,通过将“重置失败计数”设置为 1 天,第一次失败(即您手动停止并重新启动服务)后,它不会将失败计数重置为 0,并让它循环执行其余的操作行动(取决于条件/行动)。你的旅费可能会改变。