如何从Powershell获得服务恢复选项?

时间:2018-04-13 18:27:27

标签: powershell windows-services

我在找出一个简单的方法来获取PowerShell中特定服务的恢复选项时遇到了问题。

使用命令行sc:sc qfailure [servicename] [buffer size]可以正常工作。

我也知道HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\\[service]会包含FailureActions,但我无法找到有关解释这些值的任何文档。

只是执行SC.EXE并解析数据或是否有更好的方法来执行此操作?

2 个答案:

答案 0 :(得分:1)

Get-Service的ServiceController对象不包含服务可以执行的所有属性。

要访问更多内容,请尝试连接到WMI。尝试使用此命令查看我们在WMI中可以看到的属性。

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

答案 1 :(得分:1)

这将为您提供二进制值,您将把它解释为以下哪个是困难的部分。

$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;

如果您使用 .NET

Follow this.