Programowanie w systemie Windows - czy należy pozostawić UAC włączony?

11

Jakie jest zalecane ustawienie Kontrola konta użytkownika (UAC) podczas programowania w systemie Windows?

Nawet w Win7 uważam to za wystarczająco irytujące, aby je wyłączyć (ponieważ dzięki temu jestem bardziej produktywny), ale czasami czuję się źle, ponieważ wiem, że znajdę więcej problemów w kodzie, jeśli go zostawię.

Brian R. Bondy
źródło
„Działa na moim komputerze!” Klasyczna odpowiedź od programisty, który dowiedział się o problemie ze swoim oprogramowaniem. Może to być spowodowane różnicami w prawach dostępu, zasobach sprzętowych lub zainstalowanych bibliotekach (a także niektórych). Po prostu staraj się być świadomym możliwych ograniczeń komputera użytkownika w porównaniu do twojego i sprawdź, czy możesz przed wydaniem. Ponieważ ... „Nie wysyłamy twojej maszyny!”
Martin Maat

Odpowiedzi:

16

Zaleceniem (nawet od Microsoftu) jest pozostawienie go WŁĄCZONEGO, a także uruchamianie IDE w dowolnym momencie.

Przede wszystkim zmusza programistę do życia z tymi samymi „irytacjami”, jakie będzie miał użytkownik w świecie rzeczywistym (jeśli go nie znasz, czy programowałbyś go poprawnie?).

Następnie wyłączenie UAC i praca jako administrator jest tak samo zła, jak w Uniksie, aby działał jak root (dekady powszechnej mądrości powiedzą ci, dlaczego to źle).

Wizard79
źródło
4
Windows nie jest linuxem, to naprawdę nie jest dobre porównanie ..
Thomas Bonini,
9
@Kop: uruchamianie z pełnymi uprawnieniami jest dobre lub złe niezależnie od systemu operacyjnego ... Nie widzę, jak różnią się w tym Windows i UNIX / Linux.
Wizard79
1
@Brian: Nadal istnieje kilka bibliotek, które wymagają uprawnień administratora (takich jak programowanie dla platformy Azure), ale zdecydowana większość zadań może być wykonywana bez uprawnień administratora.
Agent_9191
2
@ Walter: możesz tworzyć usługi systemu Windows bez podwyższonego poziomu. Potrzebujesz jednak podwyższonych uprawnień, aby zainstalować / odinstalować usługę. Zresztą nigdy nie powinieneś instalować czegoś bezpośrednio z IDE, więc podniesiony wiersz polecenia działa lepiej, ponieważ to właśnie skorzystaliby specjaliści IT.
Agent_9191,
2
@zneak: mylisz się. Z technicznego punktu widzenia bycie rootem administratora (lub podniesionego administratora z UAC) to dokładnie to samo. Oczywiście nie można użyć polecenia formatowania na partycji systemowej, ale jest to tylko wybór interfejsu użytkownika. Możesz użyć programu innej firmy, który formatuje czyszczenie partycji systemowej lub cokolwiek innego.
Wizard79
4

Niezależnie od tego, czy programujesz z włączonym czy wyłączonym programem, powinieneś przetestować swój program z ograniczonym kontem użytkownika. Powinno to uchwycić większość problemów, jakie mogą mieć użytkownicy z uruchomieniem programu z ograniczonym kontem lub włączonym UAC.

żelatyna
źródło
Problem polega na tym, że jeśli masz UAC OFF, powinieneś mieć dedykowaną maszynę lub maszynę wirtualną z WŁĄCZONYM do testów.
Wizard79
Nawet jeśli UAC jest wyłączony, ograniczone konto nadal umożliwia testowanie ograniczonych uprawnień.
Gelatin
2
Musisz przetestować zarówno nieuprzywilejowane, jak i uprzywilejowane niepasujące scenariusze.
Ben Voigt,
4

Korzystam z systemu Windows 7 i pozostawiam UAC włączony, a moje konto nie jest prawdziwym kontem administratora. Więc kiedy wpadnę na UAC, muszę wprowadzić hasło administratora, aby kontynuować. Nawet pod Vistą utrzymywałem go. Słyszałem, że wielu programistów mówi, że przeszkadza, ale jeszcze tego nie widziałem. W systemie Vista był to większy problem, ponieważ kilka obszarów było nieco zbyt restrykcyjnych.

Pytanie, które zawsze podnoszę, gdy programiści mówią, że UAC przeszkadza, brzmi: „Co robisz, że ciągle na to napotykasz?”. Jeśli próbujesz manipulować plikami w folderach systemowych (Windows, Pliki programów, witryny IIS), robisz coś złego. Strony internetowe IIS mogą istnieć poza C: \ inetpub. Bazy danych użytkowników SQL Server mogą istnieć poza plikami programu. Jedynym czasem, w którym powinieneś regularnie wyświetlać monit UAC, są instalacje i aktualizacje aplikacji. Jeśli widzisz go częściej, prawdopodobnie działasz przeciwko systemowi niż z nim.

Agent_9191
źródło
2
Program Visual Studio nie zezwoli na otwarcie projektu aplikacji hostowanej w usługach IIS, chyba że jest uruchomiony z podwyższonym poziomem uprawnień.
Heinzi
Aby rozszerzyć punkt @ Heinzi, jeśli uruchomię dwie wersje tej samej aplikacji (np. Dwie gałęzie SVN, z których każda jest przechowywana w innym miejscu), potrzebujesz VS studio, aby móc ustawić IIS na właściwy folder, w którym pracujesz (tj. ostatnie rozwiązanie, które otworzyłeś z tych dwóch). Bez podniesionych uprawnień nie tylko musisz ręcznie aktualizować IIS, ale również ryzykujesz zapomnieniem i przetestowaniem zupełnie innej wersji aplikacji (w przeglądarce) niż tworzona (w VS)
Flater
1

IMHO sprowadza się do tego, co robisz.

W mojej obecnej pracy zajmuję się tworzeniem aplikacji internetowych i usług Windows. Z tego powodu uważam, że moja jaźń jest bardziej produktywna. Gdybym pracował nad aplikacjami, które użytkownik zainstalowałby, pozostawiłbym włączony, aby być jak najbliżej tego, czego doświadczyłby użytkownik.


źródło
Jak pomaga wyłączenie UAC? Tworzenie aplikacji internetowych nie powinno wymagać uprawnień administratora, z wyjątkiem początkowej konfiguracji IIS. Usługi systemu Windows wymagałyby uprawnień administratora do uruchamiania i zatrzymywania, ale za pomocą jednego okna poleceń i net start/stopmasz jeden monit UAC. W przeciwnym razie powinieneś mieć zbudowaną logikę, aby mieć program uruchamiający z wiersza poleceń i program uruchamiający usługi Win.
Agent_9191
Nie pomaga w rozwoju, ale usuwa uciążliwość UAC. Jeśli nie potrzebujesz go do symulacji niskiego dostępu, wyłącz go; w przeciwnym razie pozostaw to włączone
2
Debugowanie aplikacji internetowej hostowanej w IIS wymaga, moim zdaniem, podwyższonych uprawnień.
FinnNk,