Se dalla propria applicazione .NET sotto Windows Vista si vuole avviare un programma con privilegi di amministratore, è sufficiente utilizzare il verb "runas":
ProcessStartInfo psi = new ProcessStartInfo("notepad.exe");
psi.Verb = "runas";
Process.Start(psi);
In questo modo, prima di avviare il programma viene visualizzato il solito messaggio di conferma della UAC. Qualora non si conceda l'autorizzazione, il metodo Process.Start genera una Win32Exception.
NOTA: se si prova questo codice all'interno di Visual Studio, il programma sarà eseguito senza chiedere conferma: tale comportamento è corretto perché l'ambiente di sviluppo, da cui viene eseguita l'applicazione, dispone già dei diritti di amministratore (a patto, naturalmente, di eseguire Visual Studio 2005 come amministratore).