关于服务的恢复选项卡属性,可以在这里看到:如何获得win32_service时恢复选项卡性能
是否有一个API来获取以下属性值:
- 第一次失败了示例值:“不采取行动”
- 第二次失败
- 后续失败
- 重置失败计数
我喜欢的方式在PowerShell中这样做,但想知道其他选择。
关于服务的恢复选项卡属性,可以在这里看到:如何获得win32_service时恢复选项卡性能
是否有一个API来获取以下属性值:
我喜欢的方式在PowerShell中这样做,但想知道其他选择。
一个需要修改服务REG键,下
HKLM\System\CurrentControlSet\services\<service name>\
添加binary
类型的值名为FailureActions
。我不知道它是如何构建的,你不得不随意使用它,但是因为它涉及到powershell,它只会抓住服务的真实名称(如果你拥有的只是显示名称,也许使用get-service
),以及导航到注册表项来,创造一个新的价值,例如:
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
添加一个byte [],但就像我提到你不得不逆向工程数组的意义,或者只是复制现有或类似的东西。
我不熟悉PowerShell的,但有一个Win32 API的使用:QueryServiceConfig2()。在dwInfoLevel
参数设置为SERVICE_CONFIG_FAILURE_ACTIONS
,和一个指针传递给在lpBuffer
参数足够大以容纳SERVICE_FAILURE_ACTIONS
结构的缓冲器。
你可以用cs.exe控制它例如
Get-Service -DisplayName YourService | % { sc.exe failure $_.Name actions= /0 reset= 0 }
删除了C#标签,因为这问题似乎并未有任何具体关于C#。 – tnw