我正在尝试使用PowerShell迭代服务器列表并更改“ProcessModel”下的“MaxProcesses”值(在IIS中的应用程序池的高级设置中找到)
我已经想出了如何远程启动和停止应用程序池,但我似乎无法确定如何修改设置。
感谢您的帮助!
PS - 我正在使用Get-WmiObject构建$ appPool对象,我调用$ appPool.Stop()和$ appPool.Start()。任何使用此对象更新设置的方法,我将不胜感激!
答案 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
}