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!" } } } |