Programmazione Windows: dovresti lasciare UAC attivo?


11

Qual è l'impostazione consigliata per il controllo dell'account utente (UAC) durante lo sviluppo su Windows?

Anche su Win7 lo trovo abbastanza fastidioso da disattivarlo (perché mi rende più produttivo con esso disattivato) ma a volte mi sento male perché so che troverò più problemi nel mio codice se lo lascio acceso.


"Funziona sulla mia macchina!" La risposta classica di uno sviluppatore a cui viene detto di un problema con il suo software. Ciò potrebbe essere dovuto alle differenze nei diritti di accesso, nelle risorse hardware o nelle librerie installate (e quindi in alcune). Cerca di essere consapevole delle possibili limitazioni della macchina di un utente rispetto alla tua e verifica se è possibile prima del rilascio. Perché ... "Non spediamo la tua macchina!"
Martin Maat

Risposte:


16

Il consiglio (anche da parte di Microsoft) è di lasciarlo attivo e di eseguire il proprio IDE non pertinente quando possibile.

Prima di tutto, costringe il programmatore a vivere con gli stessi "fastidi" che un utente del mondo reale avrà (se non lo sapessi, programmeresti correttamente attorno ad esso?).

Quindi, disabilitare UAC e lavorare come amministratore è negativo come in Unix per funzionare come root (decenni di saggezza comune ti diranno perché è negativo).


4
Windows non è Linux, non è proprio un buon confronto ..
Thomas Bonini,

9
@Kop: l'esecuzione con tutti i privilegi è positiva o negativa indipendentemente dal sistema operativo ... Non riesco a vedere come Windows e UNIX / Linux siano diversi in questo.
Wizard79,

1
@Brian: ci sono ancora alcune librerie che richiedono diritti di amministratore (come lo sviluppo per Azure), ma la maggior parte delle attività può essere eseguita come non amministratore.
Agent_9191

2
@Walter: è possibile creare servizi Windows senza elevazione. Tuttavia, per installare / disinstallare il servizio sono necessari diritti elevati. Non dovresti mai installare qualcosa direttamente dall'IDE, quindi un prompt dei comandi elevato funziona meglio poiché è quello che i professionisti IT finiscono per usare.
Agent_9191

2
@zneak: ti sbagli. Da un punto di vista tecnico essere un utente root di un amministratore (o un amministratore elevato con UAC) è esattamente la stessa cosa. Ovviamente non è possibile utilizzare il comando format sulla partizione di sistema, ma questa è solo una scelta dell'interfaccia utente. È possibile utilizzare un programma di terze parti che cancella i formati della partizione di sistema o qualsiasi altra cosa.
Wizard79,

4

Indipendentemente se si programma con esso acceso o spento, è necessario testare il programma con un account utente limitato. Ciò dovrebbe rilevare la maggior parte dei problemi che gli utenti potrebbero avere nell'esecuzione del programma con un account limitato o l'UAC attivato.


Il problema è che, se hai UAC OFF, dovresti avere una macchina dedicata o una macchina virtuale con esso ON per i test.
Wizard79,

Anche se l'UAC è disattivato, un account limitato ti consente comunque di testare i privilegi limitati.
Gelatina

2
È necessario verificare entrambi gli scenari terra terra senza privilegi e privilegiati.
Ben Voigt

4

Sono in esecuzione su Windows 7 e lascio UAC attivo e il mio account non è un vero account amministratore. Quindi, quando mi imbatto in UAC, devo inserire la password dell'amministratore per continuare. Anche sotto Vista l'ho tenuto acceso. Ho sentito un certo numero di sviluppatori dire che si mette in mezzo, ma devo ancora vederlo. Sotto Vista era un problema più grande in quanto diverse aree erano un po 'troppo restrittive.

La domanda che sollevo sempre quando gli sviluppatori dicono che UAC si mette in mezzo è "Che cosa stai facendo che continui ad affrontare?". Se stai tentando di manipolare i file nelle cartelle di sistema (Windows, Programmi, siti IIS), stai facendo qualcosa di sbagliato. I siti Web IIS possono esistere al di fuori di C: \ inetpub. Database di utenti di SQL Server possono esistere al di fuori dei file di programma. L'unica volta che dovresti vedere regolarmente il prompt di Controllo dell'account utente sono le installazioni e gli aggiornamenti delle applicazioni. Se lo vedi più spesso, probabilmente stai lavorando contro il sistema piuttosto che con esso.


2
Visual Studio non ti consente di aprire un progetto di applicazione Web ospitato IIS a meno che non sia in esecuzione elevata.
Heinzi,

Per estendere il punto di @ Heinzi, se eseguo due versioni della stessa applicazione (ad esempio due rami SVN che sono memorizzati in una posizione diversa), è necessario VS studio per poter impostare IIS sulla cartella corretta in cui si sta lavorando (ovvero l'ultima soluzione che hai aperto di questi due). Senza privilegi elevati, non solo devi aggiornare IIS manualmente, corri il rischio di dimenticare e testare una versione completamente diversa dell'applicazione (nel browser) rispetto a quella che stai sviluppando (in VS)
Flater

1

IMHO, si riduce a quello che stai facendo.

Nel mio lavoro attuale sviluppo app Web e servizi Windows. Per questo motivo trovo il mio io più produttivo senza farlo. Se stavo lavorando su app che un utente avrebbe installato, l'avrei lasciato in modo da essere il più vicino possibile a ciò che l'utente avrebbe vissuto.


In che modo lasciare fuori controllo dell'account utente? Lo sviluppo di app Web non dovrebbe richiedere diritti di amministratore, ad eccezione della configurazione iniziale di IIS. I servizi di Windows richiederebbero i diritti di amministratore per avviarsi e fermarsi, ma attraverso una singola finestra di comando e net start/stophai un unico prompt UAC. Altrimenti dovresti avere la logica costruita in modo da avere un corridore della riga di comando e un corridore del servizio Win.
Agent_9191,

Non aiuta con lo sviluppo, ma toglie il fastidio di Controllo dell'account utente. Se non è necessario per la simulazione di accesso basso, disattivarlo; altrimenti lascialo acceso

2
Credo che il debug di un'app Web ospitata in IIS richieda privilegi elevati.
FinnNk
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.