ps/Modules/Alkami.PowerShell.SDK/Public/Uninstall-SDKIISComponents.ps1
2023-05-30 22:51:22 -07:00

113 lines
3.5 KiB
PowerShell

function Uninstall-SDKIISComponents {
Import-Module WebAdministration
$appPoolNames = @("WebClientAdmin","AuditService","BankService","WebClient","Client","Admin","ContentService","CoreService","ExceptionService","IPSTS","MessageCenterService","NagConfigurationService","NotificationService","RP-STS","SchedulerService","SecurityManagementService","STSConfiguration","symconnectmultiplexer","root")
Function GetTemporaryASPNetDirectory {
return "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\"
}
Function ClearIISTempFiles($appPools) {
$appPools = ($appPools, @() -ne $null)[0]
$appPools | % {
$appPool = $_
try {
$path = (Join-Path (GetTemporaryASPNetDirectory) $appPool)
if (Test-Path $path) {
[AlkamiDirectories]::FlushDirectory($path)
}
} catch {
Write-Warning "could not delete temp files for app pool $appPool"
}
}
}
$copyDir = @"
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
public class AlkamiDirectories
{
public static void FlushDirectory(string directoryName) {
if (Directory.Exists(directoryName)) {
try {
Directory.Delete(directoryName, true);
}
catch (Exception ex)
{
System.Console.WriteLine(string.Format("could not delete {0}. ex.message {1}", directoryName, ex.Message));
Directory.Delete(directoryName, true);
}
}
}
}
"@;
Add-Type -TypeDefinition $CopyDir
$installPath = split-path -parent $MyInvocation.MyCommand.Path
###############################################################################
## install/configure ORB
## TODO: Copy this into the right path and then include it.
iisreset /stop /timeout:60
Uninstall-AlkamiService -Path (Join-Path (Get-OrbPath) 'Radium')
@(
"AuditService"
"BankService"
"ContentService"
"CoreService"
"ExceptionService"
"MessageCenterService"
"NagConfigurationService"
"NotificationService"
"RP-STS"
"STSConfiguration"
"SchedulerService"
"SecurityManagementService"
"SymConnectMultiplexer"
"CUFX"
"OrbFX"
"TextBanking"
) | % {
if (Get-WebApplication -Name $_ -Site "Client") {
Remove-WebApplication -Name $_ -Site "Client"
}
## Ensure that the app exists (!!(Get ... and then ensure that there are NO applications attached to it (!xyz.Count == true if xyz.Count = 0)
if (!!(Get-IisAppPool -Name $_) -and !(@(Get-WebConfigurationProperty "/system.applicationHost/sites/site/application[@applicationPool=`'$_`']" "machine/webroot/apphost" -name path).Count)) {
Remove-WebAppPool -Name $_
}
}
@(
"WebClient"
"IPSTS"
"WebClientAdmin",
"Client",
"Admin",
"developer.dev.alkamitech.com",
"IP-STS"
) | % {
if (Test-Path IIS:\Sites\$_) {
Remove-WebSite -Name $_
}
if (Test-Path IIS:\AppPools\$_) {
Remove-WebAppPool -Name $_
}
}
ClearIISTempFiles $appPoolNames
$logDirectory = "C:\Orblogs"
if (!(Test-Path $logDirectory)) {
Remove-Item $logDirectory -Recurse -Force -ErrorAction Ignore
}
iisreset /start
}