-
Разрабатывается служба, которая осуществляет подключение к WMI удаленного компьютера. Известны логин/пароль на удаленном компьютере. В GUI приложении все отлично работает, информация получается. Сервис же не хочет никак коннектиться. Выяснилось, что WMI работает от имени той учетной записи, под которой было запущено приложение. GUI запускается под учетной записью пользователя, имеющего доступ в сеть. Служба запускается от имени SYSTEM, который, как известно, по-умолчанию только локальный.
Вопрос: Как мне в службе перед подключением к WMI поиметь права пользователя, имя и пароль которого я бы заранее указал?
-
а не проще запустить службу от имени имеющего права? "стандартные" виндовые службы так же запускаются от какого то net юзера...
-
Заработало-таки.
> виндовые службы так же запускаются от какого то net юзера.
Запускаются они от системной учетной записи NT AUTHORITY\NetworkService. Пароль пустой.
Если делать иначе, пришлось при установке заставлять юзера задавать учетку, от которой можно запустить службу, с правами входа в сеть, что не есть гут.
-
Поспешил радоваться... В общем, для WMI этот случай не прокатил на реальных компьютерах, а не на виртуалках. Долгие чтения форумов привели к вердикту: WMI может работать только под админской учеткой. Поэтому служба должна запускаться от имени такой учетной записи. Либо перед подключением к WMI каким-то образом поиметь такие права. Как решается последнее - открытый вопрос.
-
> не прокатил на реальных компьютерах, а не на виртуалках
А какая принципиальная разница между "реалкой" и "виртуалкой" ? Никакой, думаю)
-
> Сергей М. (22.09.2009 21:10:04) [4]
И какая разница под какой учеткой запускается служба, все равно это функция администратора. А за поиметь права, могут поиметь тебя/его.
-
Сергей М. © (22.09.09 21:10) [4] > А какая принципиальная разница между "реалкой" и "виртуалкой" > ? > Никакой, думаю)
Какая-то разница все-таки нашлась. Раз на виртуалках от Network Service работало. Что-то с правами, было, видимо.
Anatoly Podgoretsky © (23.09.09 09:41) [5] > А за поиметь права, могут поиметь тебя/его.
Не понятен смысл. Я не же не хочу украсть у него пароль и незаконно вторгнуться в чьи-то сетевые владения.
> Как мне в службе перед подключением к WMI поиметь права > пользователя, имя и пароль которого я бы заранее указал? >
Не понятно, в чем Вы усмотрели криминал. Я сам админ, в GUI имею право подключиться как админ к другому компу, а в службе уже нет? В *nix свободно можно в выполняемом процессе повысить права. В Windows тоже это возможно, есть куча функций установки привилегий. Вопрос был лишь в том, как именно это сделать. Если б возможности такой не было, я даже бы и вопрос не задал.
-
> __Алексей__ (23.09.2009 10:23:06) [6]
Если ты админ, то какая проблема, запусти службу от админа. И не надо ссылки на Линукс, там система защиты ни какая, но раз хочешь, то запускай под линуксом. Только я посмотрю на тебя как ты повысишь права в том же Линуксе, в тоже время с правами нет проблем Тебе с вопросом надо в другой форум, в WinAPI, а не в Сети. Сообственно туда и перемещаю.
-
> Anatoly Podgoretsky © (23.09.09 13:18) [7] > Тебе с вопросом надо в другой форум, в WinAPI, а не в Сети. >
Речь изначально шла о сетевом взаимодействии моего сервиса и службы WMI (DCOM). Извиняйте, если что-то напутал с разделом...
Под админом нет никаких проблем запускать. Просто программа будет устанавливаться не раз и не на одном компьютере. Не хотелось юзера программы (админа конечно же!) заставлять при установке вводить свой логин и пароль, чтобы служба прописалась именно так, а не иначе. Если б работало все от системной учетки Network Service, коя имеется во всех версиях Windows семейства NT, было бы проще.
Хотя, если б даже и получилось повышать права в сервисе, зная логин и пароль админа, то появился бы вопрос о хранении этих секурных данных в файлах настройки. Что тоже не правильно. Согласен с Вами - дыра. Поэтому выход один - писать мануал по установке и настройке службы. Пусть система сама заботится о безопасности.
Во всяком случае, спасибо за внимание к вопросу.
-
> [8] __Алексей__ (23.09.09 14:07)
Это "соединение к WMI" может происходить когда угодно или только, когда есть инерактивный пользователь и он совершает какие-то действия?
-
Постоянно. Даже в отсутствие интерактивного пользователя (т.е. без логина в систему)
-
> __Алексей__ (23.09.2009 14:07:08) [8]
Это только тебе кажется, а твой вопрос про повышение прав, Сеть же обманка.
|