如何获得win32_service恢复选项卡属性

关于服务的恢复标签属性,可以在这里看到:

HTTP%253A%252F%252Fwww.ehloworld.com%252Fwp含量%252Fuploads%252F2011%252F10%252Fservice恢复选项-1.png

是否有一个API来获得以下属性值:

  1. 第一个失败的例子值:“不采取行动”
  2. 第二次失败
  3. 随后的失败
  4. 重置失败计数

我更喜欢在PowerShell中这样做,但也想知道其他选项。

我不熟悉PowerShell,但有一个Win32 API可用: QueryServiceConfig2() 。 将dwInfoLevel参数设置为SERVICE_CONFIG_FAILURE_ACTIONS ,并将指针传递给lpBuffer参数中的缓冲区,该参数足够大以接收SERVICE_FAILURE_ACTIONS结构。

下需要修改服务注册码

 HKLM\System\CurrentControlSet\services\<service name>\ 

使用名称FailureActions添加binary类型的binary 。 我不知道它是如何构建的,你不得不玩弄它,但是因为它涉及到powershell,它只是抓住了服务的真实名称(如果你有所有的显示名称,也许使用get-service ) ,并导航到该regkey并创建一个新的价值,例如:

 PS C:\Users\*\Desktop> $ByteArray = 0,0,0,144,10,23,253,33 PS C:\Users\*\Desktop> Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\services\AdobeARMservice -Name FailureActions -Type Binary -Value $ByteArray -Force PS C:\Users\*\Desktop> Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\services\AdobeARMservice -Name FailureActions FailureActions : {0, 0, 0, 144...} PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\AdobeARMservice PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services PSChildName : AdobeARMservice PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry 

添加一个字节[],但正如我所提到的,你必须反向工程的意义,或者只是复制一个现有的或类似的东西。

你可以用cs.exe来控制它

 Get-Service -DisplayName YourService | % { sc.exe failure $_.Name actions= /0 reset= 0 }