簡體   English   中英

如何通過PowerShell遠程更改IIS應用程序池設置?

[英]How to remotely change IIS Application Pool setting via PowerShell?

我正在嘗試使用PowerShell遍歷服務器列表並更改“ ProcessModel”(在IIS中的“應用程序池”的“高級設置”中找到)下的“ MaxProcesses”值

我已經弄清楚了如何遠程啟動和停止應用程序池,但是我似乎無法確定如何修改設置。

感謝您的幫助!

PS-我正在使用Get-WmiObject構建$ appPool對象,在這里我將其稱為$ appPool.Stop()和$ appPool.Start()。 任何使用此對象更新設置的方法,也將不勝感激!

這沒有解決“遠程更改”部分; 只有命令來設置所需的屬性:

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

您可以使用以下代碼段:

$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
     } 
}

這應該可以完成設置maxProcesses(webgarden)設置的技巧。

$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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM