【问题标题】:How to get service recovery options from Powershell?如何从 Powershell 获取服务恢复选项?
【发布时间】:2018-04-13 18:27:26
【问题描述】:

我在寻找一种在 powershell 中获取特定服务的恢复选项的简单方法时遇到了问题。

使用命令行 sc:sc qfailure [servicename] [buffer size] 有效。

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

只是执行SC.EXE 并解析该数据的问题还是有更好的方法?

【问题讨论】:

标签: powershell windows-services


【解决方案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.

【讨论】:

    【解决方案2】:

    Get-Service 的 ServiceController 对象不包含服务可以做什么的所有属性。

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

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

    【讨论】:

    • 投反对票,因为无法从上述命令中获得恢复选项。
    猜你喜欢
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多