列出重定向目的地(URL)IIS站点。

3

我在IIS 8.5中配置了几个重定向站点,现在想要列出它们。我尝试过:

.\appcmd.exe list site * -section:system.webServer/httpRedirect

但是使用 appcmd 命令时通配符无法正常工作。我也尝试了使用 WebAdministration 模块:
Get-WebConfiguration system.webServer/httpRedirect * | Get-Member destination

但这还不能满足我的需求,我需要的是一个包含站点和目的地两列的列表。
2个回答

4

这段代码将给您提供站点名称和HTTP重定向目的地:

Get-Website | select name,@{name='destination';e={(Get-WebConfigurationProperty -filter /system.webServer/httpRedirect -name "destination" -PSPath "IIS:\Sites\$($_.name)").value}}

仅获取目的地信息:

(Get-WebConfigurationProperty -filter /system.webServer/httpRedirect -name "destination" -PSPath 'IIS:\Sites\*').value

你好 - 虽然我很感激这个答案,而且我已经使用它很长时间了。但是当我对具有1000多个重定向的服务器运行这个小代码片段时,我开始遇到OOM错误。有什么想法可以改进它以避免出现OOM错误吗?@abhijith-pk - Alexander Meise

1
你可以参考下面的函数来解决这个问题。
Function Get-IISRedirectURLs { 
    [CmdletBinding()] 
    Param 
    ( 
        [Parameter(Mandatory=$false)][String]$SiteName 
    ) 

    If ([String]::IsNullOrEmpty($SiteName)) { 
        Get-Website | ForEach-Object { 
            $SiteName = $_.Name 
            $prop = Get-WebConfigurationProperty -filter /system.webServer/httpRedirect -name 'destination' -PSPath "IIS:\Sites\$SiteName" 
            Write-Host "$SiteName`t$($prop.value)" 
        } 

    } Else { 
        $prop = Get-WebConfigurationProperty -filter /system.webServer/httpRedirect -name 'destination' -PSPath "IIS:\Sites\$SiteName" 
        Write-Host "$SiteName`t$($prop.value)" 
    } 
} 

完整的示例存档,请从如何通过PowerShell列出IIS站点的重定向目标URL下载。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接