Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Windows 7 и UAC  (Прочитано 16548 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« : 10-03-2011 08:16 » 

Народ, кто-нить знает механизм, как семёрка определяет, что программе нужны, например, права администратора?

зы Прога компилируется без манифеста.
 
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
zubr
Гость
« Ответ #1 : 10-03-2011 08:36 » 

Если программа пытается:
1. Что то писать в реестр
2. Модифицировать файлы в системных каталогах
3. Устанавливать или удалять сервисы, драйвера
4. Некоторые сетевые функции будут вызывать UAC
5. Программное изменение настроек планировщика заданий будет вызывать UAC
6. Вызов утилит типа At, Shtasks потребует админских прав.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #2 : 10-03-2011 09:06 » 

Ок, объясню немного подробней.

Есть программа, которая находится в Program Files. Работает с файлами в ProgramData, пишет/читает в HKCU, отправляет мыло, работает с ZIP-архивами, работает с печатью и запускает другие проги через CreateProcess и ShellExecute. Эта программа НЕ требует админских прав.
 
Теперь, одна из запускаемых программ - апдейтер, для проверки наличия обновлений. Простой экзешник-диалог, который тоже находится в Program Files. Вся его функциональность ограничивается: прочитать XML-файл, в котором находится адрес сервера с обновлениями, сгрузить информационный файл с данными об обновлениях, сравнить, сгрузить по необходимости ZIP-файлы и обновить (заменить файлы) текущую версию. Реестр используется только для хранения текущих настроек, например Proxy.
Для работы с инетом используется wininet, но только HTTP.

И вот она требует админских прав. Я убрал (просто выбросил из кода) сначала всю кухню с инетом, потом с ZIP-ом, вспомогательные диалоги, потом вобще ВСЁ выбросил. Голый диалог. Никакой функциональности. Практически он ничем не отличается от вновь созданного диалога. Dependency Walker не показывает никакой разницы с контрольным приложением.
Оба MFC-статики, юникод. И всё-равно семёрка спрашивает админский пароль.
Запоминает она что-то? Или же всё-таки экзешник обладает каким-то свойством? Причём, запускать его не требуется, его иконка сразу дополняется щитом, чего явно не происходит с другими прогами.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 10-03-2011 09:46 » 

а если переименовать в setup.exe ? ))

помнится, виста делала так - если в имени есть "update" или "setup", то программа автоматом от администратора запускается
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #4 : 10-03-2011 10:08 » 

Лёш, ну нельзя же все проги назвать setup.exe. Ага

Собственно речь идёт об аргументации, те я хочу выяснить, действительно ли ей нужны админские права? Если да, то почему?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
v2
Помогающий

ua
Offline Offline

« Ответ #5 : 10-03-2011 11:41 » 

http://ischevchenko.blogspot.com/2010/04/uac.html
http://msdn.microsoft.com/en-us/library/aa905330.aspx

Собственно речь идёт об аргументации, те я хочу выяснить, действительно ли ей нужны админские права? Если да, то почему?

Если не "дать Админа" и работает - не нужны  Улыбаюсь ,
иначе смотреть в отладчике, где облом.

Думаю, что система это дело сама не анализирует, а вот программа может и попросить.




Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 10-03-2011 12:42 » 

Думаю, что система просто запомнила его. Переименуй во что-нибудь другое и запусти еще раз.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #7 : 10-03-2011 13:24 » 

v2, это понятно. Остальные, запускаемые основной прогой, работают без проблем. А отладчик чем поможет? Или ты имеешь ввиду по винде дебаггером пройтись? Ага

Линки почитаю. Спасибо.

Экзешник переименовать - делал. Не помогает.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #8 : 10-03-2011 13:36 » 

Джон, а ты устанавливал/копировал файлик под каким юзером?
Какие права стоят на папку с файликом? Проверь все права, включая "Advanced".
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
v2
Помогающий

ua
Offline Offline

« Ответ #9 : 10-03-2011 13:38 » new

Невнимательно прочитал, -  не понял, что прога твоя.

> Остальные, запускаемые основной прогой
с этого момента поподробнее Улыбаюсь
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #10 : 10-03-2011 15:47 » 

1.exe - основная, не требует админа

Она запускает с помощью CreateProcess / ShellExecute (результат одинаковый) проги 2.EXE и 3.EXE.

При запуске 3.EXE требуется ввести пароль админа. 1 и 2 ничего такого не требуют. Все проги мои. Компилятся UNICODE в 2003 студии. С++ MFC Static. Без файла-манифеста. Что ещё? Функции описал выше.

Добавлено через 3 минуты и 13 секунд:
Джон, а ты устанавливал/копировал файлик под каким юзером?
Какие права стоят на папку с файликом? Проверь все права, включая "Advanced".

Папка Program Files - в которой пользователю делать нечего. А вот насчёт установки это мысль. Основная прога ставится инсталлером, а апдейтер я копировал туда вручную. Может это? Всё остальное у них одинаковое. В смысле что для проги 1 то и для всех остальных прог. Только способ помещения в папку разный. Посмотрю в этом направлении, но теперь уже завтра.
« Последнее редактирование: 10-03-2011 15:50 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines