如何使用批处理文件在IIS6中获取网站的根/主目录??
My场景:
我正在创建一个工具来总结和报告IIS中的站点。我使用批处理文件和运行iisweb /query来获取所有站点,然后遍历结果,并使用iisvdir /query“网站名称”获取虚拟目录。
然而,它必须是向后兼容的IIS6和我有困难,获得家庭目录的网站。
发布于 2013-07-24 12:05:37
我不认为您可以直接从批处理文件中完成这个任务,但是您应该能够通过一个vbscript从一个批处理文件调用它。
诀窍是使用IIS提供程序,它允许您访问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访问一台机器,所以目前我无法测试它,但是如果您有任何问题让它工作,请在评论中告诉我,我会尽力解决这个问题。
发布于 2013-07-29 13:37:17
但是,我没有IIS6服务器,但是通过一些搜索,我发现:
%SystemRoot%\system32\inetsrv\MetaBase.xml和%SystemRoot%\system32\inetsrv\MBSchema.xml来存储配置(IIS元数据库(IIS 6.0));IIsWebVirtualDir节点(根据Metabase结构)提取Path属性。使用xmlstartlet,下面这样的命令将输出根路径:
xml sel -t -v "//IIsWebVirtualDir[@Location='/LM/W3SVC/1/ROOT']/@Path" "%SystemRoot%\system32\inetsrv\MetaBase.xml"也许模式需要纠正。这可以是命令行方法。我无法测试它,因为我没有任何IIS6服务器,也无法获得任何MetaBase.xml示例。
https://stackoverflow.com/questions/17653234
复制相似问题