ps/Modules/Alkami.PowerShell.SDK/Public/Set-SDKServiceRecovery.ps1

52 lines
2.0 KiB
PowerShell
Raw Normal View History

2023-05-30 22:51:22 -07:00
Function Set-SDKServiceRecovery {
<#
.SYNOPSIS
Set the recovery options to restart for all Alkami SDK services.
.DESCRIPTION
Change the recovery options to "Restart the Service" on failure for all Windows services associated with the SDK.
.EXAMPLE
Set-SDKServiceRecovery -ServiceName 'All' -Action 'TakeNoAction'
Set-SDKServiceRecovery -ServiceName 'Alkami.MicroServices.Transactions.Service.Host' -Action 'TakeNoAction'
Set-SDKServiceRecovery -ServiceName 'Alkami.MicroServices.Transactions.Service.Host','Alkami.MS.TransactionEnrichment.Service.Host' -Action 'TakeNoAction'
Omitting the Action parameter will use the default action of "Take No Action"
Set-SDKServiceRecovery -ServiceName 'All'
Set-SDKServiceRecovery -ServiceName 'Alkami.MicroServices.Transactions.Service.Host'
Set-SDKServiceRecovery -ServiceName 'Alkami.MicroServices.Transactions.Service.Host','Alkami.MS.TransactionEnrichment.Service.Host'
Set-SDKServiceRecovery -ServiceName 'All' -Action 'recovery'
Set-SDKServiceRecovery -ServiceName 'Alkami.MicroServices.Transactions.Service.Host' -Action 'recovery'
Set-SDKServiceRecovery -ServiceName 'Alkami.MicroServices.Transactions.Service.Host','Alkami.MS.TransactionEnrichment.Service.Host' -Action 'recovery'
.NOTES
General notes
#>
[CmdletBinding()]
param
(
[Parameter(Mandatory=$true)]
[string[]]$ServiceName,
[Parameter(Mandatory=$false)]
[string]$Action
)
$actions = "//////";
#Write-Host "Action: $($Action)";
if (($PSBoundParameters.ContainsKey('Action')) -and ($Action -ne 'TakeNoAction')) {
$actions = "restart/60000//////"
}
if (($ServiceName -contains 'All') -or ($ServiceName -contains 'all')) {
$ServiceName = (Get-AlkamiServices).Where({$_.Name -ne 'Alkami.Sidekick.Client'}).Name
}
foreach ($service in $ServiceName) {
#Write-Host "Setting recovery on $($service) service to 'TakeNoAction'";
# sc.exe failure $service reset= 86400 actions= $actions | Out-Null
Invoke-SCExe @("failure",$service,"actions=",$actions,"reset=",86400)
}
}