适用于 IIS 7.0 的 PowerShell 管理单元 IIsProviderSnapIn 与 WebAdministration

适用于 IIS 7.0 的 PowerShell 管理单元 IIsProviderSnapIn 与 WebAdministration

我正在尝试安装适用于 IIS 7.0 的 Windows PowerShell 管理单元在运行 Server 2008 并安装了 Service Pack 2 的服务器上,所以我可以使用 snappin WebAdministration

安装时出现错误

已安装该产品的另一个版本。无法继续安装此版本。配置或删除该产品的现有版本。

Get-PSSnapin 和 Get-Module -ListAvailable 均未显示WebAdministration,但我确实IIsProviderSnapIn列出了。此外,作为对在 Windows 2008 R1 上使用 PowerShell 2 和模块进行 IIS 管理返回 False。

这是的旧版本吗WebAdministration

它是否在“程序和功能”下列为“适用于 IIS 7.0 的 Microsoft Windows PowerShell 提供程序”?如果是,我可以安全地卸载它,然后从原始链接安装 PowerShell 管理单元吗?

(或者,我可以使用 IIsProviderSnapIn 来获取所有当前正在运行的站点的列表,就像我对Get-WebsiteinWebAdministration模块所做的那样?)

答案1

虽然我仍然不确定该IIsProviderSnapIn管理单元与什么相比WebAdministration,但我最终得到了一个修改版本的答案 https://stackoverflow.com/questions/1924217/powershell-load-webadministration-in-ps1-script-on-both-iis-7-and-iis-7-5
如果可用则加载WebAdministration管理单元或模块,否则使用IIsProviderSnapIn

$iisVersion = Get-ItemProperty "HKLM:\software\microsoft\InetStp"
$useIISProviderSnappin = $False

if ($iisVersion.MajorVersion -eq 7)
{
    if ($iisVersion.MinorVersion -ge 5)
    {
        Import-Module WebAdministration
    }           
    else
    {

        if(Get-PSSnapIn -Registered | Where {$_.Name -eq "WebAdministration"}) 
        {
            if (-not (Get-PSSnapIn | Where {$_.Name -eq "WebAdministration"})) 
            {
                Add-PSSnapIn WebAdministration
            }
        }
        elseif(Get-PSSnapIn -Registered | Where {$_.Name -eq "IIsProviderSnapIn"})
        {
            #older versions of server 2008 don't have the webadministration module!
            if (-not (Get-PSSnapIn | Where {$_.Name -eq "IIsProviderSnapIn"})) 
            {
                Add-PSSnapIn IIsProviderSnapIn
            }

            $useIISProviderSnappin = $True
        }
        else 
        {
            throw "Unable to import any suitable modules... :( "
        }
    }
}

Function Get-IISWebsite()
{
    if($useIISProviderSnappin)
    {
        return dir iis:\sites
    }
    else
    {
        return Get-Website
    }
}

相关内容