2017-06-20 60 views
3

我有幾個在IIS 8.5中配置的重定向站點,我想列出它們全部。我試過了:列表重定向目標(URL)IIS站點

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

但通配符不能正常工作,與appcmd。我還從WebAdministration模塊嘗試:

Get-WebConfiguration system.webServer/httpRedirect * | Get-Member destination 

但是這也沒有提供我所需要的...這是與2列的列表網站&目的地

回答

4

這個片段會給你的網站名稱和httpredirect目的地:

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 
+0

真棒下載! –

+0

你好 - 雖然我很滿意這個答案,我一直在使用它很久。在針對具有1000多個重定向的服務器運行這一小段代碼時,我開始發生OOM錯誤。任何想法如何改善它,以便不會得到OOM錯誤? @阿濟斯-PK –

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)" 
    } 
} 

有關完整的樣品存檔,請從How to list redirect destination URLs of IIS sites by PowerShell