Как использовать тип перечисления в PowerShell при настройке IIS с помощью оснастки PowerShell

Я использую оснастку IIS Powershell для настройки нового веб-приложения с нуля. Я новичок в PS. Следующий сценарий не будет работать, поскольку PS не распознает перечисление ManagedPipelineMode. Если я изменю значение на 0, он будет работать. Как я могу заставить PS понять th enum. Я попробовал командлет Add-Type, а также загрузил сборку Microsoft.Web.Administration без каких-либо проблем, теперь эти строки прокомментированы.

Как я могу заставить этот сценарий PS работать с перечислением?

#Add-Type -AssemblyName Microsoft.Web.Administration
#[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")
Import-Module WebAdministration

$AppPoolName = 'Test AppPool'

if ((Test-Path IIS:\apppools\$AppPoolName) -eq $false) {
    Write-Output 'Creating new app pool ...'
    New-WebAppPool -Name $AppPoolName
    $AppPool = Get-ChildItem iis:\apppools | where { $_.Name -eq $AppPoolName}
    $AppPool.Stop()
    $AppPool | Set-ItemProperty -Name "managedRuntimeVersion" -Value "v4.0"
    $AppPool | Set-ItemProperty -Name "managedPipelineMode" -Value [Microsoft.Web.Administration.ManagedPipelineMode]::Integrated
    $AppPool.Start()

}

Сообщение об ошибке:

Set-ItemProperty: [Microsoft.Web.Administration.ManagedPipelineMode] :: Integrated не является допустимым значением для Int32.

9
задан James C. 27 February 2018 в 11:33
поделиться