2015-02-11 3 views
0

У меня есть vbscript, который я написал несколько лет назад, в котором перечислены все сайты на сервере IIS с различными атрибутами. Я пытаюсь изменить это, чтобы также указать путь (ы) каждого виртуального каталога, но ни «приложение», ни «applicationcollection» не представляют собой дочерний элемент элемента сайта. Я просмотрел документацию MS, но их примерный код показывает только добавление приложений, а не их перечисление.Как перечислить виртуальные каталоги IIS с помощью vbscript

Это то, что я до сих пор:

Set adminManager = Wscript.createObject("Microsoft.ApplicationHost.WritableAdminManager") 
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST" 
Set sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST") 
Set sitesCollection = sitesSection.Collection 
For siteCount = 0 To CInt(sitesCollection.Count)-1 
    Set siteElement = sitesCollection(siteCount) 

'Various other bits here.... 

'Then this line doesn't work. I can't figure out how to reference the application 
Set appCollection = siteElement.ChildElements.Item("applicationCollection").Collection 
Next 

Может кто-то должность некоторый пример VBScript для перечисления виртуальных каталогов на сайте?

+0

http://serverfault.com/questions/107619/how-do-i-get-a-list-of-websites-from-iis-showing-the -host-header-value-descript - я тестировал это до Windows 2012 - он работает. – Damien

+0

Спасибо, я видел этот сценарий раньше, но у него есть пара проблем - во-первых, он использует WMI, поэтому для установки IIS6 WMI требуется установить совместимость с IIS6, которая недоступна на машинах, с которыми я работаю. Во-вторых, он перечисляет только основной путь каждого сайта, а не другие виртуальные каталоги. Я бы хотел использовать администратор администратора, как в моем сценарии выше. Я могу получить все остальные атрибуты. Я просто не могу понять, как обращаться к приложениям или виртуальным каталогам. – Vershner

ответ

0

В конце концов выяснилось это, с помощью очень полезного IIS Configuration Reference. Это теперь отображает "[приложение] physicalpath"

Set siteCollection = siteElement.Collection 
spath = "" 
For appCount = 0 To CInt(siteCollection.Count)-1 
    Set appElement = siteCollection.Item(appCount) 
    Set appCollection = appElement.Collection 
    For vdCount = 0 To CInt(appCollection.Count)-1 
    Set vdElement = appCollection.Item(vdCount) 
    spath = spath & "[" & CStr(appElement.Properties.Item("path").Value) & "] " & CStr(vdElement.Properties.Item("physicalPath").Value) & VbCrLf 
    Next 

Next