'How to get service recovery options from Powershell?

I'm having issues figuring out an easy way to get the recovery options of a particular service in powershell.

Using command line sc: sc qfailure [servicename] [buffer size] works.

I also know that HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\\[service] will contain a FailureActions but i cant find any documentation on interpreting those values.

Is it just a matter of executing SC.EXE and parsing that data or is there a better way of doing this?



Solution 1:[1]

This will provide you Binary Value and you will have interpret it as follow which is tough part.

$actions = get-itemproperty hklm:\system\currentcontrolset\services\<ServiceShortName> | select -Expand FailureActions


typedef struct _SERVICE_FAILURE_ACTIONS {
    DWORD     dwResetPeriod;
    LPTSTR    lpRebootMsg;
    LPTSTR    lpCommand;
    DWORD     cActions;
    SC_ACTION *lpsaActions;
} SERVICE_FAILURE_ACTIONS, *LPSERVICE_FAILURE_ACTIONS;

If you are using .NET

Follow this.

Solution 2:[2]

The ServiceController object that Get-Service doesn't contain all the properties for what a service can do.

To get access to more things try connecting to WMI. Try this command to see the properties we can see in WMI.

Get-WmiObject Win32_service | select -first 1 -property *

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Amit Shakya
Solution 2 Alex