Назад | Перейти на главную страницу

Могу ли я изменить среду Windows 7, чтобы программа .NET всегда могла запускаться от имени администратора?

Мы собираемся развернуть несколько сотен новых машин под управлением Windows 7 x64 с установленной ОС через WDS так что на данный момент мы можем внести изменения и sysprep их в сборку.

Проблема заключается в приложении .NET, которое мы написали много лет назад, которое само порождает модифицированную командную оболочку. Эта оболочка запускает DataFlex (DataFlex 3.2 dfruncon), которое само должно запускаться с повышенными разрешениями.

Мы не предоставляем пользователям никаких общих прав администратора.

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

Я знаю об изменениях, которые могу внести в app.manifest файл, чтобы программа запускалась от имени администратора. Я не знаю, как я могу (как администратор) настроить машину, чтобы это произошло, не давая пользователю больше прав или учетных данных, чем я бы хотел. Есть ли что-то эквивалентное CasPol чтобы я мог указать, что данный EXE-файл может запускаться от имени администратора? Если нет, то как я мог бы точно выяснить, какие права должны быть у пользователя, чтобы разрешить запуск DataFlex dfruncon?

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

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

Вы можете определить ресурсы, к которым осуществляется доступ, с помощью монитора процессов SysInternals.

Если вы обнаружите, что приложению требуется доступ на запись к папке, и в этой папке есть исполняемые файлы, к которым вы предпочитаете, чтобы у пользователя не было доступа на запись, один из приемов - лишить права доступа к исполняемым файлам из родительской папки и предоставить Authenticate Users только чтение и выполнение для этих файлов.

Что вы можете сделать, это:

  1. Создайте запланированную задачу и настройте ее для запуска с повышенными привилегиями от имени учетной записи администратора.
  2. запланируйте его, чтобы он никогда не запускался, а затем поместите ярлык для запуска задачи из стандартного пользовательского dekstop.

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

На форумах Win7 есть довольно подробное пошаговое руководство: http://www.sevenforums.com/tutorials/11949-elevated-program-shortcut-without-uac-prompt-create.html