3

我正在使用 PowerShell 自动部署网站,最近发现 AppPool 设置无法使用 PS 进行设置。或者至少我没有设法找出如何去做。

$appPool = $serverManager.ApplicationPools.Add($sitename)...

我需要将“私有内存限制”设置为某个值,但看起来ApplicationPoolApplicationPoolRecycling对象中没有这样的属性。

有人知道这个问题的解决方法吗?

4

3 回答 3

9

此脚本使用Get-WebconfigurationSet-WebConfiguration来获取所有应用程序池的私有内存值。您可以单独设置每个或设置应用程序池默认值以使其继承。我已经注释掉了实际执行该集合的行。

import-module webadministration

$applicationPoolsPath = "/system.applicationHost/applicationPools"
$applicationPools = Get-WebConfiguration $applicationPoolsPath

foreach ($appPool in $applicationPools.Collection)
{
    $appPoolPath = "$applicationPoolsPath/add[@name='$($appPool.Name)']"
    Get-WebConfiguration "$appPoolPath/recycling/periodicRestart/@privateMemory" 
    # Set-WebConfiguration "$appPoolPath/recycling/periodicRestart/@privateMemory" -Value 1000
}
于 2012-06-25T10:27:08.683 回答
4

我正在添加一个答案,因为我无法使用现有的。

import-module webadministration
$applicationPools = Get-ChildItem IIS:\AppPools

foreach ($appPool in $applicationPools){
Set-ItemProperty IIS:\AppPools\$appPool.name `
-Name recycling.periodicrestart.privateMemory -Value 7000000
}
于 2015-05-15T17:45:17.997 回答
0

您的回复帮助我找到了解决我在 WSUS 服务器上遇到的问题的方法。我知道这WsusPool是给我带来问题的应用程序池大小,所以我制作了以下 PS 脚本并将其应用于OU我的WSUS服务器的根目录(我有 3 个)我收到连接错误并且我的选项Reset Server Node没有帮助。事件查看器的事件 ID 为 12002、12012、12032、12022、12042、12052 和 12072。

Set-WebConfiguration "/system.applicationHost/applicationPools/add[@name='WsusPool']/recycling/periodicRestart/@privateMemory" -Value 0
于 2018-09-12T16:13:36.777 回答