Just a quicky: Start all stopped application pools in IIS that have the autostart property set to true. Easily with appcmd or the IISAppPool cmdlet that’s available in the IISAdministration PowerShell module. And here is how.

AppCmd supports the piping of commands. You can use the /xml parameter to generate XML formatted output, and pipe it through to the /in parameter. It reads and operates on the XML input.

This makes it ideal to pipe multiple Appcmd commands into a single command, for example to start all application pools that are in a stopped state but having the Autostart property.

appcmd list apppools /state:stopped /autostart:true /xml | appcmd start apppool /in

Here is an example for using Start-WebAppPool with Get-ChildItem to start all application pools with state “Stopped” (WebAdministration PowerShell module):

# if required: Import-Module WebAdministration
Get-ChildItem IIS:\AppPools | Where-Object { $_.autoStart -eq "True" -and $_.state -eq "Stopped" } | Start-WebAppPool

And using IISAdministration module:

Get-IISAppPool | ? { ($_.State -eq "Stopped") -And ($_.AutoStart -eq "True") } | %{ $_.Start() }

Start and recycle application pools using PowerShell Remoting

You can use Invoke-Command -ComputerName to start a session on a remote IIS web server, and use a ScriptBlock to start – or recycle for that matter – application pools:

Invoke-Command -ComputerName webServer -ScriptBlock {
	Get-IISAppPool | ? {
		($_.State -eq "Stopped") -And ($_.AutoStart -eq "True")
	} | %{ $_.Start() }
0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *