Domanda

ho tentato di fare alcune cose Win32 in C # 3.5 per ottenere elevati diritti utente per una console app. I sviluppare su Visual Studio 2008 SP1 / GDR e le cose funzionano bene quando viene eseguito nel debugger. Cose anche il lavoro bene quando ho eseguito l'applicazione console stand-alone. Le cose funzionano bene anche quando Che tipo di imballaggio tutto in un MSI e installarlo su un server 2003 e eseguire l'applicazione console.

Se prendo lo stesso MSI e installarlo su un server 2008 con UAC abilitato, quindi eseguire l'applicazione console, ricevo messaggi come questo:

Unable to set right for the account "DOMAIN\QAUSER": SeCreateGlobalPrivilege
System.UnauthorizedAccessException    Attempted to perform an unauthorized operation.

Non posso pretendere i miei amministratori distribuzione / server per fare qualsiasi cosa con la mia app diverso installarlo, e non hanno intenzione di spegnere UAC. Ci deve essere un modo programmatico per impostato correttamente i diritti degli utenti che posso aggiungere alla console app -? Qualcuno sa come

Grazie.

È stato utile?

Soluzione

Probabilmente si utilizza " Global \" il prefisso per il nome dell'oggetto nella propria applicazione e la vostra domanda verrà avviato all'interno di un desktop remoto Host sessione (Host sessione) sessione del server. Nel caso il vostro programma deve abilitare SE_CREATE_GLOBAL_NAME (SeCreateGlobalPrivilege) privilegio. Vedere C # - Come abilitare SeDebugPrivilege (ma l'uso SE_CREATE_GLOBAL_NAME invece di? SE_DEBUG_NAME) o Manipolare privilegi in codice gestito affidabile, sicuro, efficiente e come un esempio.

Altri suggerimenti

Suppongo che UAC è abilitato sulla macchina 2008 e non posso commentare ancora sulla sua domanda per scoprirlo.

Se è così, assicurarsi che nel file app.manifest in VS (sotto Proprietà), il cambiamento

<requestedExecutionLevel  level="asInvoker" uiAccess="false" />

a

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

Anche se il codice viene eseguito come amministratore, è necessario ottenere dal l'avviso UAC.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top