Add-WebConfiguration의 추악한 구문에 의존하지 않고 IIS 응용 프로그램 풀 재활용 시간을 어떻게 설정할 수 있습니까?


9

나는 우리의 IIS 7.5 인스턴스의과를 통해 구성 스크립팅 된 비트 와 내가 좋아하는 구문을 마련 가진 다른 사람들 스크립트의 조각 :

$WebAppPoolUserName = "domain\user"
$WebAppPoolPassword = "password"

$WebAppPoolNames = @("Test","Test2")

ForEach ($WebAppPoolName in $WebAppPoolNames ) {
    $WebAppPool = New-WebAppPool -Name $WebAppPoolName  
    $WebAppPool.processModel.identityType = "SpecificUser"
    $WebAppPool.processModel.username = $WebAppPoolUserName
    $WebAppPool.processModel.password = $WebAppPoolPassword
    $WebAppPool.managedPipelineMode = "Classic"
    $WebAppPool.managedRuntimeVersion = "v4.0"
    $WebAppPool | set-item
}

나는 이것이 덜 간결한 여러 가지 방법을 수행하는 것을 보았고 TechNet에서 보는 것과 비슷한 객체 속성 설정 구문이 보이는 방식을 좋아합니다 .

Set-ItemProperty 'IIS:\AppPools\DemoPool' -Name recycling.periodicRestart.requests -Value 100000

내가 알아낼 수 없었던 한 가지는이 구문을 사용하여 재활용 일정을 설정하는 방법입니다.

이 명령은 ApplicationPoolDefaults를 설정하지만 추악합니다.

add-webconfiguration  system.applicationHost/applicationPools/applicationPoolDefaults/recycling/periodicRestart/schedule -value (New-TimeSpan -h 1 -m 30)

과거에 다음과 같은 것을 사용하여 appcmd를 통해이 작업을 수행했지만 powershell을 통해이 모든 작업을 실제로하고 싶습니다.

%appcmd% set apppool "BusinessUserApps" /+recycling.periodicRestart.schedule.[value='01:00:00']

나는 시도했다 :

$WebAppPool.recycling.periodicRestart.schedule = (New-TimeSpan -h 1 -m 30)

$ WebAppPool = get-item iis : \ AppPools \ AppPoolName을 사용하여 변수를 새로 고칠 때까지 .schedule 속성을 시간 범위로 바꾸는 이상한 효과가 있습니다.

또한 $WebappPool.recycling.periodicRestart.schedule.Collection 컬렉션에 add () 함수가 없으며 수정하는 다른 방법을 찾지 못했습니다.

위에서 작성한 코드와 일치하는 구문을 사용하여 예약 된 재활용 시간을 설정할 수있는 방법을 아는 사람이 있습니까?


알아 낸 적 있어요?
JohannesH

답변:


10

객체 자체에서 이것을 설정하는 방법을 알 수 없었지만 객체를 만든 후에는 다음과 같이 작동합니다.

clear-ItemProperty IIS:\AppPools\MyPoolName -Name Recycling.periodicRestart.schedule #clear values
set-ItemProperty IIS:\AppPools\MyAppPoolName -Name Recycling.periodicRestart.schedule -Value @{value="00:00:00"} #to set it to midnight

이것은 나를 위해 작동합니다.
jonnii

0

그래서뿐만 아니라

$webapppool.recycling.periodicrestart.schedule -Value "01:30:00" 

그때? 아니면 TimeSpan과 동등한 ToString?

(나는 PowerShell이 ​​아니라 다른 비트를 기반으로 한 구문 추측입니다).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.