Запустите приложение из документов вместо программных файлов

Я работаю над созданием самообновляющегося приложения, и одна проблема, с которой я сталкиваюсь в Vista и Windows 7, должна иметь права администратора для обновления клиента. Я столкнулся с проблемами с клиентами, у которых их пользователи работают с ограниченными разрешениями, и им пришлось бы входить в ИТ-отдел на каждую машину, которая требовала обновления клиента, поскольку пользователи не могли этого сделать.

Возможный обходной путь, который я обдумываю, состоит в том, чтобы приложение запуска было установлено в Program Files как обычно, а реальное приложение, которое оно обновляет, было установлено где-то в пользовательских документах, чтобы они могли обновлять и запускать новые версии без участия ИТ-специалистов.

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

5 ответов

Решение

Вот как это должно быть. Последнее, чего хотят большинство ИТ-отделов, - это пользователь, случайно обновляющий часть программного обеспечения. Это может привести к всевозможным непреднамеренным побочным эффектам, таким как несовместимость с файлами более старой версии, новые и, возможно, небезопасные функции и т. Д. Именно поэтому ИТ-отделы отключают Центр обновления Windows и выполняют свои обновления вручную контролируемым образом.

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

Есть ли проблема с установкой только одной программы? Например, особенно большой?

Вам требуются права администратора для запуска вашей программы?

Если нет, скорее всего, вам не нужна папка Program Files.

Я предлагаю вам полностью отказаться от установки в Program Files и просто установить вашу программу в систему папок пользователя по адресу <userfolder>\AppData\ProgramName,

Если вы используете.NET, посмотрите на механизм развертывания ClickOnce. У него есть отличная функция самообновления, которая, вероятно, сделает вашу жизнь намного проще.

Изменить: только что видел ваше последнее предложение. ClickOnce может заставить пользователя обновить.

Пара вещей:

Если вы решили переместить свое приложение в какое-то место в документах, убедитесь, что ваше приложение прозрачно записывает данные в то место, где установлена ​​ваша программа, например, если в коде есть жестко закодированные пути, указывающие на плохие места. Возможно, это не проблема для вас, но может быть что-то иметь в виду.

Мы решили это почти таким же образом, когда решили реализовать функцию "живого обновления". Но вместо этого мы установили сервис, который работает с правами администратора. Эта служба, в свою очередь, может запускать инсталляторы после обновления программы. С этим типом решения вам даже не нужно перемещать приложение из файлов программы.

Ура!

Редактировать:

Еще одна приятная вещь, когда служба работает от имени администратора. Это то, что вы могли бы создать с ним связь по именованному каналу и сделать так, чтобы вы сделали что-то для вас, как если бы вы не могли это делать как обычный пользователь.

Вы, вероятно, можете использовать AppLocker. Это может быть только для Win7, хотя я больше не использую Vista.;)

Заглушка загрузчика - хороший способ пойти. Единственный недостаток - когда вам нужно обновить загрузчик; применяется та же самая начальная проблема (хотя это должно быть довольно редко).

Одной из проблем, о которой я могу подумать, является то, что вы выходите за рамки самой идеи обеспечения большей безопасности. Так как ваш исполняемый файл существует в месте, которое должно быть полностью доступно не администратору, возможно, что что-то еще может взломать ваш exe, тем самым подрывая безопасность.

Другие вопросы по тегам