Come per consentire per consentire agli amministratori di modificare i file di configurazione del mio app senza UAC elevazione?

StackOverflow https://stackoverflow.com/questions/2444265

Domanda

La mia azienda produce un'applicazione server cross-platform che carica la sua configurazione dal file di configurazione modificabili dall'utente. Su Windows, ACL di file di configurazione sono bloccati dal nostro programma di installazione per consentire la lettura da parte di tutti gli utenti, ma limitare l'editing di amministratori e solo sistema locale.

Purtroppo, in Windows Server 2008, gli amministratori locali, anche non hanno più privilegi di amministratore (a causa di UAC) a meno che non si sta eseguendo un app elevata. Questo ha causato lamentele da parte degli utenti che non possono usare il loro editor di testo preferito per aprire e salvare i file di configurazione changes-- possono aprire i file (dal momento che chiunque può leggere), ma non possono salvare.

Qualcuno ha suggerimenti per quello che possiamo fare (se non altro) nel programma di installazione di nostra applicazione per rendere più semplice l'editing per gli amministratori su Windows Server 2008?

Domande correlate: se un Windows Server 2008 amministratore vuole modificare un file di configurazione admin-solo, come fa di solito lo fa? È lui costretto ad usare un editor di testo che è abbastanza intelligente per auto-elevare quando è necessaria l'elevazione, come Windows Explorer fa in risposta ad accesso negato errori? Egli lanciare l'editor da una finestra del prompt dei comandi elevati? Qualcos'altro?

È stato utile?

Soluzione

A mio parere un amministratore che non riesce a destra-clic su Blocco note e selezionare "Esegui come amministratore" non dovrebbe essere un amministratore, ma ben ... nella vita reale ci sono tali amministratori in giro.

UAC funziona disabilitando il gruppo di amministratori SID dal token di protezione dell'utente, fino a quando si esegue un programma con privilegi elevati. Durante l'esecuzione in modalità non-sopraelevata c'è purtroppo alcun modo per utilizzare i diritti amministrativi.

Una soluzione, che richiede purtroppo una quantità non trascurabile di lavoro potrebbe essere quello di:

  • Creare un nome suffisso del file personalizzato per il file di configurazione.
  • Creare una piccola applicazione che è registrato come il gestore per quel file di configurazione.
  • Segna la piccola applicazione come richiedono privilegi elevati (si può fare questo come si sta creando una nuova applicazione).

L'unica cosa che la piccola applicazione dovrebbe fare è quello di individuare il gestore registrato per file .txt nel Registro di sistema e quindi utilizzarlo per aprire il file -. Con privilegi elevati

Altri suggerimenti

Questa non è complicato per gli amministratori si rispetti. Aprire l'editor di testo elevato, file aperto, salvare, fatto. La maggior parte delle persone che modifica i file di configurazione vengono utilizzati per il rituale ora. la gente Unix fanno questo di riflesso (con sudo); è solo difficile in Windows, perché è ancora un po 'territorio sconosciuto per alcuni utenti.

Realisticamente, avrebbero lo stesso problema se si trattasse di un'impostazione di registro HKLM, tranne che avrebbero dovuto elevare regedit o Powershell o quello che normalmente si usa per modificare le impostazioni del Registro di sistema.

Se non riescono a capirlo, si potrebbe scegliere di disattivare UAC del tutto, o abbassare una tacca o due, ma ho il sospetto, se non riesco a capire come aprire un editor elevata questo creerà più problemi di quanto non lo risolverà.

dovrebbe deve pensare prima di fare grandi cambiamenti al file di configurazione a livello di sistema. L'elevazione UAC è solo un pio sufficiente che dovrebbe darvi una pausa se non avete intenzione di fare un cambiamento a livello di sistema.

Se non fosse un servizio, è possibile utilizzare% USERPROFILE% per memorizzare le impostazioni di configurazione, ma in generale, i servizi vengono eseguiti con una credenziale utente diverso da quello normale account del sysadmin.

applicazioni Dotnet potrebbero scegliere di memorizzare le informazioni nella cartella restituita dalla Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData); persone possono avere bisogno di elevazione di scrivere in quella cartella al di fuori servizio, ma se a loro non piace l'interfaccia utente admin e lo fanno come il loro editor di testo, è lo stesso del problema originale:. hanno solo bisogno di imparare a utilizzare il controllo dell'account utente

Per la seconda domanda: per una soluzione rapida aggiungo notepad alle finestre Barra, fare clic destro, Esegui come amministratore, aprire il file, apportare le modifiche e salvarlo

.

Abbiamo spostato tutta la nostra impostazione applicazione al database. Vedere il mio post sul blog qui. si può facilmente vedere come è possibile creare una pagina web per modificare quella ed avere tutte le autorizzazioni vivere nella applicazione web.

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