На моем рабочем месте реализованы машины Windows 7, и пользователям не предоставляют административные привилегии. Мой отдел создает приложения, которые работают локально на машине пользователя, и они работают обычно (насколько мы видели). Одно приложение, с другой стороны, не делает.
Это - приложение, которое обновляет другие (наш 'Агент Обновления'). Так, когда пользователь выполняет Агент Обновления, они сразу останавливаются с ошибкой, так как то приложение не смогло записать в C:\Program Files\our app\
Нам нужен путь к этим машинам Windows 7, чтобы позволить этому приложению быть выполненным как администратор или с правами администратора, когда пользователь выполняет их. Так как этим пользователям никогда не будут давать пароль администратора, 'Выполнение Как Администратор' не является опцией. Пользователь должен будет нажать на ярлык, и он работает с достаточным количеством полномочий изменить ту папку, записать в реестр, и т.д.
То, на что я надеюсь, является некоторым GPO или политикой или чем-то, что может быть настроено на доменном уровне, который позволит этому происходить; или, что-то настроенное на клиентских машинах однажды. Нашими приложениями является .net Framework 1.1 и 2.0, и подписанный с ключом.
Любое понимание ценилось бы.
Выполнять, что Вы хотите, самая легкая вещь, о которой я могу думать, означает создать запланированную задачу с административными учетными данными, которые будут выполнены в установленное время или интервал.
Можно управлять запланированными задачами через командную строку (schtasks.exe
) или сценарий входа в систему.
Однако я должен предупредить Вас, что каждый раз, когда Вы намеренно делаете дыры в своей собственной безопасности, Вы напрашиваетесь на неприятности позже по линии.
Только потребуется одна умная задница, чтобы найти название .exe, и изменить его или поместить независимо от того, что он хочет там вместо этого - например, они могут скопировать cmd.exe в местоположение и переименовать, затем внезапно у них есть командная строка с правами администратора! (хорошо, можно использовать полномочия NTFS и материал, они могли вынуть жесткий диск - можно использовать Bitlocker/encryption...), мнение, которое я пытаюсь высказать, это - дыра, которую Вы намеренно представляете.
Другое решение состояло бы в том, чтобы повторно спроектировать программу. Я предложил бы как своего рода системная служба, которая делает работу и просто имеет клиент, который вызывает сервис как и когда это необходимо. Это должно работать хорошо.
То, что мы закончили тем, что делали, создавало учетную запись домена, которая собиралась действовать как локальный администратор на каждой машине, которая была выставлена GPO. Мы затем можем запустить наше приложение обновления с помощью этих учетных данных.
Одна возможность состоит в том, чтобы создать зашифрованный сценарий VB с командой Runas для оболочки (команда). Вы могли запустить его для открытия этой программы, пока пользователь не может переместить файл и т.д. Вы могли даже создать ярлык, переименовать его к названию программы и изменить значок для создания его бесшовным.