PowerShell获取IIS绑定的网站地址 2


IIS中每个网站可以绑定多个IP地址或者端口号,使用PowerShell可以获取这些配置的链接,并用来访问该网站。

要求

  • 如果一个网站有绑定的主机名或者域名,优先以域名作为域名。
  • 如果没有域名配置,以配置的绑定的IP地址作为主机名。
  • 如果IP地址未配置,则获取本机的IPV4地址作为主机名。
  • 如果端口为80端口,在网站地址中不予显示。

脚本

function Get-IISWebsiteUrl ([string]$name)
{
     (Get-Website $name).bindings.Collection | foreach{
     $bindingTokens = $_.bindingInformation -split ':'
     $siteHost=''
     $port=''
     $protocol=$_.protocol
     if($bindingTokens[2] -ne '')
     {
        $siteHost=$bindingTokens[2]
     }
     elseif($bindingTokens[0] -ne '*')
     {
       $siteHost=$bindingTokens[0]
     }
     else     
     {
        $siteHost = [net.dns]::GetHostAddresses('') | 
        where { $_.AddressFamily -eq 'InterNetwork'} | 
        select -ExpandProperty IPAddressToString  -First 1
     }
     
     if($bindingTokens[1] -eq '80')  { $port='' }
     else {$port = ":"+$bindingTokens[1]}
         
      '{0}://{1}{2}' -f $protocol,$siteHost,$port
    }    
}

测试

Get-IISWebsiteUrl -name 'PrivateMemory.CN' 
http://222.216.190.84:8082
https://www.pstips.net
http://222.216.190.81
本文链接: https://www.pstips.net/get-iiswebsiteurl.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

回复 明旭 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

2 条评论 “PowerShell获取IIS绑定的网站地址