To extract all the bindings froma running iis6 server the easiest way is to:
1) Create the XSL file
Save this XSLT file as metabase.xsl:
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:out="urn:microsoft-catalog:XML_Metabase_V64_0"> <xsl:output method="html" /> <xsl:template match="/"> <html> <body> <table border="1"> <xsl:for-each select="//out:IIsWebServer"> <tr> <td><xsl:value-of select="@ServerComment" /></td> <td><xsl:value-of select="@ServerBindings" /></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>2) Tell metabase to use the XSL
Copy the metabase in a safe place (do not edit it in place) in the same folder where you saved metabase.xsl
Metabase usually sits on folder: C:\Windows\System32\Inetsrv
Edit the second line and add this:
<?xml-stylesheet type="text/xsl" href="metabase.xsl"?>
3) Open metabase.xml with you browser
Opening metabase now will show you all bindings in a nice table.
You may copy/paste in excel if you like.
Thanks, just what I was looking for.
ReplyDeleteHere's a version that also lists virtual dirs with app pool and disk path:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:out="urn:microsoft-catalog:XML_Metabase_V64_0">
<xsl:output method="html" />
<xsl:template match="/">
<html>
<body>
<table border="1">
<xsl:for-each select="//out:IIsWebServer">
<tr>
<td><xsl:value-of select="@ServerComment" /></td>
<td><xsl:value-of select="@ServerBindings" /></td>
<td>
<xsl:variable name="virtualDirName" select="concat(@Location,'/root')"/>
<xsl:for-each select="//out:IIsWebVirtualDir">
<xsl:if test="contains(@Location, $virtualDirName)">
<xsl:value-of select="@AppFriendlyName" /> : <xsl:value-of select="@AppPoolId" /> : <xsl:value-of select="@Path" /> ::::
</xsl:if>
</xsl:for-each>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>