如何通过PowerShell远程更改IIS应用程序池设置?

时间:2016-01-18 19:21:09

标签: powershell iis

我正在尝试使用PowerShell迭代服务器列表并更改“ProcessModel”下的“MaxProcesses”值(在IIS中的应用程序池的高级设置中找到)

我已经想出了如何远程启动和停止应用程序池,但我似乎无法确定如何修改设置。

感谢您的帮助!

PS - 我正在使用Get-WmiObject构建$ appPool对象,我调用$ appPool.Stop()和$ appPool.Start()。任何使用此对象更新设置的方法,我将不胜感激!

3 个答案:

答案 0 :(得分:0)

这并未解决“远程更改”问题。部分;只有设置所需属性的命令:

import-module webadministration

# tell script where to look for appcmd.exe, else it gives a 'cmd not found' error
Set-Location %systemroot%\system32\inetsrv

.\appcmd.exe set apppool "NameOfYourAppPoolGoesHere" /processModel.maxprocesses:3

参考:https://www.iis.net/configreference/system.applicationhost/applicationpools/add/processmodel

答案 1 :(得分:0)

您可以使用此代码段:

$computerName = 'MyServerName'
$appPoolName = 'DefaultAppPool'

停止应用程序池:

Invoke-Command -ComputerName $computerName -args $appPoolName -ScriptBlock { 
    param($appPoolName) 
    # Check if application pool is already stopped
    if ((Get-WebAppPoolState -name $appPoolName).value -ne 'Stopped') {
        Stop-WebAppPool -Name $appPoolName
     } 
}

停止应用程序池:

Invoke-Command -ComputerName $computerName -args $appPoolName -ScriptBlock { 
   param($appPoolName) 
    # Check if application pool is already started
    if ((Get-WebAppPoolState -name $appPoolName).value -ne 'Started') {
        Start-WebAppPool -Name $appPoolName
     } 
}

答案 2 :(得分:0)

这应该可以完成设置maxProcesses(网络花园)设置的技巧。

$appPoolName = "SomeAppPool"
$maxProcesses = 4

Import-Module WebAdministration

$appPool = Get-ChildItem IIS:\AppPools\ | Where-Object { $_.Name -eq $appPoolName }
if($appPool)
{
   $appPool | Set-ItemProperty -Name "processModel.maxProcesses" -Value $maxProcesses
}