Я хочу получить имя анонимной учетной записи пользователя для установки 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.