Public/Invoke-UndeployApplication.ps1
function Invoke-UndeployApplication { <# .SYNOPSIS Undeploy an application .DESCRIPTION Undeploy an application resource file (WAR, EAR, JAR, SAR, etc.) .PARAMETER Path The path parameter corresponds to the path to the JBoss client. .PARAMETER Controller The controller parameter corresponds to the hostname and port of the JBoss host. .PARAMETER Credentials The optional credentials parameter correspond to the credentials of the account to use to connect to JBoss. .PARAMETER Application The application parameter corresponds to the name of the application to undeploy. .NOTES File name: Invoke-UndeployApplication.ps1 Author: Florian Carrier Creation date: 19/12/2019 Last modified: 15/01/2020 #> [CmdletBinding ( SupportsShouldProcess = $true )] Param ( [Parameter ( Position = 1, Mandatory = $false, HelpMessage = "Path to the JBoss client" )] [ValidateNotNUllOrEmpty ()] [String] $Path, [Parameter ( Position = 2, Mandatory = $false, HelpMessage = "Controller" )] # TODO validate format [ValidateNotNUllOrEmpty ()] [String] $Controller, [Parameter ( Position = 3, Mandatory = $false, HelpMessage = "User credentials" )] [ValidateNotNUllOrEmpty ()] [System.Management.Automation.PSCredential] $Credentials, [Parameter ( Position = 4, Mandatory = $false, HelpMessage = "Name of the application" )] [ValidateNotNUllOrEmpty ()] [String] $Application ) Begin { # Get global preference variables Get-CallerPreference -Cmdlet $PSCmdlet -SessionState $ExecutionContext.SessionState } Process { # Define command # WARNING Do not use quotes around the application name $Command = "undeploy --name=$Application" # Execute command if ($PSBoundParameters.ContainsKey('Credentials')) { Invoke-JBossClient -Path $Path -Controller $Controller -Command $Command -Credentials $Credentials } else { Invoke-JBossClient -Path $Path -Controller $Controller -Command $Command } } } |