Programmation Windows - devez-vous laisser l'UAC activé?

11

Quel est le paramètre UAC (User Account Control) recommandé lors du développement sous Windows?

Même sur Win7, je trouve cela assez ennuyeux pour l'éteindre (car cela me rend plus productif sans cela) mais parfois je me sens mal parce que je sais que je trouverai plus de problèmes dans mon code si je le laisse allumé.

Brian R. Bondy
la source
"Ça marche sur ma machine!" La réponse classique d'un développeur à propos d'un problème avec son logiciel. Cela peut être dû à des différences de droits d'accès, de ressources matérielles ou de bibliothèques installées (et puis certaines). Essayez simplement d'être conscient des limites possibles de la machine d'un utilisateur par rapport à la vôtre et de tester si vous le pouvez avant la sortie. Parce que ... "Nous n'expédions pas votre machine!"
Martin Maat

Réponses:

16

La recommandation (même de la part de Microsoft) est de le laisser sur ON, et également d' exécuter votre IDE sans niveau autant que possible.

Tout d'abord, cela oblige le programmeur à vivre avec les mêmes "désagréments" qu'un utilisateur réel (si vous ne le connaissez pas, le programmez-vous correctement?).

Ensuite, désactiver l'UAC et travailler en tant qu'administrateur est aussi mauvais que sous Unix pour fonctionner en tant que root (des décennies de sagesse commune vous diront pourquoi c'est mauvais).

Wizard79
la source
4
Windows n'est pas Linux, ce n'est pas vraiment une bonne comparaison ..
Thomas Bonini
9
@Kop: courir avec tous les privilèges est bon ou mauvais quel que soit le système d'exploitation ... Je ne vois pas en quoi Windows et UNIX / Linux sont différents en cela.
Wizard79
1
@Brian: Certaines bibliothèques nécessitent encore des droits d'administrateur (comme le développement pour Azure), mais une grande majorité des tâches peuvent être effectuées en tant que non-administrateur.
Agent_9191
2
@Walter: vous pouvez créer des services Windows sans élévation. Vous avez cependant besoin de droits élevés pour installer / désinstaller le service. De toute façon, vous ne devez jamais installer quelque chose directement à partir de l'IDE, donc une invite de commande élevée fonctionne mieux car c'est ce que les professionnels de l'informatique finiraient par utiliser.
Agent_9191
2
@zneak: vous vous trompez. D'un point de vue technique, être un utilisateur root d'un administrateur (ou un administrateur élevé avec UAC) est exactement la même chose. Bien sûr, vous ne pouvez pas utiliser la commande format sur la partition système, mais ce n'est qu'un choix d'interface utilisateur. Vous pouvez utiliser un programme tiers qui formate les suppressions d'effacement de la partition système ou toute autre chose.
Wizard79
4

Peu importe si vous programmez avec ou sans, vous devez tester votre programme avec un compte utilisateur limité. Cela devrait résoudre la plupart des problèmes que les utilisateurs peuvent rencontrer avec l'exécution de votre programme avec un compte limité ou l'UAC activé.

Gélatine
la source
Le problème est que, si vous avez UAC OFF, vous devriez avoir une machine dédiée ou une machine virtuelle avec ON pour les tests.
Wizard79
Même si l'UAC est désactivé, un compte limité vous permettra toujours de tester des privilèges limités.
Gélatine du
2
Vous devez tester les deux scénarios unelevated et non privilégiés privilégiés.
Ben Voigt
4

J'exécute sur Windows 7 et je laisse l'UAC activé et mon compte n'est pas un vrai compte administrateur. Donc, lorsque je rencontre l'UAC, je dois entrer le mot de passe administrateur pour continuer. Même sous Vista, je l'ai gardé. J'ai entendu un certain nombre de développeurs dire que cela gênait, mais je n'ai pas encore vu cela. Sous Vista, c'était un problème plus important car plusieurs domaines étaient un peu trop restrictifs.

La question que je soulève toujours lorsque les développeurs disent que l'UAC gêne est: "Que faites-vous que vous continuez à rencontrer?". Si vous essayez de manipuler des fichiers dans des dossiers système (Windows, Program Files, sites IIS), vous faites quelque chose de mal. Les sites Web IIS peuvent exister en dehors de C: \ inetpub. Les bases de données utilisateur SQL Server peuvent exister en dehors de Program Files. La seule fois où vous devriez voir régulièrement l'invite UAC est l'installation et la mise à jour des applications. Si vous le voyez plus souvent, vous travaillez probablement contre le système plutôt qu'avec lui.

Agent_9191
la source
2
Visual Studio ne vous permet pas d'ouvrir un projet d'application Web hébergé IIS à moins qu'il ne s'exécute en mode élevé.
Heinzi
Pour étendre le point de @ Heinzi, si j'exécute deux versions de la même application (par exemple, deux branches SVN qui sont chacune stockées dans un emplacement différent), vous avez besoin de VS studio pour pouvoir définir IIS dans le dossier correct dans lequel vous travaillez. (c'est-à-dire la dernière solution que vous avez ouverte de ces deux). Sans privilèges élevés, non seulement vous devez mettre à jour IIS manuellement, vous courez le risque d'oublier et de tester une version complètement différente de l'application (dans le navigateur) que vous développez (dans VS)
Flater
1

À mon humble avis, cela se résume à ce que vous faites.

Dans mon travail actuel, je développe des applications Web et des services Windows. Pour cette raison, je trouve mon auto plus productif sans cela. Si je travaillais sur des applications qu'un utilisateur installerait, je le laisserais pour que je puisse être aussi proche que possible de ce que l'utilisateur expérimenterait.


la source
En quoi le fait de laisser l'UAC hors service aide? Le développement d'applications Web ne devrait pas nécessiter de droits d'administrateur, sauf pour la configuration initiale d'IIS. Les services Windows nécessitent des droits d'administrateur pour démarrer et arrêter, mais via une seule fenêtre de commande et net start/stopvous disposez d'une seule invite UAC. Sinon, vous devriez avoir la logique construite afin d'avoir un runner de ligne de commande et un runner Win Service.
Agent_9191
Cela n'aide pas au développement, mais cela enlève la gêne de l'UAC. Si vous n'en avez pas besoin pour simuler un accès limité, désactivez-le; sinon laissez-le
2
Le débogage d'une application Web hébergée dans IIS nécessite des privilèges élevés, je crois.
FinnNk