Public/Stop-TerraformProcess.ps1
|
function Stop-TerraformProcess { <# .SYNOPSIS Stop terraform processes. .DESCRIPTION The function stops all running terraform.exe processes. .PARAMETER TimedOut [Switch]] The optional parameter -TimedOut forces to stop timed out processes running longer than 30 minutes only. Default: $false .EXAMPLE Stop-TerraformProcess .EXAMPLE Stope-TerraformProcess -TimedOut #> [CmdletBinding(HelpUri='https://github.com/uplink-systems/powershell-modules/UplinkSystems.Terraform')] [Alias('Stop-TfProcess')] param( [Parameter(Mandatory=$false)] [Switch] $TimedOut ) begin { [Array]$Preferences = $ErrorActionPreference,$WarningPreference,$InformationPreference $ErrorActionPreference = 'SilentlyContinue' } process { switch ($TimedOut) { $true {Get-Process -Name terraform* | Where-Object {$_.TotalProcessorTime.TotalMinutes -gt 30} | Stop-Process -Force | Out-Null} default {Get-Process -Name terraform* | Stop-Process -Force | Out-Null} } } end { $ErrorActionPreference = $Preferences[0] } } |