如何使用PowerShell脚本在IIS中启动和停止应用程序池

par*_*esh 7 .net iis powershell

我想使用powershell脚本在IIS中启动和停止应用程序池.我曾尝试编写脚本,但我没有得到这个.

Wes*_*max 10

要使用 PowerShell 停止应用程序池,请使用

Stop-WebAppPool -Name YourAppPoolNameHere
Run Code Online (Sandbox Code Playgroud)

并启动应用程序池

Start-WebAppPool -Name YourAppPoolNameHere
Run Code Online (Sandbox Code Playgroud)

您将需要WebAdministration安装该模块,因此请使用此命令检查是否已安装该模块

 Get-Module -ListAvailable
Run Code Online (Sandbox Code Playgroud)

  • 对于所有这些`Get-IISAppPool | 启动-WebAppPool` (3认同)

k7s*_*s5a 9

你可以用它

如果您使用(PowerShell 2.0)导入WebAdministration模块

import-module WebAdministration
Run Code Online (Sandbox Code Playgroud)

请先检查应用程序池的状态.如果应用程序池已停止,则会出现异常.

停止应用程序池:

$applicationPoolName = 'DefaultAppPool'

if((Get-WebAppPoolState -Name $applicationPoolName).Value -ne 'Stopped'){
    Write-Output ('Stopping Application Pool: {0}' -f $applicationPoolName)
    Stop-WebAppPool -Name $applicationPoolName
} 
Run Code Online (Sandbox Code Playgroud)

启动应用程序池:

if((Get-WebAppPoolState -Name $applicationPoolName).Value -ne 'Started'){
    Write-Output ('Starting Application Pool: {0}' -f $applicationPoolName)
    Start-WebAppPool -Name $applicationPoolName
}
Run Code Online (Sandbox Code Playgroud)

权限:您必须是"IIS Admins"组的成员.

  • 除此之外,您的应用程序池可能无法启动它仍然停止.从"已启动"到"已停止"的转换不是即时的,因此您可能需要在脚本中添加一些超时/休眠以解决此问题. (3认同)

Ric*_*lay 5

如今,IISAdminstration模块已基本取代了WebAdministration。因此,如果您使用的是Windows 10 / Server 2016,则可以使用Get-IISAppPool

(Get-IISAppPool "name").Recycle()
Run Code Online (Sandbox Code Playgroud)


Mar*_*ndl 2

您必须WebAdministration使用Import-Module导入模块,然后可以使用Start-WebAppPoolStop-WebAppPool