关于服务的恢复标签属性,可以在这里看到:
是否有一个API来获得以下属性值:
我更喜欢在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 }