Мы собираемся развернуть несколько сотен новых машин под управлением Windows 7 x64 с установленной ОС через WDS так что на данный момент мы можем внести изменения и sysprep их в сборку.
Проблема заключается в приложении .NET, которое мы написали много лет назад, которое само порождает модифицированную командную оболочку. Эта оболочка запускает DataFlex (DataFlex 3.2 dfruncon), которое само должно запускаться с повышенными разрешениями.
Мы не предоставляем пользователям никаких общих прав администратора.
Есть ли механизм, позволяющий предварительно разрешить запуск нашего .NET-приложения от имени администратора, чтобы управление командами выполнялось от имени администратора?
Я знаю об изменениях, которые могу внести в app.manifest
файл, чтобы программа запускалась от имени администратора. Я не знаю, как я могу (как администратор) настроить машину, чтобы это произошло, не давая пользователю больше прав или учетных данных, чем я бы хотел. Есть ли что-то эквивалентное CasPol чтобы я мог указать, что данный EXE-файл может запускаться от имени администратора? Если нет, то как я мог бы точно выяснить, какие права должны быть у пользователя, чтобы разрешить запуск DataFlex dfruncon?
Лучшим подходом было бы определить, к каким ресурсам обращается ваше пользовательское приложение и приложение Dataflex, и предоставить этим ресурсам права аутентификации пользователей. Вы даже можете предоставить доступ с помощью групповой политики. Это не относится к Dataflex, это подход, который следует использовать с каждый применение.
Ресурсы обычно представляют собой файлы, папки и ключи реестра. Реже может потребоваться выполнение специальных функций, таких как создание глобальных разделов в памяти, что является правом Windows, которое можно предоставить с помощью групповой политики.
Вы можете определить ресурсы, к которым осуществляется доступ, с помощью монитора процессов SysInternals.
Если вы обнаружите, что приложению требуется доступ на запись к папке, и в этой папке есть исполняемые файлы, к которым вы предпочитаете, чтобы у пользователя не было доступа на запись, один из приемов - лишить права доступа к исполняемым файлам из родительской папки и предоставить Authenticate Users только чтение и выполнение для этих файлов.
Что вы можете сделать, это:
Таким образом, пользователь может запускать определенную программу с токеном администратора, но не другие (если пользователи попытаются изменить запланированную задачу, они не смогут применить изменения без учетных данных администратора).
На форумах Win7 есть довольно подробное пошаговое руководство: http://www.sevenforums.com/tutorials/11949-elevated-program-shortcut-without-uac-prompt-create.html