Вы можете программно установить флаг "Запускать эту программу от имени администратора" (параметр, который вы найдете на вкладке "Совместимость" свойств EXE-файла), установив простой ключ реестра. Вам необходимо создать строковое значение (REG_SZ) под одним из этих ключей (если вы хотите, чтобы настройка была для пользователя или для компьютера, соответственно):
HKEY_CURRENT_USER\ Программное обеспечение \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers
или же
HKEY_LOCAL_MACHINE\ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers
Имя значения должно быть полным путем к вашему исполняемому файлу (если путь содержит пробелы, не заключайте путь в кавычки), а данные значения должны содержать строку RUNASADMIN
.
Источник вышеуказанной информации (от SO)
Вот пример сценария PowerShell, который применяет флаг (для текущего пользователя) ко всем EXE-файлам в текущей папке:
$exes = Get-Item *.exe
New-Item -Path "HKCU:\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags" -Name "Layers" -Force
foreach ($exe in $exes) {
New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" -Name "$exe" -Value RUNASADMIN -PropertyType String -Force
}