Sa Windows Vistom Microsoft je uveo novi vid zaštite stručno poznat kao Mandatory Integrity Control. On podrazumeva četiri nivoa pristupa svakom procesu koji se izvršava.
low - najniži nivo pristupa koji nema ni jedan proces po defaultu osim ako nije eksplicitno konfigurisan za tako nešto
medium- ovaj nivo pristupa imaju SVI korisnički nalozi (oni koji se koriste za interaktivno logovanje) uključujući i administratore. To znači da po defaultu bilo koji program pokrenut od strane korisnika se izvršava sa ovim nivoom. Naravno ovaj nivo izvršavanja ne omogućava izmenu sistema niti bilo kakve administratorske manipulacije
high- ovo je administratorski nivo pristupa do koga se dolazi "elevacijom" postojećeg procesa. Da bi se potvrdila validnost elevacije UAC će pitati korisnika za korisničko ime i lozinku i tako prebaciti svu eventualnu odgovornost za štetu na korisnika. Time se takođe onemogućavaju nestašni programi da čeprkaju tamo gde ne bi trebalo.
system - Ovo je nivo ostavljen sistemskim procesima, kernelu itd.
Od Windows-a XP potoji mogućnost dodavanja specijalnog manifesta (datoteka u xml formatu) kojom se mogu definisati različiti parametri neophodni za pravilno izvršavanje neke aplikacije.
U Visti i ostalim novijim verzijama Windows-a manifesti se koriste za definisanje potrebnog nivoa pristupa za izvršavanje neke aplikacije. U slučaju instalacionih programa skoro uvek je neophodno navesti da zahtevaju high nivo pristupa.
Ovako izgleda manifest kojim se zahteva da neki exe bude izvršen sa administratorskim "high" nivoom. Dovoljno je ovo snimiti u praznu datoteku koja se zove <ime izvršnog fajla.exe>.manifest i staviti ga pored izvršnog fajla.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<v3:trustInfo xmlns:v3="urn:schemas-microsoft-com:asm.v3">
<v3:security>
<v3:requestedPrivileges>
<v3:requestedExecutionLevel level="requireAdministrator"/>
</v3:requestedPrivileges>
</v3:security>
</v3:trustInfo>
</assembly>
Kada se pokrene ponovo ovakav program UAC će da se pojavi i pita za elevaciju.
Varijanta 2 je da se ugradi ovaj manifest u exe kao resurs. Resursi tipa manifest imaju kod RT_MANIFEST (24).
InnoSetup koliko vidim ne podržava tu varijantu. Možda je bolje da se prebaciš na nsis.
Tko leti vrijedi