Вам необходимо подключить его к планировщику задач, чтобы он запускался после входа пользователя в систему, используя учетную запись пользователя, имеющего административный доступ в системе, с наивысшими привилегиями, которые предоставляются процессам, запускаемым этой учетной записью.
Это реализация, которая используется для автоматического запуска процессов с правами администратора при входе в систему как обычный пользователь.
Я использовала его для запуска вспомогательного процесса OpenVPN GUI, который требует повышенных правпривилегии для правильной работы и, следовательно, не будут запускаться должным образом из раздела реестра.
Из командной строки вы можете создать задачу из XML-описания того, что вы хотите выполнить;так, например, у нас есть это, экспортированное из моей системы, которое запустит блокнот с самыми высокими привилегиями при входе в систему:
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2015-01-27T18:30:34</Date>
<Author>Pete</Author>
</RegistrationInfo>
<Triggers>
<LogonTrigger>
<StartBoundary>2015-01-27T18:30:00</StartBoundary>
<Enabled>true</Enabled>
</LogonTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>CHUMBAWUMBA\Pete</UserId>
<LogonType>InteractiveToken</LogonType>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>"c:\windows\system32\notepad.exe"</Command>
</Exec>
</Actions>
</Task>
, и это будет зарегистрировано в командной строке администратора с помощью:
schtasks /create /tn "start notepad on login" /xml startnotepad.xml
этот ответ действительно должен быть перенесен на один из других сайтов обмена стека, так как на самом деле это не вопрос программирования как таковой.