CruelCrow
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Вот столкнулся с такой проблемой... Задача: Есть веб-сервер в домене. Я пишу для него скрипт на с#/asp.net, который должен с помощью WMI/Win32 подключиться к удалённому компьютеру и получить с него данные о системе (память, процессор, ОС и т.п.). Код: Код: ManagementScope scope = new ManagementScope("\\\\" + compName + "\\root\\cimv2"); scope.Connect(); | После последней строки сервер возвращает ошибку "Access is Denided" (0x80070005) и ссылается на то, что пользовталь ASPNET не находится в группе администраторов. Ни добавление ASPNET в группу администраторов сервера, ни в группу администраторов удалённого компьютера не помогает. Если я добавляю в вышприведённый код данные доменного адиминистратора, то всё начинает работать и нужные данные передаются на сервер. Т.е. так: Код: ConnectionOptions options = new ConnectionOptions(); options.Username = "domain_admin"; options.Password = "12345"; ManagementScope scope = new ManagementScope("\\\\" + compName + "\\root\\cimv2", options); scope.Connect(); | В связи с этим возникают вопросы: 1. Как без ввода данных доменного админа заставить программу работать? 2. Если сделать этого нельзя или просто проблематимчно, то как наиболее безопасно запросить у пользователя данные? В идеале - выдать окно со стандартным домменым запросом имени и пароля. 2.1 Другой вариант - как передать в переменные options.Username и options.Password данные уже залогиненного пользователя? Я пробовал добавлять строку options.Impesonation = ImpersonationLevel.Impersonate, которая, в теории должна форсировать запрос данных, но этого не происходит. |