Мне нужно удаленно управлять своим IIS7 (Windows Server 2008) с помощью WMI IIS6 API. Итак, я добавил Совместимость с IIS6 WMI и Совместимость с метабазой IIS6 роли для доступа к корень \ MicrosoftIIsv2 пространство имен.
У меня есть учетная запись домена, которая не является администратором на удаленном компьютере; с этим правом все ок.
Я настроил эти права для своей учетной записи домена для доступа к root\MicrosoftIIsv2
Пространство имен WMI удаленно; обратите внимание, что эти права отлично работают на IIS6 и Windows Server 2003 :
DCOM:
WMI:
Метабаза IIS (обозреватель метабазы):
Я также пытался предоставить доступ к C: \ Windows \ System32 \ inetsrv; не знаю, нужно ли.
Моя проблема:
Я не могу перечислить веб-сайты IIS (\ root \ MicrosoftIISv2: IIsWebServerSetting.Name = "W3SVC / *"). Я не получаю сообщение «Доступ запрещен», но ничего не возвращается.
Get-WmiObject IIsComputer -namespace "ROOT\MicrosoftIISv2" -authentication PacketPrivacy | SELECT *
Get-WmiObject IIsWebServerSetting -namespace "ROOT\MicrosoftIISv2" -authentication PacketPrivacy | SELECT ServerComment
FI: Я получил предупреждающее событие 5605 с правами администратора или нет, это, похоже, не влияет:
Пространство имен root \ MicrosoftIISv2 помечено флагом RequiresEncryption. В доступе к этому пространству имен может быть отказано, если сценарий или приложение не имеют соответствующего уровня проверки подлинности. Измените уровень аутентификации на Pkt_Privacy и снова запустите скрипт или приложение.
Хорошо, у меня есть дополнительная информация, когда я использую Обозреватель метабазы IIS 6 с моей учетной записью администратора я вижу, что права правильно унаследованы для моей учетной записи без прав администратора.
Но когда я пытаюсь подключиться, используя свою учетную запись без прав администратора, Я могу перечислить LM
узел, но получить "доступ запрещен, не удалось получить данные ключа" когда я пытаюсь просмотреть дочерние узлы.
Буду проверять дальше.
Я попытался отследить активность WMI, и все вроде нормально; это подтверждает, что проблема заключается в правах IIS.
Решено.
Права WMI и IIS Metabase должны быть установлены так же, как и в IIS 6. Так что они были правильными для меня.
Специфика находится в метабазе IIS. Во-первых, в IIS 7 W3SVC
права полностью наследуются от корня, а вы должны установить W3SVC/AppPools
права на IIS 6, если вы хотите обрабатывать пулы приложений.
Поскольку существует «совместимость», основное отличие заключается в файловой системе метабазы IIS 7. В IIS 6 права чтения для папки inetsrv (по умолчанию для Users
) и списков ACL Metabase.
В IIS 7 должны быть установлены права для метабазы IIS И папки конфигурации IIS 7: %SYSTEMROOT%/system32/inetsrv/config
(и .config файлы тогда). По умолчанию только Administrators
(поэтому он отлично работает с правами администратора), и некоторые другие зарезервированные группы могут получить доступ к этой папке.
Еще один момент, если вам нужно выполнить такие методы, как Stop
в пуле приложений для этой функции требуется Напишите права на папку конфигурации.