IIS auto-generated 列出所有托管网站的网页
IIS auto-generated webpage listing all websites being hosted
基本上就是标题所说的。是否有 feature-of/addon-for IIS 允许在单个网页中显示一个列表,其中包含指向 IIS 中托管的网站的链接?
我知道我可以通过以下方式从命令行获取上述列表:
%windir%\system32\inetsrv\appcmd list site > c:\sites.xls
这将创建一个 Excel 电子表格,其中包含 IIS 中的站点列表 + 每个站点的站点相关信息。
但之后我将不得不解析 CSV 文件并将其转换为 html。这会起作用,但如果已经有完全相同的功能或插件,我宁愿完全避开它。
您可以为此使用 Powershell:您可以遍历 IIS 站点、虚拟目录、Web 应用程序并动态构建一个简单的 html 页面。
这是一个简单的脚本,它创建一个 html 文件,其中包含指向每个虚拟目录或 Web 应用程序的链接列表。这只是一个基本脚本,您可以对其进行自定义并添加更多详细信息:
#Import WebAdministration to manage IIS contents
Import-Module WebAdministration
#define a variable that will hold your html code
$html = "<html>`n<body>"
#define the root path of your sites (in this example localhost)
$rootFolder = "http://localhost"
$Websites = Get-ChildItem IIS:\Sites
#loop on all websites inside IIS
foreach($Site in $Websites)
{
$VDirs = Get-WebVirtualDirectory -Site $Site.name
$WebApps = Get-WebApplication -Site $Site.name
#loop on all virtual directories
foreach ($vdir in $VDirs )
{
$html += "`n<a href='" + $rootFolder + $vdir.path +"'>" + $vdir.path + "</a><br/>"
}
#loop on all web applications
foreach ($WebApp in $WebApps)
{
$html += "`n<a href='" + $rootFolder + $WebApp.path +"'>" + $WebApp.path + "</a><br/>"
}
}
#add final tags to html
$html += "`n</body>`n</html>"
#write html code to file
$html >> "d:\sites.html"
例如使用此 IIS 结构:
你得到以下 html:
<html>
<body>
<a href='http://localhost/vd'>/vd</a><br/>
<a href='http://localhost/test'>/test</a><br/>
<a href='http://localhost/test2'>/test2</a><br/>
</body>
</html>
呈现如下:
基本上就是标题所说的。是否有 feature-of/addon-for IIS 允许在单个网页中显示一个列表,其中包含指向 IIS 中托管的网站的链接?
我知道我可以通过以下方式从命令行获取上述列表:
%windir%\system32\inetsrv\appcmd list site > c:\sites.xls
这将创建一个 Excel 电子表格,其中包含 IIS 中的站点列表 + 每个站点的站点相关信息。
但之后我将不得不解析 CSV 文件并将其转换为 html。这会起作用,但如果已经有完全相同的功能或插件,我宁愿完全避开它。
您可以为此使用 Powershell:您可以遍历 IIS 站点、虚拟目录、Web 应用程序并动态构建一个简单的 html 页面。
这是一个简单的脚本,它创建一个 html 文件,其中包含指向每个虚拟目录或 Web 应用程序的链接列表。这只是一个基本脚本,您可以对其进行自定义并添加更多详细信息:
#Import WebAdministration to manage IIS contents
Import-Module WebAdministration
#define a variable that will hold your html code
$html = "<html>`n<body>"
#define the root path of your sites (in this example localhost)
$rootFolder = "http://localhost"
$Websites = Get-ChildItem IIS:\Sites
#loop on all websites inside IIS
foreach($Site in $Websites)
{
$VDirs = Get-WebVirtualDirectory -Site $Site.name
$WebApps = Get-WebApplication -Site $Site.name
#loop on all virtual directories
foreach ($vdir in $VDirs )
{
$html += "`n<a href='" + $rootFolder + $vdir.path +"'>" + $vdir.path + "</a><br/>"
}
#loop on all web applications
foreach ($WebApp in $WebApps)
{
$html += "`n<a href='" + $rootFolder + $WebApp.path +"'>" + $WebApp.path + "</a><br/>"
}
}
#add final tags to html
$html += "`n</body>`n</html>"
#write html code to file
$html >> "d:\sites.html"
例如使用此 IIS 结构:
你得到以下 html:
<html>
<body>
<a href='http://localhost/vd'>/vd</a><br/>
<a href='http://localhost/test'>/test</a><br/>
<a href='http://localhost/test2'>/test2</a><br/>
</body>
</html>
呈现如下: