Простой вариант - включить манифест, указывающий, что приложению необходимы права администратора. Тогда Vista автоматически запросит повышение прав. Манифест должен выглядеть примерно так:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="ApplicationName" type="win32"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Вы можете использовать инструмент mt.exe, чтобы добавить его в существующее приложение.
В качестве альтернативы вы можете перезапустить программу с правами администратора непосредственно перед фактическим обновлением. Таким образом, пользователю не нужно будет всегда работать с правами администратора - только при обновлении.