【发布时间】:2011-11-02 22:52:33
【问题描述】:
我正在使用 IIS Powershell 管理单元从头开始配置新的 Web 应用程序。我是PS新手。以下脚本将不起作用,因为 PS 无法识别 ManagedPipelineMode 枚举。如果我将值更改为 0,它将起作用。我怎样才能让 PS 理解枚举。我尝试了 Add-Type cmdlet 并且还加载了 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 的有效值。
【问题讨论】:
-
AppPool.Stop 和 Apppool.Start 是否总是必要的?我现在正在创建 Webapppool 创建。所以我想知道它的意义
-
有完整源代码示例的最终解决方案吗?
标签: iis-7 powershell