2

ここで確認できるサービスの回復タブのプロパティについて:

http%253A%252F%252Fwww.ehloworld.com%252Fwp-content%252Fuploads%252F2011%252F10%252Fservice-recovery-options-1.png

次のプロパティ値を取得する API はありますか。

  1. 値の例の最初の失敗: 「何もしない」
  2. 二度目の失敗
  3. その後の失敗
  4. 失敗回数をリセット

私は PowerShell でこれを行う方法を好みますが、他のオプションについても知りたいです。

4

3 に答える 3

1

私は PowerShell に詳しくありませんが、利用可能な Win32 API があります: QueryServiceConfig2()dwInfoLevelパラメーターをに設定し、構造体を受け取るのに十分な大きさSERVICE_CONFIG_FAILURE_ACTIONSのバッファーへのポインターをパラメーターに渡します。lpBufferSERVICE_FAILURE_ACTIONS

于 2013-10-29T21:31:29.583 に答える
0

One needs to modify the services reg key, under

HKLM\System\CurrentControlSet\services\<service name>\

Adding a value of type binary with the name FailureActions. I don't know how it's structured you'd have to play around with that, but as it relates to powershell it would simply be grabbing to real name of the service (maybe using get-service if all you have is the display name), and navigating to that regkey and creating a new value, for example:

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                                                                                                                          

Adding a byte[ ], but like I mentioned you'd have to either reverse engineer the meaning of the array, or just copy an existing one or something similar.

于 2013-10-23T13:22:28.507 に答える