Независимо от того, какой метод вы используете (по крайней мере, для тех, кого я знаю), злоумышленники всегда найдут способ злоупотребить им и запустить другую программу с вашей учетной записью администратора. Поэтому, если у вас есть ненадежные технически подкованные пользователи, попытайтесь заблокировать учетную запись администратора, которую вы используете, насколько это возможно (или, если возможно, настройте места, в которые ваша программа хочет писать, чтобы не администраторы могли писать туда и программу работает без прав администратора, используйте ProcMon для их поиска).
- CPAU может использоваться для хранения программы с учетными данными в зашифрованном файле и повторного запуска программы с учетными данными без взаимодействия с пользователем (например, с помощью ярлыка)
- Существует программа под названием Win-SUDO, которая претендует на эмуляцию SUDO для Windows, но на самом деле она также хранит учетные данные, зашифрованные в реестре, в месте, доступном для чтения пользователями, которые могут использовать Win-SUDO.
- Сохранение учетных данных с помощью команды runas с помощью
savecred
тоже работает, но вы также можете запускать другие программы с правами администратора.
- Вы также можете создать «запланированное» задание, которое по расписанию никогда не будет запускаться и выполняется с учетными данными пользователя, и запускать его вручную при необходимости; этот метод также хранит учетные данные пользователя, который должен выполнить задачу, но в отличие от команды runas не так просто повторно использовать учетные данные для различных процессов. Обратите внимание, что таким способом невозможно запустить интерактивный процесс в Windows XP (или, по крайней мере, вы не можете взаимодействовать с ним).
В любом случае, правильным решением будет либо попытаться запустить исходную программу без прав администратора, либо запустить ее в качестве службы в фоновом режиме, если взаимодействие с пользователем не требуется. Или попытайтесь заставить поставщика предоставить фиксированную версию, которая работает без прав администратора или использует службу для тех частей, которые в них нуждаются.