У меня есть сервер Windows 2003 под управлением IIS 6 и несколько сценариев, которые выполняют автоматическую настройку и создание веб-сайтов. Они не работают на новом сервере, который я могу ввести в эксплуатацию (они уже успешно работают на 3 других серверах W2K3). Кажется, проблема сводится к безопасности WMI на провайдере IIS. Приведенный ниже код ASP представляет проблему (хотя не исходный код вызывает проблему - это упрощенная демонстрация проблемы).
Set wmiProvider = GetObject("winmgmts:\\.\root\MicrosoftIISv2")
If wmiProvider is Nothing Then
Response.Write "Failed to get WMI provider MicrosoftIISv2<br>"
End If
Response.Write "Querying for IISWebService...<br>"
Set colItems = wmiProvider.ExecQuery("Select * From IISWebServer",,0)
Response.Write "Error: " & Hex(Err.Number) & " (" & Err.Description & ")<br>"
Если я запускаю это в своем браузере, я получаю сообщение об ошибке отказа в доступе после сообщения ExecQuery. Я установил WMI-доступ для пользователя IUSR_ из корневой ветки до конца. На самом деле, я вполне могу запросить информацию об IP-адресе с помощью поставщика CIMV2. Если я помещаю пользователя IUSR в группу администраторов компьютера, все это работает, но я не хочу этого делать.
Это должно быть проблема безопасности DCOM / WMI, но я не могу понять, что еще есть. Кто-нибудь может пролить свет?