Public/Remove-P1ServerInstance.ps1

function Remove-P1ServerInstance {
    <#
    .Synopsis
    Uninstall a existing PlannerOne service.

    .Description
    Uninstall a existing PlannerOne service with the given parameters.

    .Parameter Tenant
    The tenant name of this service.

    .Example
    # Uninstall a PlannerOne service for the tenant Prod.
    Remove-P1ServerInstance -Tenant Prod
    #>

    [cmdletbinding()]
    param( 
        [Parameter(Mandatory=$true)]
        [string] $Tenant
    )
    Process
    {
        Write-Section "Removing server instance..."
        if (!(Test-Tenant $Tenant)) {
            Write-Warning "Tenant $Tenant does not exist."
            Write-Warning "Type Get-P1Tenant for a list of tenants."
            return
        }

        $TenantInfo = Get-P1Tenant $Tenant
        $tenantPath = $TenantInfo.Path
        $ServiceName = $TenantInfo.WindowsServiceName

        #Test if service exists
        if (Test-ServiceExists($ServiceName)) {
            Stop-Service -Name $ServiceName -Force
            $serviceApp = Get-Service -Name $ServiceName
            Write-Output "Waiting 5 seconds for service to really stop."
            Start-Sleep -seconds 5
            Write-Verbose "Deleting PlannerOne service for Tenant $Tenant"

            Remove-Service($ServiceName) | Out-Null
            # Remove Service folder
            Write-Verbose "Removing folder: $tenantPath"
            Remove-Symlink "$tenantPath"
            Write-OK "Server instance removed"
        } else {
            # Always try to remove symlink
            Remove-Symlink "$tenantPath"
            Write-Warning "Service $ServiceName doesn't exist!"
        }
    }
}