如何使用批處理文件在IIS6中獲取網站的根目錄/主目錄?IIS6 bat文件 - 主目錄
我的情景:
我創建總結和IIS站點的報告工具。我正在使用批處理文件並運行iisweb/query來獲取所有網站,然後遍歷結果並使用iisvdir/query「Website Name」獲取虛擬目錄。
但是它必須與IIS6向後兼容,並且無法獲取該網站的主目錄。
如何使用批處理文件在IIS6中獲取網站的根目錄/主目錄?IIS6 bat文件 - 主目錄
我的情景:
我創建總結和IIS站點的報告工具。我正在使用批處理文件並運行iisweb/query來獲取所有網站,然後遍歷結果並使用iisvdir/query「Website Name」獲取虛擬目錄。
但是它必須與IIS6向後兼容,並且無法獲取該網站的主目錄。
我不認爲你可以直接從批處理文件中做到這一點,但你應該可以從一個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的機器上,所以目前我無法測試這個功能,但如果你在啓動時遇到任何問題,請在評論中告訴我,我會盡我所能解決問題。
非常感謝 –
我沒有IIS6服務器,但是,經過一番搜索,我發現:
%SystemRoot%\system32\inetsrv\MetaBase.xml
和%SystemRoot%\system32\inetsrv\MBSchema.xml
存儲配置(The IIS Metabase (IIS 6.0));IIsWebVirtualDir
(根據Metabase Structure)節點提取Path
屬性,使用XPath。隨着xmlstartlet,像下面的命令時,將輸出根路徑:
xml sel -t -v "//IIsWebVirtualDir[@Location='/LM/W3SVC/1/ROOT']/@Path" "%SystemRoot%\system32\inetsrv\MetaBase.xml"
也許模式需要被校正。 這可以是一種命令行方式。我無法測試它,因爲我沒有任何IIS6服務器,我也無法獲得任何MetaBase.xml示例。
我可以確認該文件可用於iis6。我選擇了其他答案,因爲它不需要任何安裝或任何東西。 –
所以我想你需要它與IIS6和IIS7一起工作?我們可以忽略IIS5嗎?你已經有了確定IIS版本的方法嗎? – RGuggisberg
發佈你到目前爲止所以我們沒有猜測。 – RGuggisberg
@Ruggisberg - 它只是IIS6和IIS7。該版本由每臺服務器上的配置數據庫設置。在IIS7中,我可以獲得所需的所有詳細信息,但在IIS6中我無法獲得。我可以使用iisweb/query和使用iisvdir/query的虛擬目錄來獲取名稱和綁定。但我無法獲取網站的主目錄。 –