Windows 7-64bit - Win32 API, чтобы пожертвовать (отодвинуть) административные привилегии для программы - PullRequest
0 голосов
/ 18 января 2011

У меня есть программа, которая создает временные файлы. Если эта программа запускается как администратор с повышенными привилегиями, результирующие файлы не могут быть удалены без «повышенных» прав, даже если пользователь является администратором. Это заставляет пользователя всегда запускать приложение с «Запуск от имени администратора»

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

Ответы [ 2 ]

2 голосов
/ 19 января 2011

Манифест может предписать Windows запустить приложение asInvoker, но если пользователь щелкнет правой кнопкой мыши и выберет «Запуск от имени администратора», приложение будет активировано. Я бы соблазнился справиться с этим посредством обучения пользователей, но есть кое-что программное, что вы можете сделать - решать вам, стоит ли оно того. Вы можете проверить, работает ли пользователь с повышенными правами (в основном IsInRole скажет, что пользователь является администратором, если и только если приложение имеет повышенные права), а если нет, запустите другой процесс без повышенных прав (я уверен, что есть вопросы здесь показано это, но вот некоторые записи в блоге, которые я случайно написал, ссылаясь на способы сделать это native и managed ), которые создают фактические файлы.

1 голос
/ 18 января 2011

Нет, вы не можете принудительно запустить программу без повышения прав, особенно в коде, поскольку повышение прав происходит до запуска любого кода. Если пользователь хочет, чтобы приложение запускалось с повышенными правами, оно будет запускаться с повышенными правами. Однако вы можете сделать так, чтобы ваше приложение создавало свои файлы по мере необходимости и просто использовало SetFileSecurity() или SetNamedSecurityInfo(), чтобы обеспечить неограниченный доступ для всех пользователей. См. http://support.microsoft.com/kb/102102 для получения дополнительной информации.

...