Windows-Programmierung - sollten Sie die Benutzerkontensteuerung aktiviert lassen?

11

Was ist die empfohlene Benutzerkontensteuerung (User Account Control, UAC) bei der Entwicklung unter Windows?

Selbst unter Win7 finde ich es ärgerlich genug, um es auszuschalten (weil es mich produktiver macht), aber manchmal fühle ich mich schlecht, weil ich weiß, dass ich mehr Probleme in meinem Code finde, wenn ich es eingeschaltet lasse.

Brian R. Bondy
quelle
"Es funktioniert auf meiner Maschine!" Die klassische Antwort eines Entwicklers, der über ein Problem mit seiner Software informiert wurde. Dies kann auf Unterschiede bei Zugriffsrechten, Hardwareressourcen oder installierten Bibliotheken (und einigen anderen) zurückzuführen sein. Versuchen Sie einfach, sich der möglichen Einschränkungen des Computers eines Benutzers im Vergleich zu Ihrem Computer bewusst zu sein, und testen Sie vor der Veröffentlichung, ob dies möglich ist. Weil ... "Wir versenden Ihre Maschine nicht!"
Martin Maat

Antworten:

16

Die Empfehlung (auch von Microsoft) besteht darin, sie eingeschaltet zu lassen und Ihre IDE nach Möglichkeit unbeaufsichtigt auszuführen .

Zuallererst zwingt es den Programmierer, mit den gleichen "Ärgernissen" zu leben, die ein Benutzer in der realen Welt haben wird (wenn Sie es nicht wissen, würden Sie es richtig programmieren?).

Dann ist das Deaktivieren der Benutzerkontensteuerung und das Arbeiten als Administrator genauso schlecht wie unter Unix, um als Root zu arbeiten (jahrzehntelange allgemeine Weisheit zeigt Ihnen, warum das schlecht ist).

Wizard79
quelle
4
Windows ist kein Linux, das ist kein wirklich guter Vergleich.
Thomas Bonini
9
@Kop: Das Ausführen mit vollen Berechtigungen ist unabhängig vom Betriebssystem entweder gut oder schlecht ... Ich kann nicht sehen, wie sich Windows und UNIX / Linux darin unterscheiden.
Wizard79
1
@Brian: Es gibt noch einige Bibliotheken, für die Administratorrechte erforderlich sind (z. B. das Entwickeln für Azure), aber die überwiegende Mehrheit der Aufgaben kann als Nicht-Administrator ausgeführt werden.
Agent_9191
2
@Walter: Sie können Windows-Dienste ohne Erhöhung erstellen. Sie benötigen jedoch erhöhte Rechte, um den Dienst zu installieren / deinstallieren. Sie sollten sowieso nie etwas direkt von der IDE installieren, daher funktioniert eine Eingabeaufforderung mit erhöhten Rechten besser, da die IT-Experten diese letztendlich verwenden würden.
Agent_9191
2
@zneak: du liegst falsch. Aus technischer Sicht ist es genau dasselbe, ein Root-Benutzer eines Administrators (oder ein erhöhter Administrator mit UAC) zu sein. Natürlich können Sie den Befehl format nicht auf der Systempartition verwenden, aber dies ist nur eine Auswahl der Benutzeroberfläche. Sie können ein Programm eines Drittanbieters verwenden, das die Systempartition löscht, oder alles andere.
Wizard79
4

Unabhängig davon, ob Sie mit ein- oder ausgeschaltet programmieren, sollten Sie Ihr Programm mit einem eingeschränkten Benutzerkonto testen. Dies sollte die meisten Probleme lösen, die Benutzer möglicherweise beim Ausführen Ihres Programms mit einem eingeschränkten Konto oder bei aktivierter Benutzerkontensteuerung haben.

Gelatine
quelle
Das Problem ist, dass Sie bei ausgeschalteter Benutzerkontensteuerung eine dedizierte Maschine oder eine virtuelle Maschine für die Tests eingeschaltet haben sollten.
Wizard79
Selbst wenn die Benutzerkontensteuerung deaktiviert ist, können Sie mit einem eingeschränkten Konto eingeschränkte Berechtigungen testen.
Gelatine
2
Sie müssen sowohl nicht privilegierte als auch privilegierte nicht erhöhte Szenarien testen.
Ben Voigt
4

Ich verwende Windows 7 und lasse die Benutzerkontensteuerung aktiviert. Mein Konto ist kein echtes Administratorkonto. Wenn ich auf die Benutzerkontensteuerung stoße, muss ich das Administratorkennwort eingeben, um fortzufahren. Auch unter Vista habe ich es weiter gemacht. Ich habe eine Reihe von Entwicklern sagen hören, dass es im Weg steht, aber das habe ich noch nicht gesehen. Unter Vista war es ein größeres Problem, da einige Bereiche etwas zu restriktiv waren.

Die Frage, die ich immer wieder aufwerfe, wenn Entwickler sagen, dass die Benutzerkontensteuerung im Weg steht, lautet: "Was machst du, dass du immer wieder darauf stößt?". Wenn Sie versuchen, Dateien in Systemordnern (Windows, Programme, IIS-Sites) zu bearbeiten, machen Sie etwas falsch. IIS-Websites können außerhalb von C: \ inetpub vorhanden sein. SQL Server-Benutzerdatenbanken können außerhalb von Programmdateien vorhanden sein. Die UAC-Eingabeaufforderung sollte nur regelmäßig angezeigt werden, wenn Anwendungen installiert und aktualisiert werden. Wenn Sie es öfter sehen, arbeiten Sie wahrscheinlich eher gegen das System als mit ihm.

Agent_9191
quelle
2
In Visual Studio können Sie ein von IIS gehostetes Webanwendungsprojekt nur öffnen, wenn es mit erhöhten Rechten ausgeführt wird.
Heinzi
Wenn Sie zwei Versionen derselben Anwendung ausführen (z. B. zwei SVN-Zweige, die jeweils an einem anderen Speicherort gespeichert sind), benötigen Sie VS Studio, um IIS auf den richtigen Ordner einstellen zu können, in dem Sie arbeiten (dh die letzte Lösung, die Sie von diesen beiden geöffnet haben). Ohne erhöhte Berechtigungen müssen Sie IIS nicht nur manuell aktualisieren, sondern es besteht auch die Gefahr, dass Sie eine völlig andere Version der Anwendung (im Browser) vergessen und testen, als Sie (in VS) entwickeln
Flater
1

IMHO, es läuft darauf hinaus, was Sie tun.

In meinem aktuellen Job entwickle ich Web-Apps und Windows-Dienste. Aus diesem Grund finde ich mich selbst produktiver, wenn ich es ausschalte. Wenn ich an Apps arbeiten würde, die ein Benutzer installieren würde, würde ich sie aktiviert lassen, damit ich so nah wie möglich an dem sein kann, was der Benutzer erleben würde.


quelle
Wie hilft es, die Benutzerkontensteuerung auszuschalten? Für die Entwicklung von Web-Apps sollten keine Administratorrechte erforderlich sein, außer für die erstmalige Einrichtung von IIS. Für Windows-Dienste sind Administratorrechte zum Starten und Stoppen erforderlich. Über ein einziges Befehlsfenster erhalten net start/stopSie jedoch eine einzige UAC-Eingabeaufforderung. Andernfalls sollte die Logik so aufgebaut sein, dass Sie einen Befehlszeilenläufer und einen Win Service-Läufer haben.
Agent_9191
Es hilft nicht bei der Entwicklung, aber es nimmt den Ärger der Benutzerkontensteuerung. Wenn Sie es nicht zur Simulation von Zugriff mit geringem Zugriff benötigen, schalten Sie es aus. Andernfalls lassen Sie es auf
2
Das Debuggen einer in IIS gehosteten Web-App erfordert meines Erachtens erhöhte Berechtigungen.
FinnNk