ps/Modules/Alkami.PowerShell.IIS/Public/Test-IISAppPoolByName.ps1
2023-05-30 22:51:22 -07:00

49 lines
1.7 KiB
PowerShell

function Test-IISAppPoolByName {
<#
.SYNOPSIS
Tests IIS to see if a specific app pool is running
Will throw if there is no app pool
#>
[CmdletBinding()]
[OutputType([System.Boolean])]
Param(
[Parameter(Mandatory=$false)]
[Alias("AppPoolName")]
[string]$Name = ""
)
process {
$logLead = (Get-LogLeadName)
Write-Verbose "$logLead : Finding app pool by name"
if (!$Name) {
Write-Host "The following are the valid names for application pools:"
Write-Host (((IISAdministration\Get-IISAppPool).Name) -Join "`r`n")
# This should halt, returning false could be construed as the app pool exists
throw "$logLead : $Name was empty or not supplied"
} else {
try {
$appPool = IISAdministration\Get-IISAppPool -Name $name -ErrorAction Ignore
if ($null -eq $appPool) {
# This should halt, returning false could be construed as the app pool exists
# Setting to return false tho because of some sites being configured not-as-expected
Write-Warning "$logLead : $Name is not a valid AppPool name"
return $false;
}
else
{
return $appPool.State -eq "Started"
}
} catch {
# This should halt, returning false could be construed as the app pool exists
# Setting to return false tho because of some sites being configured not-as-expected
Write-Warning "$logLead : $Name is not a valid AppPool name"
return $false;
}
}
return $false
}
}