6

На моем рабочем месте машины Windows 7 развертываются, а пользователям не предоставляются административные привилегии. Мой отдел создает приложения, которые запускаются локально на компьютере пользователя, и они работают нормально (насколько мы видели). Одно приложение, с другой стороны, нет.

Это приложение, которое обновляет другие (наш «Агент обновлений»). Поэтому, когда пользователь запускает агент обновлений, он сразу же останавливается с ошибкой, так как это приложение не смогло записать в C:\Program Files\ наше приложение \

Нам нужен способ, чтобы эти машины с Windows 7 могли запускать это приложение от имени администратора или с правами администратора, когда пользователь их выполняет. Поскольку эти пользователи никогда не получат пароль администратора, «Запуск от имени администратора» не вариант. Пользователю нужно будет щелкнуть ярлык, и он запустится с достаточными правами для изменения этой папки, записи в реестр и т.д.

Я надеюсь, что это какой-то объект групповой политики или политика или что-то, что можно настроить на уровне домена, что позволит этому произойти; или что-то настроенное на клиентских машинах один раз. Наши приложения - .net Framework 1.1 и 2.0, подписанные ключом.

Любое понимание будет оценено.

9 ответов9

3

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

Вы можете управлять запланированными задачами через командную строку (schtasks.exe) или сценарий входа.

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

Потребуется только одна умная задница, чтобы найти имя .exe и изменить его или поместить вместо него все, что он хочет - например, они могут скопировать cmd.exe в папку и переименовать, а затем вдруг у них появляется команда подскажите с правами администратора! (хорошо, вы можете использовать разрешения NTFS и прочее, они могут вынуть жесткий диск - вы можете использовать Bitlocker/ шифрование ...) Я хочу подчеркнуть, что вы намеренно вводите эту дыру.

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

2

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

2

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

2

Узнайте, к каким настройкам реестра и настройкам файлов вам нужен доступ с помощью procmon, filemon и regmon, и используйте стандартные инструменты Windows, называемые cacls и regini, чтобы изменить их, чтобы у вас был правильный доступ.

1

Изменить разрешения для папки, доступ к которой запрещен C:\Program Files\ наше приложение \

0

Одна возможность - создать зашифрованный VB-скрипт с помощью команды Runas для shell(команда). Вы можете запустить его, чтобы открыть эту программу, если пользователь не может переместить файл и т.д. Вы даже можете создать ярлык, переименовать его в имя программы и изменить значок, чтобы он не показывался.

0

Для тех, кто находит этот пост, вы хотите использовать Application Compatibility Toolkit (ACT), чтобы изменить разрешения программы. Шаги довольно просты.

  1. Установите программу в вопросах и соответствующий пакет ACT на том же компьютере.
  2. Используйте ACT, чтобы создать базу данных и добавить столько "исправлений приложений", сколько вам нужно (по одному на файл EXE).
  3. Установите эти файлы на "runAsInvoker"
  4. Сохраните базу данных в виде файла SDB и установите его на соответствующие компьютеры.

Подробнее об этом рассказывается здесь: Избавьтесь от подсказок UAC с помощью ACT

0

Вы можете настроить скрипт для запуска агента обновлений в сценарии входа в систему на стороне пользователя объекта групповой политики и указать ему проверять версию вашего приложения, а также версию, установленную на сервере, для запуска установок. Затем на стороне компьютера gpo запустите политику в режиме петли групповой политики с слиянием. Это запустит обновление как локальная системная учетная запись.

0

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

Как мне легко повысить уровень при запуске файла .jar?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .