我在找出一个简单的方法来获取PowerShell中特定服务的恢复选项时遇到了问题。
使用命令行sc:sc qfailure [servicename] [buffer size]
可以正常工作。
我也知道HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\\[service]
会包含FailureActions
,但我无法找到有关解释这些值的任何文档。
只是执行SC.EXE
并解析数据或是否有更好的方法来执行此操作?
答案 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