Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];

Вниз

Зачем InnoSetup требует права администратора?   Найти похожие ветки 

 
Piter ©   (2007-11-23 19:28) [0]

Народ, у меня есть 2 вопроса.

1) как сделать, чтобы в секции [RUN] галочку можно было установить только одну? То есть, если устанавливаешь одну галочку - снимаются остальные?
Пример:


[Run]
Filename: "{app}\test.exe"; Parameters: "-connect server1"; Description: "Соединиться с сервером номер 1"; Flags: nowait postinstall skipifsilent
Filename: "{app}\test.exe"; Parameters: "-connect server2"; Description: "Соединиться с сервером номер 2"; Flags: nowait postinstall skipifsilent

То есть, выбор одного параметра исключает выбор другого, а два раза запускать приложение не нужно.
Можно сделать в виде RadioButton (а как?), но тогда придется еще третью кнопку добавлять "Не соединяться не с кем", что мне кажется не солидно.

2) самый главный вопрос. Почему... нет не так... ПОЧЕМУ инсталляции сделанные с помощью InnoSetup требуют права администратора?!?! Если запускать даже допустим под продвинутым пользователем, то сначала предлагается выбрать язык, а потом сразу пишется "You must be logged in as an administrator when installing this program." (если выбран английский язык) - http://img87.imageshack.us/img87/3707/tttdy9.gif

В FAQ все хорошо написано насчет привилегий: http://www.jrsoftware.org/isfaq.php#ntsecur

И я со всем согласен.. Но у меня ничего такого нету! Но сетап все равно требует права администратора, хотя по смыслу для работы такие права не нужны...

Вот если что - весь файл проекта:


; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
AppName=TestName
AppVerName=TestName 1.0
DefaultDirName={pf}\Test App
AllowNoIcons=yes
Compression=lzma
SolidCompression=yes
DisableProgramGroupPage=yes
Uninstallable=no
SetupIconFile=D:\test.ico

[Languages]
Name: ru; MessagesFile: "compiler:Languages\Russian.isl"
Name: en; MessagesFile: "compiler:Default.isl"

[Tasks]
; NOTE: The following entry contains English phrases ("Create a desktop icon" and "Additional icons"). You are free to translate them into another language if required.
; NOTE: The following entry contains English phrases ("Create a Quick Launch icon" and "Additional icons"). You are free to translate them into another language if required.

[Files]
Source: "D:\Test App\*"; DestDir: "{app}"; Flags: recursesubdirs uninsneveruninstall
; NOTE: Don"t use "Flags: ignoreversion" on any shared system files

[Run]
Filename: "{app}\test.exe"; Parameters: "-connect server1"; Description: "Соединиться с сервером номер 1"; Flags: nowait postinstall skipifsilent
Filename: "{app}\test.exe"; Parameters: "-connect server2"; Description: "Соединиться с сервером номер 2"; Flags: nowait postinstall skipifsilent


P.S. Еще забавно, что сама установка Inno Setup требует права администратора, хотя ей тоже это вроде не к чему.


 
Anatoly Podgoretsky ©   (2007-11-23 19:32) [1]

> Piter  (23.11.2007 19:28:00)  [0]

Ты точно знаешь куда инсталлятор обращается, к каким веткам реестра, к каким файлам?
А инсталятор в момент запуска это знает?


 
Piter ©   (2007-11-23 20:02) [2]

Anatoly Podgoretsky ©   (23.11.07 19:32) [1]

ну если вы не хотите вникнуть в вопрос и прочесть все что написано в сабже и даже возможно никогда не работали с InnoSetup - то высказываться не обязательно.


 
KilkennyCat ©   (2007-11-23 20:08) [3]

в вопрос вник. все ппрочел. и все равно согласен с [1]


 
Piter ©   (2007-11-23 20:38) [4]

читать разрешается и ссылки по проблеме.

В общем, подожду ответа более компетентных товарищей.


 
Anatoly Podgoretsky ©   (2007-11-23 20:48) [5]

> Piter  (23.11.2007 20:02:02)  [2]

Я считаю необходимым высказать, а если ты не понял, что тебе сказали, то это твоя проблема, а не моя. Можешь и дальне не понимать.


 
Anatoly Podgoretsky ©   (2007-11-23 20:49) [6]

> Piter  (23.11.2007 20:38:04)  [4]

Для того что бы понять компетентно, надо обладать неким разумом, иначе будет непонятно.


 
tesseract ©   (2007-11-23 20:50) [7]


> В общем, подожду ответа более компетентных товарищей.


Вообще там галочка есть - прямо так и называеться. Использовать innosetup без IStool - та еще проблема. Вдогонку - неадминистратор по умолчанию писать в program files не может. Кстати зависят от версии сервис пака кое-какеи вредные мелочи.


 
Anatoly Podgoretsky ©   (2007-11-23 20:51) [8]

> tesseract  (23.11.2007 20:50:07)  [7]

А инсталятор обязан туда писать, как минимум пункт Unistall


 
Anatoly Podgoretsky ©   (2007-11-23 20:52) [9]

И еще в ветку Software, хоть это и не обязательно, но является штатной обязанностью нормального инсталятора, а InnoSetup вполне нормален в этом плане.


 
tesseract ©   (2007-11-23 20:59) [10]


> И еще в ветку Software, хоть это и не обязательно, но является
> штатной обязанностью нормального инсталятора, а InnoSetup
> вполне нормален в этом плане.


В последних версиях эта фича не отключаеться. А жаль. Нервы мотает в моем применении жуть.


 
Anatoly Podgoretsky ©   (2007-11-23 21:04) [11]

> tesseract  (23.11.2007 20:59:10)  [10]

Правила построения программ для Виндоус, требуют двух этих записей. Пользователь должен видеть, что установлено и иметь возможность деинсталировать это принятым способом.


 
tesseract ©   (2007-11-23 21:07) [12]


>  Пользователь должен видеть, что установлено и иметь возможность
> деинсталировать это принятым способом.


Так я модули по переферийкам обновляю. Минимум 2 раза в неделю. Как думаешь сколько у них ПУСТЫХ записей в unistall ?


 
Anatoly Podgoretsky ©   (2007-11-23 21:11) [13]

> tesseract  (23.11.2007 21:07:12)  [12]

Представляю и знаю даже почему, но почему не примут нормального администратора или заключат договор с внешней фирмой? В конце концов пусть хоть почитают документацию. Наверно в свой мерседес вряд ли запустят какого нибудь Васю.
Экономят на спичках?


 
Piter ©   (2007-11-23 21:15) [14]

tesseract ©   (23.11.07 20:50) [7]
Вообще там галочка есть - прямо так и называеться


где галочка есть? У меня версия 5.2.2, там есть оболочка Compil32.exe - фактически просто текстовый редактор и ISCC.exe - консольная программка.

tesseract ©   (23.11.07 20:50) [7]
Использовать innosetup без IStool


а что такое IStool? Как я понял - это http://www.istool.org/ ?

Скачал, установил, посмотрел... И в чем проблема? Просто в чистом Inno вбиваешь ручками все, а тут в IStool подоптимизирвоано и разбито по пунктам. Все равно в итоге IStool формирует iss проект, а весь свой iss проект я привел в сабже. Собственно, можешь считать, что это все сформировано с помощью IStool, если так удобнее.

Галочки так и не нашел - где она?

Скомпилировал самый простейший проект IStool - все равно хочет администратора.

tesseract ©   (23.11.07 20:50) [7]
Вдогонку - неадминистратор по умолчанию писать в program files не может


и что? Зато может в другие места писать.


 
tesseract ©   (2007-11-23 21:19) [15]


> Галочки так и не нашел - где она?


Есть она. Точно знаю, потому-что все магазины в юзермоде сидят.  Но на работу я только в понедельник попаду.


 
Piter ©   (2007-11-23 21:25) [16]

так... последний раз специально для эстонцев.

Anatoly Podgoretsky ©   (23.11.07 20:51) [8]
А инсталятор обязан туда писать, как минимум пункт Unistall


бред, не обязан инсталлятор писать ничего в Program Files. Uninstall он пишет в папку, куда установили программу, не обязательно это PF

Anatoly Podgoretsky ©   (23.11.07 20:52) [9]
И еще в ветку Software


нифига не обязан

Anatoly Podgoretsky ©   (23.11.07 21:04) [11]
Правила построения программ для Виндоус, требуют двух этих записей. Пользователь должен видеть, что установлено и иметь возможность деинсталировать это принятым способом


неправда. Деинсталлятора может и не быть. Например, когда готовится не инсталляционный пакет, а обновление к программе допустим. Ей не нужен никакой деинсталятор и не нужно никаких записей делать в реестре, если всего-то две DLL записть новые нужно.

И для тех, кто неспособен открывать приведенные ссылки я процитирую логику работу InnoSetup, описанную в FAQ. Я считаю лично эту логику правильной. Вопрос только в том, что почему в реальности InnoSetup по другому работает ;(

Windows NT/2000/XP/2003 & Administrative Privileges
A typical Inno Setup installation running on Windows NT/2000/XP/2003 does not require administrative or "power user" privileges. However, there are exceptions as noted below.

Things that require administrative privileges on both Windows NT/2000/XP/2003:

Using "PrivilegesRequired=admin" in the script"s [Setup] section. This causes Setup to abort with an error message if the user lacks administrative privileges.
Using the "restartreplace" flag in the [Files] section. This flag causes Inno Setup to call the MoveFileEx function, which attempts to write to "HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Control\ Session Manager". Write access to this key is restricted to Administrators.
Writing to any key under HKEY_USERS\.DEFAULT using the [Registry] section. Write access to this key is restricted to Administrators.
Things that require either administrative or "power user" privileges on Windows 2000/XP/2003:

Using "PrivilegesRequired=poweruser" in the script"s [Setup] section. This causes Setup to abort with an error message if the user lacks either administrative or "power user" privileges.
Using the "regserver" flag in the [Files] section. In most cases registering a DLL involves writing to HKEY_CLASSES_ROOT, a privilege not granted to ordinary users.
Using the "sharedfile" flag is the [Files] section. This flag causes Inno Setup to create/update a value in "HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ SharedDLLs". Ordinary users are not allowed to write to that key.
Using the FontInstall parameter in the [Files] section.
Writing to any key under HKEY_LOCAL_MACHINE or HKEY_CLASSES_ROOT using the [Registry] section. Ordinary users are not allowed to write to those keys.
Inno Setup itself does not require write access to the WINNT directory, or any other registry keys not mentioned above.

What is different when an installation is run by a user without administrative privileges?

The registry key for the Add/Remove Programs Control Panel entry is created under HKEY_CURRENT_USER instead of HKEY_LOCAL_MACHINE. Thus, only the user who installed the program will see an Add/Remove Programs entry for it.
The "{group}" constant always points to the current user"s profile, as opposed to the All Users profile.
All "{common...}" constants are equivalent to the "{user...}" constants.
The program may be uninstalled by any user. (When an administrator installs a program, only an administrator is allowed to uninstall it.)


 
Piter ©   (2007-11-23 21:29) [17]

tesseract ©   (23.11.07 20:59) [10]
В последних версиях эта фича не отключаеться. А жаль. Нервы мотает в моем применении жуть


неправда. Это в твоем IStool может быть что-то не отключается, а в оригинальном InnoSetup все контролируется. Чтобы отрубить анисталл надо в секцию [Setup] добавить:

Uninstallable=no

И все, никакой деинсталляции не будет. Заодно отключить всякие настройки деинсталляции наподобие:

Name: "{group}\Удаление моей программы"; Filename: "{uninstallexe}"

потому что они уже не имют смысла.


 
Anatoly Podgoretsky ©   (2007-11-23 21:30) [18]

> Piter  (23.11.2007 21:25:16)  [16]

Я вообще то законадателем считаю Микрософт, а не тебя.
Микрософт пишет обновления и позволяет их стандартно деинсталировать.
Я просмотрел реестр, за не большим исключением есть записи обо всех установленых программах, как минимум пустая ветка. И я как администратор скажу, что я с подозрением смотрю на программы, которые не соблюдают норм поведения. Как минимум, если установлены не мною, то просто блокирую до них доступ, а при повторение отключаю газ. А приводить цитату из продукта не надо, это не ухлюжая попытка обойти корпоративные правила и правила хорошего тона, это хакерская попытка авторов обойти защиту Виндоус.

Напрасно ты пытаешься сыграть на национальном моменте, не красит.


 
Piter ©   (2007-11-23 21:32) [19]

tesseract ©   (23.11.07 21:19) [15]
Есть она


ну скачай IStool - скажи плиз где она. Я уверен, что если галочка есть, так она просто тупо добавляет следующий параметр в iss файл:

PrivilegesRequired=admin

это да, есть ВКЛЮЧЕНИЕ такой проверки. Но проблема то в том, что в моем проекте такого нету, а все равно не из под админа сетап не запускается

tesseract ©   (23.11.07 21:19) [15]
Точно знаю, потому-что все магазины в юзермоде сидят


может быть и сидят, а обновляют из под админа. А дай ссылку хоть на один свой сетап, я просто скачаю и проверю - действительно ли у тебя компиляция InnoSetup не требует для запуска полномочия админа.


 
Piter ©   (2007-11-23 21:35) [20]

Anatoly Podgoretsky ©   (23.11.07 21:30) [18]
А приводить цитату из продукта не надо


конечно не надо!!! У меня глючит именно этот продукт, но его описание надо брать из базы Microsoft. Ага, что еще придумаете?

Anatoly Podgoretsky ©   (23.11.07 21:30) [18]
это не ухлюжая попытка обойти корпоративные правила


это логика по которой работает большинство инсталяторов, чтобы вы знали. Если вы считаете законодателем мод MS, то значит вы хотите сказать, что ни один инсталяционный файл от MS не запустится без привелеший администратора?! ;)))

ну скажите это, давайте ;) А если нет - то иногда лучше жевать.


 
Anatoly Podgoretsky ©   (2007-11-23 21:40) [21]

> Piter  (23.11.2007 21:35:20)  [20]

Не пытайся спрятаться за смайликом.
Инсталяция программ привилегия администратора, а не пользователя, хакеры и вирусы только и мечтают, чтобы обойти эти правила.


 
easy ©   (2007-11-23 21:40) [22]

а тут искал?
http://www.jrsoftware.org/newsgroups.php
Search the Newsgroup Archives


 
tesseract ©   (2007-11-23 21:40) [23]


> Uninstallable=noИ все, никакой деинсталляции не будет. Заодно
> отключить всякие настройки деинсталляции наподобие:


Не работает. Проверено годовым опытом. Все равно появляеться.


 
easy ©   (2007-11-23 21:41) [24]

вот это не оно? - http://news.jrsoftware.org/news/innosetup/msg61615.html


 
Piter ©   (2007-11-23 21:45) [25]

Anatoly Podgoretsky ©   (23.11.07 21:40) [21]
Инсталяция программ привилегия администратора


я вас еще спрашиваю - хотите ли вы сказать, что любые инсталяционные файлы MS требуют прав администратора на компьютере?

easy ©   (23.11.07 21:40) [22]
а тут искал?
http://www.jrsoftware.org/newsgroups.php


попробую поискать... Но странность налицо, в FAQ четко написано одно, а программа реально ведет себя по другому ;(

tesseract ©   (23.11.07 21:40) [23]
Не работает. Проверено годовым опытом. Все равно появляеться


а ты писал директиву "Uninstallable=no" То?! Ты ведь сам сказал что пользуешься IStool - оттуда может галочку и убрали, а вот InnoSetup прекрасно понимает директиву "Uninstallable=no" и проверял я буквально сегодня - никакой информации об uninstall"е не создается. Заодно убери вообще любые упоминания Uninstall из iss проекта.


 
Anatoly Podgoretsky ©   (2007-11-23 21:46) [26]

> Piter  (23.11.2007 21:45:25)  [25]

Ты затронул этот вопрос, вот и приводи список.
яяяя5мm=ЄняM4яMEЯэ5 Н„ЧoфЬ]ч­?


 
Anatoly Podgoretsky ©   (2007-11-23 21:47) [27]

Один одногорбный, а с ним Прежжевальский.


 
Piter ©   (2007-11-23 21:49) [28]

Anatoly Podgoretsky ©   (23.11.07 21:46) [26]

все понятно, можете в эту ветку больше не заглядывать, слишком вы умны для нее

easy ©   (23.11.07 21:41) [24]
вот это не оно? - http://news.jrsoftware.org/news/innosetup/msg61615.html


я так понимаю очевидно нет. Там идет речь про то, что не удается инсталляция в директорию, разрешение на запись в которую отсутствует у текущего юзера, запустивщего setup.

У меня проблема в другом - сам SETUP прерывается, требуя админские полномочия! До выбора папки для установки даже дело не доходит.


 
easy ©   (2007-11-23 21:50) [29]


> яяяя5мm=ЄняM4яMEЯэ5 Н„ЧoфЬ]ч­?

эт, конешно, круто..=)
пржевальский, повидимому тут -> 


 
Piter ©   (2007-11-23 21:50) [30]

то есть, ситуация описанная в этой новости просто невозможна у меня практически. Сетап нельзя запутстиь не из под администратора, а уж администратору обычно разрешена запись практически везде.


 
easy ©   (2007-11-23 21:54) [31]


> Piter © (23.11.07 21:49) [28]


> слишком вы умны для нее

между прочим, человек тебе дело всю дорогу советовал


 
easy ©   (2007-11-23 21:55) [32]

начиная с [1]


 
Anatoly Podgoretsky ©   (2007-11-23 21:57) [33]

> Piter  (23.11.2007 21:49:28)  [28]

Ты не указывай куда мне идти, я и сам могу напраление выбрать, ты уж лучше снова национальный вопрос подними, это у тебя лучше получается.


 
Anatoly Podgoretsky ©   (2007-11-23 22:01) [34]

> easy  (23.11.2007 21:50:29)  [29]

Это шифровка Юстусу.


 
Piter ©   (2007-11-24 04:28) [35]

easy ©   (23.11.07 21:54) [31]
между прочим, человек тебе дело всю дорогу советовал


что он советовал? Что любой setup должен исполняться под администратором? Бред, под мои задачи не подходит, то что должен делать мой setup не требует прав администратора, это факт. То есть, действия которые должен выполнить Setup, если делать ручками - можно максимум обойтись с правами power user, но setup зачем-то требует права администратора.

Anatoly Podgoretsky ©   (23.11.07 21:57) [33]
Ты не указывай куда мне идти, я и сам могу напраление выбрать


ну так и выбирайте, очень прошу чтобы мимо моей темы.


 
Piter ©   (2007-11-24 04:41) [36]

[b]Проблема решена![/b]

Спасибо людям с другого форума, подсказали. Оказывается, в FAQ несколько устаревшая информация. В новой версии есть такое примечание:

[Setup]: PrivilegesRequired
Valid values:    none, poweruser, or admin
Default value:  admin


Соответственно, нужно просто добавить в проект директиву:

PrivilegesRequired=none


 
Anatoly Podgoretsky ©   (2007-11-24 12:37) [37]

> Piter  (24.11.2007 04:28:35)  [35]

> ну так и выбирайте, очень прошу чтобы мимо моей темы.

Пока не заведешь свой собственный форум и не надейся.
А пока можешь здесь троллить.


 
Piter ©   (2007-11-24 15:21) [38]

во-первых, у меня и так есть собственный форум, который раз в 5 посещаемей этого. К сожалению, и там есть такие люди, помощи полный ноль, но потрындеть всегда пожалуйста.

Во-вторых, я и не надеюсь, просто я попросил.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.57 MB
Время: 0.043 c
2-1196459325
deras
2007-12-01 00:48
2007.12.23
Помогите с запросом


2-1196404505
WestNik
2007-11-30 09:35
2007.12.23
Создание TabSheet динамически


15-1196009945
Kostafey
2007-11-25 19:59
2007.12.23
Интеграция Turbo JBuilder 2007 и Subversion


2-1196253710
PASZLIB
2007-11-28 15:41
2007.12.23
Четность числа ?


2-1196011828
sdaf
2007-11-25 20:30
2007.12.23
проблемы с RxRichEdit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский