Ich habe erst im Mai auf Vista umgestellt und eines der Dinge, von denen ich immer gehört habe, dass Entwickler es im echten Leben kennen, ist: "Als erstes solltest du den UAC-Mist ausschalten"
Nun, ich habe es die ganze Zeit aus ein paar Gründen verlassen. Erstens, als Ausfallsicherung für den Fall, dass ich etwas idiotisches mache, habe ich einen momentanen Grund und starte einen Anhang von einer E-Mail, oder falls ich eine Seite betrachte, die einen ungepatchten Exploit trifft. Zweitens, als ein großes Experiment, um zu sehen, wie gut oder schlecht es wirklich ist.
Schließlich denke ich, dass es einige bessere Praktiken durchsetzt. Ich habe jede Webseite in Windows direkt in inetpub \ wwwroot entwickelt (Visual Studio .NET 2003 hat das mehr oder weniger benötigt), aber jetzt entwickle ich sie woanders, weil das UAC Clickfest ein Albtraum ist. Ich denke, das ist Microsofts Art zu sagen "Sie sollten wirklich es so machen".
Eine andere Analogie: Wenn Sie eine Webanwendung geschrieben haben, die auf XP und 2000 läuft, aber 50 verschiedene Sicherheitsfunktionen von Server 2003 erfordert, ist die wirkliche Lösung möglicherweise, die Anwendung so zu reparieren, dass Die Sicherheitsfunktionen müssen nicht deaktiviert werden.
Aber jetzt muss ich mit einer App arbeiten, die wirklich NICHT entworfen wurde, um außerhalb von inetpub / wwwroot entwickelt zu werden, und so ist UAC wirklich ein Ärgernis. Es würde den Rahmen des Projekts sprengen, dies zu korrigieren. Ich möchte bei meinen Waffen bleiben und die UAC beibehalten, aber ich mache mir auch Sorgen, dass ich so autopilot bin, wenn ich dreimal auf "Ja" oder "Zulassen" klicke, wenn ich eine Datei modifizieren muss.
Bin ich nur hartköpfig? Lassen die meisten Entwickler auf Vista die Benutzerkontensteuerung ein- oder ausschalten? Und gibt es für den oben beschriebenen Fall einen besseren / einfacheren Weg?
Ich denke, es ist notwendig, die Benutzerkontensteuerung auf einem Testcomputer zu aktivieren, damit Sie sehen können, was ein echter Benutzer mit Ihrer App sehen würde. Allerdings schalte ich es auf meiner Entwicklungsmaschine aus, da ich es ablenkend finde, und ich vertraue mir selbst genug, um es nicht zu brauchen.
(Hoffentlich ist Ihre Testmaschine! = Ihre Dev-Maschine richtig?)
All dies wird gesagt, ich unterstütze die UAC und ich empfehle niemandem das abzuschalten, besonders "normale Benutzer".
Ich code in einem Standardbenutzerkonto mit aktivierter Benutzerkontensteuerung.
Nein, ich schließe die Benutzerkontensteuerung nicht.
Programmieren von C # winform und Web mit IIS. Die Datenbank ist progresql. Keine Notwendigkeit, sich mit UAC zu beschäftigen. Einige Programme benötigen nur 1 Autorisierung, keine große Sache.
Ich halte die UAC an. Ich finde es nützlich, in einer ähnlichen Umgebung wie mein Endbenutzer zu entwickeln. Wenn ich also Code schreibe, der versucht, aus Sperrbereichen zu lesen / schreiben, werde ich schneller darüber informiert.
UAC ist auf den ersten Blick unglaublich nervig, wenn man ein neues System bekommt. Das Problem ist, dass Sie beim Start mit einer neuen Installation alle Arten von Programmen einrichten und Einstellungen anpassen müssen. Es sieht so aus, als ob Sie die UAC-Eingabe alle 5 Minuten sehen.
Nach einer Weile passieren zwei Dinge:
An diesem Punkt ist UAC nicht mehr so schlecht. Ich habe UAC aktiviert und ich habe in den letzten Wochen nur eine oder zwei Aufforderungen gesehen. Das stimmt ungefähr perfekt: Wenn ich eine Eingabeaufforderung sehe, die ich nicht erwartet habe, weiß ich, dass ich wirklich fortfahren möchte.
Ich werde argumentieren, dass der zweite Effekt den Zweck vereitelt. Was sie tun sollten ist, dass die Benutzerkontensteuerung standardmäßig deaktiviert ist, aber nur für den ersten Monat. Nach dem ersten Monat werden Sie aufgefordert, die Benutzerkontensteuerung einzuschalten, wobei die Standardoption für jemanden, der die Dinge nicht wirklich liest, darin besteht, sie einzuschalten. Dann sind die Leute während ihrer Einrichtungsphase nicht verärgert und es ist einfacher, eine fundierte Entscheidung darüber zu treffen, was Sie mit UAC machen wollen.
Ich lasse es eingeschaltet, aber ich habe es so eingerichtet, dass Privilegien bei Bedarf automatisch erhöht werden. Es ist eine feine Unterscheidung, aber dennoch eine Unterscheidung.
Dienste wie Microsoft SQL Server werden mit Administratorrechten ausgeführt. Visual Studio dagegen nicht. Auch die meisten Entwickler-Tools nicht.
Ich verwende große virtuelle Maschinen, um 1) sicherzustellen, dass meine Entwicklungsumgebung jederzeit sicher ist, und 2) , um Software mit dem Potenzial zu testen, zu verlassen meine Maschine FUBAR. Und 3) um die Ausfallzeit zu begrenzen, meine Entwicklungsumgebung wiederherzustellen, "falls ich etwas Idiotisches mache, wie einen Moment der Vernunft und einen Anhang von einer E-Mail ausführen" :)
Ich habe Windows 2008 in meiner Workstation verwendet, um den Ratschlägen auf Ссылка zu folgen, und es hat großartig für mich funktioniert. Ich kann mich nicht daran erinnern, die UAC abgeschaltet zu haben, aber ich habe es sicherlich nicht ertragen, also schätze ich, dass es ausgeschaltet ist.
Wie andere bereits gesagt haben, müssen Sie Test [virtuelle] Maschinen haben, die so nah wie möglich an denen Ihrer Benutzer konfiguriert sind, damit Sie keine Überraschungen bei der Bereitstellung Ihrer App haben.
Ich denke, ob Sie dies tun oder nicht, sollte von der Zielgruppe für Ihre Anwendung abhängen, obwohl ich Leute vollständig verstehen kann, die es deaktivieren.
Wenn alle Benutzer Vista mit deaktiviertem Benutzeraccount ausführen, denke ich, dass Sie es schaffen können, es auszuschalten, aber das ist wahrscheinlich nicht realistisch - oder ratsam. Am anderen Ende des Spektrums werden unsere Anwendungen von einer großen Anzahl von Menschen mit jeder denkbaren Version und Konfiguration von Windows ab Win2k verwendet, und natürlich einschließlich Vista und Server 2008. Da wir ein ISV sind, haben wir keine Kontrolle über unsere Benutzer "Umgebungen oder über Richtlinien, die ihre Privilegien und Verwaltung regeln, lasse ich UAC immer aktiviert - auch wenn es mich aus irgendeinem Grund manchmal ärgert - weil ich dann über mögliche Probleme weiß, die es für Leute verursachen könnte, die unsere Anwendungen früher benutzen später.
Haftungsausschluss: Der Großteil meiner tatsächlichen Programmierzeit wird für Windows XP verwendet, obwohl ich unter meinem Schreibtisch eine Vista-64-Bit-Testmaschine habe, die ich täglich zum Testen verwende. Im Allgemeinen verwende ich diese Box in 20 - 30% der Zeit.
Anstatt Antivirenprogramme auszuführen, um meine CPU-Zyklen zu löschen (ich brauche so viele wie möglich, wenn RDPs und VMs die ganze Zeit laufen). Ich lasse die UAC einfach als Sicherheit auf, um zu überprüfen, dass nur bestimmte Dinge laufen. Es tut mehr als das, es schränkt auch den Zugriff von Programmen auf sensible Bereiche ein, so dass ein Programm grundsätzlich Ihr System nicht zerstören kann, ohne dass Sie es über UAC zulassen. Ich hatte noch kein Problem und mein System lässt nur das laufen, was ich brauche, um es schnell und reibungslos laufen zu lassen.
Es ist zu nervig für mich, es wird ausgeschaltet, sobald ich Vista installiert habe.
Ich schalte es aus, sobald ich das Betriebssystem installiert habe. Sicherheit durch endlose modale Dialoge ist keine Sicherheit. Normale Benutzer haben sich erst nach ein paar Wochen daran gewöhnt, auf noch mehr "OK" -Buttons zu klicken.
EDIT: Wow, runter abgestimmt, huh? Müssen hier einige Microsoft-Mitarbeiter sein ... Natürlich sollte es auf einer Testmaschine weiterlaufen, hätte das wohl erwähnt.
Ich finde es extrem nervig und schalte es jederzeit aus, ich vertraue mir selbst genug, um keine Fail-Safes an Ort und Stelle zu haben. Wenn ich es vermassle und eine dubiose Bewerbung durchführe, ist das schlecht und ich werde mit den Konsequenzen leben. In der Zwischenzeit verbringe ich nicht 5 Minuten meines Tages damit, durch ein paar nervige Popups zu klicken.
Ich habe es aus, aber das liegt daran, dass ich mir selbst zu viel vertraue. Es ist lustig, obwohl es scheint, dass der durchschnittliche Benutzer (ich lebe in Jourdanton TX, wir haben eine Menge "durchschnittliche Benutzer" hier in der Mitte von Nirgendwo) Angst vor der Systemsteuerung, weil es verursacht all diese seltsamen Aufforderungen zu kommen und will ihr Passwort alle 5 Minuten, wenn sie anfangen, herumzustochern.
Das heißt, ich denke, es hängt von Ihrem Fachwissen mit dem System ab. Auf deiner Entwicklungsmaschine, ja, mach das verdammte Ding definitiv ab. Ich habe diese Woche keinen Tag verloren, ohne eine Software installieren oder aktualisieren zu müssen, und ich mag es nicht, mich selbst in den Admin-Status zu versetzen, um das tun zu müssen.
Was ich wirklich möchte, ist die Möglichkeit, es für eine bestimmte Zeit erhöhen zu lassen, oder sagen Sie, dass es sich automatisch wieder anschaltet, wenn ich mich abmelde, so dass ich eine ganze Sitzung machen kann Dinge installieren, ohne gestört zu werden, und dann wieder sicher zu sein, wenn ich fertig war und (zwangsläufig) die Maschine neu starten musste, wie es bei Windows-Installateuren mittlerweile üblich ist.
Und all das schimpfende beiseite, ich denke für deine Testmaschine sollte es definitiv an sein. Nicht, weil ich dem Feature unbedingt zustimme (mehr als ich zustimme, dass das Administratorkonto permanent deaktiviert werden sollte, ich liebe dieses Konto viel zu sehr), aber weil der Benutzer es sehr wahrscheinlich aktiviert hat und Sie Ihre sehen müssen Programm durch ihre Augen. Dies trifft insbesondere dann zu, wenn Ihr Programm eine Erhöhung erfordert, beispielsweise um eine Einstellung zu ändern oder ein bestimmtes Verzeichnis zu ändern, sodass Sie Ihre Benutzer auffordern können, die UAC-Warnung in Ihrem Programm zu akzeptieren, was dem Benutzer eine zusätzliche Komfortschicht bietet Ich denke.
Oh, und was das eine Programm betrifft, lass mich dich nur ein bisschen anrühren. Sollte das Programm nicht irgendwo in den Hauptheadern Dateien definieren, die ihm mitteilen, wo sein "Arbeitsverzeichnis" ist? Wenn das schon der Fall ist, warum ist es dann so schwer das Arbeitsverzeichnis irgendwo anders zu ändern? Wenn das nicht der Fall ist, schäme dich, und du solltest das beheben. ^ _ ^ Das hätte dir eine Menge Ärger erspart.
-Nikolaus
Ich stoße auf Probleme, bei denen unsere Build-Skripte Dinge wie Registry-Einträge manipulieren oder Dinge zum GAC hinzufügen. Wir versuchen, von diesem Zeug wegzukommen, aber bis wir es tun, ist es erforderlich und erfordert eine Eskalation von Privilegien. Die Build-Skripte werden also über ein Administrator-Befehlsfenster ausgeführt. Das Problem tritt auf, wenn ich Visual Studio 2008 öffne und versuche, einen Teil der Anwendung zu erstellen - ich kann das nicht als normaler Benutzer, da die Ausgabedateien nicht überschrieben werden können, da der Build in der Admin-Konsole die gleichen Dateien zu einem höheren erstellt Privilegstufe. Es verursacht mir eine Menge Frustration und ich denke, der beste Weg ist, die UAC für jetzt auszuschalten, aber ich zögere das sehr.
Da ich Post-Build-Skripte habe, um ausführbare Dateien zum Testen in das Programmverzeichnis zu kopieren, führe ich Visual Studio mit erhöhten Rechten aus.
Ein Tipp, den ich gefunden habe, der das Leben leichter macht, ist, dass Sie schnell eine Eingabeaufforderung mit erhöhten Rechten starten können:
Ich habe immer eine geöffnet, um meine IDE zu starten und Build-Skripte auszuführen.
Der einzige Nachteil, den ich gefunden habe, ist, dass erhöhte Fenster nicht mit einigen meiner Windows-Software wie KatMouse und
Nein, aber ich ändere einige Einstellungen:
Ich setze mich nicht in die Gruppe der Administratoren. Juts ein einfacher alter Benutzer ohne Höhenaufforderungen.
Verwenden Sie "Ausführen als", wenn Sie Webanwendungen mit dem Entwicklungsserver entwickeln / debuggen
Ich code mit UAC aus. Ich fand es nervig, all diese Popups zu sehen, wenn ich Visual Studio oder Star Uml öffne, oder einfach nur eine Einstellung in meinem Computer ändern möchte. Ich habe immer eine gute Internet-Sicherheits-Suite installiert, die mich jahrelang "virenfrei" auf meiner Maschine gehalten hat und ich sehe keinen Sinn darin, bei jeder Aufgabe, die ich mache, immer eine "Sind Sie sicher" -Aufforderung zu haben. Ich stimme Ed zu, weil alle auf ok klicken.
Beispiel: Installieren Sie eine Firewall für ein Mitglied Ihrer Familie. Wenn sie gefragt werden, ob die App XYZ sich mit dem Internet verbinden kann, werden sie auf Ja klicken. Sie unterscheiden nicht zwischen einer guten App und einer Spyware / einem Virus. Das Gleiche gilt für UAC.
Ich lasse die Benutzerkontensteuerung aktiviert, VS wurde jedoch immer als Administrator ausgeführt. Der einzige wirkliche Grund, warum ich das tue, ist, dass ich hauptsächlich an Software arbeite, die sowieso Administratorrechte benötigt. (Und ja, ich weiß, dass das die Minderheit sein sollte, aber meine App ist eine davon - es ist ein Soft-Realtime-Hardware-Controller.)
Für allgemeine Apps müssen Sie mindestens mit aktivierter Benutzerkontensteuerung testen. Während Sie dies auf einem separaten Computer tun können, ist es einfacher, auf Ihrem Dev-Rechner zu testen. Und die Eingabeaufforderung ist nicht so sehr ein Ausschießen, besonders wenn Sie die Option "Sicherer Desktop" deaktivieren (die bei Aktivierung der meisten Grafikkarten sehr langsam reagiert).
Wenn Sie auf Vista bleiben, deaktivieren Sie die Benutzerkontensteuerung und verlassen Sie sich auf den Echtzeitmonitor von Microsoft Security Essentials, um alles abzufangen, das Ihr System ändern möchte. Oder führen Sie ein Upgrade auf Win7 durch, in dem Sie die Benutzerkontensteuerung aktivieren und die Ebenen steuern können, auf denen die Benutzerkontensteuerung benachrichtigt und die Ausführung unterbrechen soll.
EDIT: Es ist sowieso sehr einfach, einen Windows-Computer auszunutzen. Was ist also sinnvoll, wenn die UAC aktiviert wird, wenn sie wirklich keinen Schutz garantiert?
Tags und Links windows-vista uac