48 lines
1.9 KiB
PowerShell
48 lines
1.9 KiB
PowerShell
|
function Set-RapidFailSettings {
|
||
|
<#
|
||
|
.SYNOPSIS
|
||
|
Sets the Rapid-Fail Protection settings for all AppPools configured
|
||
|
on the current server for use with AppPool-Shutdown-Alert.exe
|
||
|
#>
|
||
|
|
||
|
[CmdletBinding()]
|
||
|
Param(
|
||
|
[Parameter(Mandatory = $false)]
|
||
|
[Alias("exePath")]
|
||
|
[string]$autoShutdownExePath = "C:\Tools\AppPool-Shutdown-Alert\AppPool-Shutdown-Alert.exe"
|
||
|
)
|
||
|
|
||
|
try{
|
||
|
Add-Type -Path (Get-ChildItem -Path "C:\Windows\assembly\" -Include "Microsoft.Web.Administration.dll" -Recurse).FullName
|
||
|
$iis = New-Object Microsoft.Web.Administration.ServerManager
|
||
|
|
||
|
if(!(Test-Path $autoShutdownExePath))
|
||
|
{
|
||
|
Write-Warning("Path $autoShutdownExePath does not already exist.")
|
||
|
Write-Warning("Verify that AppPool-Shutdown-Alert has been installed with chocolatey or this alert will not work. It will create the path above.")
|
||
|
Write-Warning("Run 'choco install AppPool-Shutdown-Alert -y' on the target server to install it.")
|
||
|
Write-Warning("Application Pool settings will still be changed.`n`n")
|
||
|
}
|
||
|
|
||
|
foreach ($applicationPool in $iis.ApplicationPools)
|
||
|
{
|
||
|
Write-Host("Current Application Pool: $($applicationPool.Name)")
|
||
|
Write-Host("AutoShutdownExe is set to: $($applicationPool.Failure.AutoShutdownExe)")
|
||
|
Write-Host("Setting AutoShutdownExe to: $autoShutdownExePath")
|
||
|
Write-Host("Setting AutoShutdownParams to: $($applicationPool.Name)`n")
|
||
|
|
||
|
$applicationPool.Failure.AutoShutdownExe = $autoShutdownExePath
|
||
|
$applicationPool.Failure.AutoShutdownParams = $applicationPool.Name
|
||
|
}
|
||
|
}
|
||
|
catch
|
||
|
{
|
||
|
Write-Error("An error occurred while trying to set Application Pool settings:")
|
||
|
Write-Error $_
|
||
|
}
|
||
|
|
||
|
$iis.CommitChanges()
|
||
|
|
||
|
Write-Host("Application Pool changes committed successfully.`n")
|
||
|
}
|