В Windows2000. Т. е. я не могу ни перечислить соединения, ни создать новое соединение. (RasEnumEntries, например, говорит что 0 соединений, а соединения есть) А очень надо.
Сервисы работают от прав админа, насколько я знаю. Запускаю я службу, разумеется, тоже от админа. RasSetEntryProperties возвращает ERROR_CANNOT_OPEN_PHONEBOOK Хотя в мсдн написано, чтобы первым параметром этой ф-ии (как раз записная книга) был 0.
drone Неа, от system Видимо это не может открыть C:\Documents and Settings\All Users\Application Data\Microsoft\Network\Connections\Pbk\rasphone.pbk Я бы сначала залогонил сервис под админом, если не прокатит - посмотрел бы почему PHONEBOOK не открывается. Учесть надо еще что всей этой фигней заведует эксплорер в отличие от сервиса Routing and Remote Access, где коннекшены создаются помимо пфон бука и которые могут коннектиться без логона пользователя. Удачи.
Спасибо за ответы. А как залогинить от админа? Служба запускается автоматически до винлогона. Это надо в реестре где-то править? P.S. Разве система не имеет полных прав?
drone Можно и в реестре, а можно и в mmc консоли в пропертях сервиса во вкладке Log On. Акаунт систем даже прав по сети лазить(через нетбиос) не имеет. А до винлогона сервис стартонуть не может , так как внилогон сервисы и запускает.
программно можно impersonateloggedonuser сделать (уже писал об этом сегодня), только пароли придется где-то держать.
Туповато как-то. Нет ли других способов заставить это работать? Я уже склонен к тому, чтобы вызывать из службы другую программу, чтобы работать с RAS. Не менее тупо, но нет привязки к нполитике безопасности.
Как-то некорректно вопрос поставлен. Что сделать-то нужно? Програмно поменять юзера под которым запускается сервис? Чем ChangeServiceConfig не подходит? Или если это надо сделать один раз почему во вкладке Log On сервиса это не сделать просто? И причем здесь политика безопасности?
"Нет ли других способов заставить это работать"- заставить корректно работать RAS функции! Сабж собственно.
drone У меня подозрение что просто на C:\Documents and Settings\All Users\Application Data\Microsoft\Network\Connections\Pbk\rasphone.pbk разные премишены в 2к и XP. А функции работают корректно. Проблема не в функциях, а в том как их используют.
Наверное так. Может, кинешь ссылочку, как настроить полный локальный доступ для парки (файла). Примерно то же я делал с ключами реестра. Там также? Или как запустить приложение из сервиса от текущего пользователя (под которым совершен вход в систему), не находя его пароля. Ведь процесс, запущенный из службы, имеет теже права, что и она (
По поводу доступа к папке вопрос снимается. Но все равно не работает! И все же: как программно запустить процесс от другого пользователя? CreateProcessWithLogonW- требует пароль полльзователя. Есть идеи?
drone Хм, а как можно не находя пароля? Винлогон он что делает? Пускает сервисы от тех акаунтов что ему сказали - по дефолту от систем - значит хотябы раз ему другой акаунт сказать надо(ChangeServiceConfig или вкладка Log On) и пароль для этого нужен. Можно конечно имперсонэйтить юзера после старта сервиса(CreateProcessWithLogonW излишне), но пароль тоже нужен. Так что стандартными средствами имхо никак. Я все-таки непонял - можно хоть раз залогонить сервис мануально зерез вкладку Log On и убедиться что оно хотябы работает?