簡體   English   中英

IIS6 bat文件 - 主目錄

[英]IIS6 bat file - Home Directory

如何使用批處理文件獲取IIS6中的網站的根目錄/主目錄?

我的場景:

我正在創建一個工具來匯總和報告IIS中的站點。 我正在使用批處理文件並運行iisweb / query來獲取所有站點然后循環結果並使用iisvdir / query“Website Name”來獲取虛擬目錄。

但是它必須向后兼容IIS6,我無法獲取該站點的主目錄。

我不認為您可以直接從批處理文件中執行此操作,但您應該能夠從可以從批處理文件調用的vbscript執行此操作。

訣竅是使用IIS WMI提供程序 ,它允許您訪問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的計算機,因此我暫時無法對此進行測試,但如果您在使用它時遇到任何問題,請隨時在評論中告訴我,我會做我的最好解決這個問題。

我沒有IIS6服務器,但通過一些搜索,我發現:

  1. IIS6使用%SystemRoot%\\system32\\inetsrv\\MetaBase.xml%SystemRoot%\\system32\\inetsrv\\MBSchema.xml存儲配置( IIS元數據庫(IIS 6.0) );
  2. 如果您的服務器沒有經常更改主目錄,那么應該更新那些xml;
  3. 使用命令行解析器(如xmlstartlet ),您可以使用XPathIIsWebVirtualDir節點(根據Metabase Structure )提取Path屬性。

使用xmlstartlet,如下所示的命令將輸出根路徑:

xml sel -t -v "//IIsWebVirtualDir[@Location='/LM/W3SVC/1/ROOT']/@Path" "%SystemRoot%\system32\inetsrv\MetaBase.xml"

可能需要糾正架構。 這可以是命令行方法。 我無法測試它,因為我沒有任何IIS6服務器也不能獲得任何MetaBase.xml示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM