Come ottenere l'autorizzazione elevata per modificare un registro clsid, con un frammento Wix
Domanda
Sto cercando di impostare la ricerca desktop di Windows per utilizzare un filtro HTML diverso diverso dal filtro predefinito del sistema (NLHTML.DLL). Quando cerco il persistente Handler (HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.html\PersistentHandler
) indica HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{eec97550-47a9-11cf-b952-00aa0051fe20}
.
Voglio cambiare il valore di CLSID sopra. Di seguito è riportato lo snippet Wix
<?define PersistentHandler_HtmlIFilter="eec97550-47a9-11cf-b952-00aa0051fe20"?>
<RegistryValue Action="write" Root="HKLM" Key="SOFTWARE\Classes\CLSID\{$(var.PersistentHandler_HtmlIFilter)}" Value="MY HTML Persistent Handler" Type="string" />
Ma il valore non è cambiato.
Per quanto riguarda il permesso; Solo TrustInstaller ha il pieno controllo di questa voce. L'amministratore, il sistema e altri utenti hanno solo l'autorizzazione di lettura.
Come posso ottenere l'autorizzazione elevata per far cambiare questo registro usando Wix. Questo fa parte di un progetto più ampio e sto solo modificando un frammento di script Wix (<Fragment>.. </Fragment>
).
Grazie.
Soluzione
Non puoi. Le chiavi del registro limitate a TrustEdInstaller indicano le chiavi che sono protette da Protezione delle risorse di Windows. Windows Installer non modificherà queste chiavi.