如何使用批处理文件获取IIS6中网站的根目录/主目录?
我的情景:
我正在创建一个工具来汇总和报告IIS中的网站。我正在使用批处理文件并运行iisweb / query来获取所有站点然后循环结果并使用iisvdir / query“Website Name”来获取虚拟目录。
然而,它必须向后兼容IIS6,我无法获取该网站的主目录。
答案 0 :(得分:2)
我认为您不能直接从批处理文件中执行此操作,但您应该可以从可以从批处理文件调用的vbscript执行此操作。
诀窍是使用IIS WMI provider,它允许您访问IIS元数据库。例如,下面的脚本应该回显本地服务器上每个虚拟目录的名称和路径。
set provider = GetObject("winmgmts://localhost/root/MicrosoftIISv2")
set results = provider.ExecQuery("SELECT Name,Path from IISWebVirtualDirSetting")
for each item in results
WScript.Echo item.Name
WScript.Echo item.Path
next
如果您将此脚本保存为 iispaths.vbs (仅作为示例),则可以从批处理文件中调用它:
cscript //nologo iispaths.vbs
不幸的是我无法访问带有IIS6的计算机,因此我暂时无法对此进行测试,但如果您在使用它时遇到任何问题,请随时在评论中告诉我并且我我会尽力解决这个问题。
答案 1 :(得分:1)
我没有IIS6服务器,但通过一些搜索,我发现:
%SystemRoot%\system32\inetsrv\MetaBase.xml
和%SystemRoot%\system32\inetsrv\MBSchema.xml
存储配置(The IIS Metabase (IIS 6.0)); Path
节点(根据XPath)提取IIsWebVirtualDir
属性。< / LI>
醇>
使用xmlstartlet,如下所示的命令将输出根路径:
xml sel -t -v "//IIsWebVirtualDir[@Location='/LM/W3SVC/1/ROOT']/@Path" "%SystemRoot%\system32\inetsrv\MetaBase.xml"
也许架构需要纠正。 这可以是命令行方法。我无法测试它,因为我没有任何IIS6服务器,也没有任何MetaBase.xml样本。