Tôi đã được kịch bản cấu hình của phiên bản IIS 7.5 của chúng tôi và thông qua các bit và mẩu của các tập lệnh người khác mà tôi đã đưa ra một cú pháp mà tôi thích:
$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
}
Tôi đã thấy điều này đã thực hiện một số cách khác nhau ít ngắn gọn hơn và tôi thích cách cú pháp thiết lập các thuộc tính đối tượng này trông giống như những gì tôi thấy trên TechNet :
Set-ItemProperty 'IIS:\AppPools\DemoPool' -Name recycling.periodicRestart.requests -Value 100000
Một điều tôi chưa thể tìm ra là làm thế nào để thiết lập lịch trình tái chế bằng cú pháp này.
Lệnh này đặt ApplicationPoolDefaults nhưng xấu:
add-webconfiguration system.applicationHost/applicationPools/applicationPoolDefaults/recycling/periodicRestart/schedule -value (New-TimeSpan -h 1 -m 30)
Tôi đã thực hiện điều này trong quá khứ thông qua appcmd bằng cách sử dụng một cái gì đó như sau nhưng tôi thực sự muốn làm tất cả những điều này thông qua powershell:
%appcmd% set apppool "BusinessUserApps" /+recycling.periodicRestart.schedule.[value='01:00:00']
Tôi đã thử:
$WebAppPool.recycling.periodicRestart.schedule = (New-TimeSpan -h 1 -m 30)
Điều này có tác dụng kỳ lạ khi biến thuộc tính .schedule thành thời gian cho đến khi tôi sử dụng $ WebAppPool = get-item iis: \ AppPools \ AppPoolName để làm mới biến.
Ngoài ra còn có $WebappPool.recycling.periodicRestart.schedule.Collection
nhưng không có hàm add () trên bộ sưu tập và tôi không tìm thấy cách nào khác để sửa đổi nó.
Có ai biết cách tôi có thể đặt thời gian tái chế theo lịch trình bằng cú pháp phù hợp với mã tôi đã viết ở trên không?