Windows 7 UAC vs Network Share Management
От: PanychY  
Дата: 12.02.13 16:01
Оценка:
Приветствую

Есть такой расклад:
1. Windows 7 Pro x32, пользователь член групы Администраторы
2. Софтина x32, написанная и построенная на MSVC 7.0 использующая NetShareAdd, NetShareDel, NetShareGetInfo для работы с личным разделяемым ресурсом(создать, либо пересоздать если такая существует но указывает не туда).

Оиждаемое поведение UAC:
а) либо при запуске спросит "крутые" права, пользователь подтвердит, и дальше всё будет работать;
б) либо непосредственно при вызове указаных функций будет запрошено разрешение.

По факту не происходит ни а) ни б). В нужный момент функции получают "отказ в доступе" и дальше работа не возможна.
Что я делаю не так? Или точнее так: почему оно не делает как надо?
Запуск через пунк меню "с привилегиями" конечно лечит, но такой вариант исключен впринципе: 99.(9)% случаев приложение будет запущено автозапуском и завершится при выходе из сеанса.

Некоторые другие приложения, рожденные от MSVC 7.0(причем очень давно), добросовестно спрашивают все права, и даже рожденные от MSVC 6.0, а эта гадина упирается.
Пробовал прилепить сбоку к нему файл-манифест — ноль реакции(тем более что остальные как-то без манифеста обходятся).

Спасибо
Re: Windows 7 UAC vs Network Share Management
От: Pavel Dvorkin Россия  
Дата: 14.02.13 04:56
Оценка:
Здравствуйте, PanychY, Вы писали:

PY>Оиждаемое поведение UAC:

PY>а) либо при запуске спросит "крутые" права, пользователь подтвердит, и дальше всё будет работать;

Запросит, если для этой программы требуется elevated privileges.

PY>б) либо непосредственно при вызове указаных функций будет запрошено разрешение.


Это невозможно. Раз уж запустились без elevated privileges, то так тому и быть.

PY>По факту не происходит ни а) ни б). В нужный момент функции получают "отказ в доступе" и дальше работа не возможна.


Правильно.

PY>Что я делаю не так? Или точнее так: почему оно не делает как надо?


Установить в манифесте эти самые elevated privileges. Для VS 2008 это делается просто, а для 2005 — не в курсе как сделать.

PY>Некоторые другие приложения, рожденные от MSVC 7.0(причем очень давно), добросовестно спрашивают все права, и даже рожденные от MSVC 6.0, а эта гадина упирается.


Скорее всего Windows их опознала как требующие elevated privileges

////////////////////
Before a 32 bit process is created, the following attributes are checked to determine whether it is an installer:
• Filename includes keywords like "install," "setup," "update," etc.

• Keywords in the following Versioning Resource fields: Vendor, Company Name, Product Name, File Description, Original Filename, Internal Name, and Export Name.

• Keywords in the side-by-side manifest embedded in the executable.

• Keywords in specific StringTable entries linked in the executable.

• Key attributes in the RC data linked in the executable.

• Targeted sequences of bytes within the executable.

////////////////////
http://technet.microsoft.com/en-us/library/cc709628%28WS.10%29.aspx
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.