|
|
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
MasterZТакой запрос будет пугать пользователей. Не хотелось бы.А, ты хотел без запроса, молча админские права получить? Надо было сразу с этого начинать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 08:07 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
I partigiani resistonoMasterZ...нужно создать сервис, который будет запускаться при установке под админской учеткой. Он и будет подменять файлы программы и библиотек в program files... "Все уже украдено до нас" - (с). https://ru.wikipedia.org/wiki/Установщик_Windows Сценарий инсталляции (документ .msi) выполняется под специальной учеткой, в привилегированном режиме службы NT (конкретно — под аккаунтом LocalSystem), эта учетка может доволно много, даже если у юзера совсем немного прав. В сценарий воткнуть можно все, что угодно, даже запуск своего прежнего инсталлятора. Обновление через инсталятор я не рассматриваю потому, что пользователю нужно будет сделать много движений при обновлении, а программка расчитана на НЕпродвинутых пользователй. И еще очень сильно усложняется инсталятор. Он должен выполнить скрипт по обновлению БД, а так же в его логике должен быть заложен откат до предыдущей версии в случае ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 08:11 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
YuRockMasterZТакой запрос будет пугать пользователей. Не хотелось бы.А, ты хотел без запроса, молча админские права получить? Надо было сразу с этого начинать... Моя цель не получить админские права, а подменить старые файлы новыми. Ведь в других программах это как то делают и без всяких запросов на запуск под админом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 08:40 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
MasterZбез всяких запросов на запуск под админомЕсли это PF и включен UAC - то именно под админом, только. Без запросов - значит одно из двух: 1. Эти программы используют службу; 2. Они знают пользователь/пароль админской учетки (хотя и это не панацея). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 08:44 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
Foxpcalekcvp, Код: pascal 1. И что, таким образом любой пользователь с ограниченными правами может запустить любое приложение с правами администратора?.. Не зная пароля от учётной записи администратора? Серьёзно? FoxpcКак понять - другим пользователем? Запускается от того, от кого была запущена программаWindows - многопользовательская система, кто-то мог работать с этой же программой и не выйти из учётки, после чего зашёл пользователь, который хочет "обновить" приложение. А может программа вообще работает на терминальном сервере, где её запускает куча разных пользователей одновременно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 09:44 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
YuRockСервис стягивает (можно по запросу) обновление, переименовывает старый экзешник (да, это штатно разрешено, даже он "заблокирован") и переписывает на его место новый. Всё. https://stackoverflow.com/questions/7147577/programmatically-rename-open-file-on-windows Renaming requires that the file in question was opened with FileShare.Delete sharing. If that share flag is missing, you can not rename/move the file while it is still open. Вы уверены, что Windows файл на исполнение открывает с этим флагом? Я вот почти уверен что нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 09:49 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
MasterZможет я вообще двигаюсь в неправильном направлении?а готовое решение заюзать не вариант, самому обязательно намутить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 10:01 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
alekcvpFoxpcalekcvp, Код: pascal 1. И что, таким образом любой пользователь с ограниченными правами может запустить любое приложение с правами администратора?.. Не зная пароля от учётной записи администратора? Серьёзно? FoxpcКак понять - другим пользователем? Запускается от того, от кого была запущена программаWindows - многопользовательская система, кто-то мог работать с этой же программой и не выйти из учётки, после чего зашёл пользователь, который хочет "обновить" приложение. А может программа вообще работает на терминальном сервере, где её запускает куча разных пользователей одновременно. Насчет этого я придумал как обойти. После того как пользователь нажмет "Обновить" прога посмотрит, есть ли другие пользователи подключенные в данный момент. Если есть, то обновление не выолняется или просит отключить пользователей. Но это потом буду разбираться. Сейчас хотелось бы узнать по подмене файлов, пока решение не найдено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 10:01 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
MasterZСейчас хотелось бы узнать по подмене файлов, пока решение не найдено. Подмена файлов в PF с правами пользователя - это отдельный сервис, который устанавливается вместе с программой и запускается от LocalSystem. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 10:39 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
Ну или как вариант - задание в Task Scheduler'е с повышенными привилегиями и правом на запуск для обычных пользователей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 10:40 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
alekcvpИ что, таким образом любой пользователь с ограниченными правами может запустить любое приложение с правами администратора?.. Не зная пароля от учётной записи администратора? Серьёзно? Любой. Только тебе придётся UAC подтвердить, если включён. Хотя.. Можно тупо UAC выключить и начать карновал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 11:10 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
alekcvpMasterZСейчас хотелось бы узнать по подмене файлов, пока решение не найдено. Подмена файлов в PF с правами пользователя - это отдельный сервис, который устанавливается вместе с программой и запускается от LocalSystem. Это я уже писал в начале темы. А дальше вопросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 11:15 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
alekcvpНу или как вариант - задание в Task Scheduler'е с повышенными привилегиями и правом на запуск для обычных пользователей. Scheduler это запуск по времени, а мне нужно по запросу пользователя. Ставить в Scheduler'е проверку чере 2 сек. по моему это несерьезно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 11:17 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
FoxpcalekcvpИ что, таким образом любой пользователь с ограниченными правами может запустить любое приложение с правами администратора?.. Не зная пароля от учётной записи администратора? Серьёзно? Любой. Только тебе придётся UAC подтвердить, если включён. Хотя.. Можно тупо UAC выключить и начать карновал Я думаю отключать UAC это будет не карнавал, а танцы с бубном. Про UAC вроде решено нужен сервис, ведь не зря его создаю и Мозила и Адобе ридер и др. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 11:21 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
alekcvpYuRockСервис стягивает (можно по запросу) обновление, переименовывает старый экзешник (да, это штатно разрешено, даже он "заблокирован") и переписывает на его место новый. Всё. https://stackoverflow.com/questions/7147577/programmatically-rename-open-file-on-windows Renaming requires that the file in question was opened with FileShare.Delete sharing. If that share flag is missing, you can not rename/move the file while it is still open. Вы уверены, что Windows файл на исполнение открывает с этим флагом? Я вот почти уверен что нет.Уверен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 12:13 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
MasterZalekcvpНу или как вариант - задание в Task Scheduler'е с повышенными привилегиями и правом на запуск для обычных пользователей. Scheduler это запуск по времени, а мне нужно по запросу пользователя. Ставить в Scheduler'е проверку чере 2 сек. по моему это несерьезно.Виндовый шедулер очень глючная вещь. Особенно - начиная с висты и по сейчас. Мне пришлось из-за разных его глюков полностью отказаться от него (а юзал я его начиная с NT4 sp2). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 12:17 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
YuRockВиндовый шедулер очень глючная вещь а какие уж там болячки, если не секрет? а то у меня он логи архивирует и все такое, несколько лет вроде проблемы обходили стороной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 12:36 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
vavan, после пары недель работы (запускает задание каждые 5-15 минут) приходится перезагружать винду, т.к. в какой-то момент перестает выгружаться svchost, который шедулер запускает каждый раз при запуске задания, и в итоге заканчивается память и хендлы. Особенно быстро это проявляется, если запускать консоли (батники). Проблемы начались (у меня) с приходом Win7. И замечались вплоть до Win10 1803 (скорей всего и в 1809 так). Т.ч. везде заменить пришлось на свой "шедулер" всё. Единственное, зачем я иногда его теперь использую - это запустить программу "При включении компьютера". Типа вместо службы, если переделывать под службу лень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 12:49 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
YuRock, жесть какая. у меня на серверных (2012 кажется) месяцами работают, правда запускаются не чаще раза в сутки вроде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 13:20 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
vavanYuRock, жесть какая. у меня на серверных (2012 кажется) месяцами работают, правда запускаются не чаще раза в сутки вродеНу вот, у меня часто было, и - не на серверных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 13:41 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
YuRockvavanYuRock, жесть какая. у меня на серверных (2012 кажется) месяцами работают, правда запускаются не чаще раза в сутки вродеНу вот, у меня часто было, и - не на серверных.Ну да, получается, у меня в сотни раз чаще запускалось задание (разные задания), и в итоге - винда валилась через 2-3 недели. Возможно, твой сервер завалится через несколько сотен недель именно по этой причине :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 15:21 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
Инсталлятор не обязательно должен иметь сложную логику... ему достаточно уметь запускать другую прогу, сколь угодно большой сложности. Это может быть и сама клиентская прога, запущенная с определенным параметром, например. В описанной ситуации да, наверно сервис и IPC с клиентской софтиной нормальный вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 16:46 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
FoxpcalekcvpИ что, таким образом любой пользователь с ограниченными правами может запустить любое приложение с правами администратора?.. Не зная пароля от учётной записи администратора? Серьёзно? Любой. Только тебе придётся UAC подтвердить, если включён. Хотя.. Можно тупо UAC выключить и начать карновалЕщё раз: если у пользователя нет прав администратора (вообще), то UAC ему придётся подтверждать с паролем администратора. MasterZalekcvpНу или как вариант - задание в Task Scheduler'е с повышенными привилегиями и правом на запуск для обычных пользователей. Scheduler это запуск по времени, а мне нужно по запросу пользователя. Ставить в Scheduler'е проверку чере 2 сек. по моему это несерьезно.Scheduler это запуск по условию, а не только по времени. В том числе там есть условие "вручную", через API. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 21:16 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
YuRockYuRockпропущено... Ну вот, у меня часто было, и - не на серверных.Ну да, получается, у меня в сотни раз чаще запускалось задание (разные задания), и в итоге - винда валилась через 2-3 недели. Возможно, твой сервер завалится через несколько сотен недель именно по этой причине :) У меня на сервере работает ежудневный бекап SQL-сервера через шедулер месяцами, на десктопе - хром обновления через него проверяет регулярно, ни разу ничего не валилось. Я не думаю что обновления пользователи будут запускать чаще пары раз в день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 21:19 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
MasterZ... Или может я вообще двигаюсь в неправильном направлении? Ты понимаешь, что после запуска "обновленная программа" не получит доступ к рабочему столу, потому что ее запустит сервис, не имеющий этот доступ? От сервиса можно получить лишь выполнение привилегированных операций. А контроль за его работой и процесс перезапуска должен выполняться под аккаунтом исходного юзера. Схема работы может быть, например, следующей. При старте основного приложения проверять необходимость обновления (особых прав для этого не требуется, надо полагать). Если обновление требуется - запускать специальный "обновлятор" (приложение без привилегий), который в соответствии с требуемой логикой выполняет нужные операции, при необходимости (для выполнения привилегированных операций) обращаясь к сервису. По завершению работы "обновлятор" перезапускает исходное приложение. MasterZКак потом из сервиса запустить обновленную программу? Подскажите как запустить сервис из программы? Надо книжку приобрести, про API Windows. И читать MSDN. Можно, конечно, искать статьи и лопатить форумы, но это не очень умно. В двух словах про сервисы тебе никто не объяснит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 21:55 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39797011&tid=2039595]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
153ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
92ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 523ms |

| 0 / 0 |
