Назад | Перейти на главную страницу

получить имя учетной записи для анонимного пользователя IIS

Я хочу получить имя анонимной учетной записи пользователя для установки IIS. Достаточно легко предположить, что это имя машины, но в случае, если имя машины изменилось, я все равно хотел бы знать, что это такое. В конце концов, я хотел бы иметь возможность поместить это в файл bat или vbscript, который я использую для развертывания веб-сайта.

Я почерпнул из MSDN следующее:

dim schemaObject: set schemaObject = GetObject("IIS://localhost/schema/anonymoususername")
dim schemaObjectType: schemaObjectType = schemaObject.syntax
WScript.Echo( schemaObjectType )

GetObject () возвращает IISSchemaObject, но какое свойство представляет само имя? Это не очевидно, и я не нашел много документации.

В качестве альтернативы, есть ли способ вызвать сценарий adsutil и вернуть только интересующее вас значение?

cscript adsutil.vbs get w3svc/anonymoususername
anonymoususername          : (STRING) "IUSR_SERVER-NAME"

Мне нужен только IUSR_SERVER-NAME

Что плохого в том, чтобы смотреть на переменную окружения% COMPUTERNAME% и предварительно ожидающий IUSR_?

ADSUtil просто использует GetObject под прикрытием (IIS представлен как разнообразный поставщик ADSI), поэтому вы можете просто настроить таргетинг на интересующее вас свойство (если знаешь путь) с чем-то вроде

set oSite = GetObject("IIS://localhost/W3SVC/1/ROOT")
Wscript.echo oSite.AnonymousUserName

для веб-сайта по умолчанию или это (как в приведенном выше примере) для настройки уровня окна.

set oMasterSite = GetObject("IIS://localhost/W3SVC")
Wscript.echo oMasterSite.AnonymousUserName

При этом важно отметить, что анонимное имя пользователя может быть сброшено практически на любом уровне папки в иерархии IIS.