Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Это кривизна рук разработчиков софта... 29.12.03 10:29 Число просмотров: 2258
Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 29.12.03 10:56 Количество правок: 1
|
> > Вопрос: > > Как сделать так, чтобы программы с ограниченной > учетной > > записи могли работать с тюнером? > Может ответ на Ваш вопрос и мне поможет. > Сделал "слепок" CD игрушки SS2. Под обычныю юзером ни Nero > ImageDrive пускаться не хочет, ни сама игрушка. Правда > всегда предлагает запустить программы от имени других > пользователей. > Ладно с ними с игрушками, есть еще рабочие програмки, > которые под обычнам пользователем не работают.
Есть M$ Compatibility Guide, там ясно всё описано, как сделать так, чтобы прога могла обращаться к аппаратуре (то бишь к драйверу\службе) под любым аккаунтом...
Всё из-за того, что могут быть такие проблемы:
1) Неправильно производится открытие защищённых ресурсов — буть то ключ реестра, файл, разделяемая память, именованная труба или служба (драйвер) — часто криворукие программисты выставляют флаг ALL_ACCESS, хотя по идее надо хотя бы MAXIMUM_ALLOWED. Программа получает код ошибки «в доступе отказано», и вылетает.
Эта проблема лечится только частично (для постоянных ресурсов) — можно поправить списко доступа для файла или ключа реестра...
2) Неправильно (при установке программы) выставляется ACL при создании в системе новой службы\драйвера. Если не указать ACL для неё, то Windows установит его по умолчанию, что автоматически повлечёт невозможность её запуска-остановки из-под простого юзера.
Эта проблема лечится установкой нужного ACL для службы\драйвера.
3) Неправильно выставляется ACL при создании разделяемых ресурсов. Предположим, есть служба, в которой программер решил, что лучшим методом взаимодействия с ней является именованная труба. Служба создаёт трубу, но вместо нужного списка доступа ставится NULL, виндовс сама его определяет по умолчанию. Результат — если служба крутится под пользователем SYSTEM, то только администраторы получат доступ к этой трубе.
Эта проблема практически не лечится. Можно попробовать пропатчить ЕХЕ в том месте, где создаётся ресурс. Можно попробовать связаться с разработчиком и попросить его исправить проблему.
Ну и из всего вышесказанного можно понять, что проблема достаточно сложная, и в некоторых случаях требуется высокая квалификация человека, который решил «пролечить» нежелание программы запускаться из-под другого пользователя, поскольку диагностика может потребовать использования достаточно специфических программ вроде отладчиков и проч.
|
|
|