Програмування Windows - чи варто залишати UAC увімкненим?


11

Які рекомендовані налаштування контролю облікових записів користувачів (UAC) під час розробки в Windows?

Навіть на Win7 мені здається, що це досить дратує, щоб вимкнути його (бо це робить мене більш продуктивним), але іноді мені стає погано, бо я знаю, що знайду більше проблем у своєму коді, якщо залишу його.


"Це працює на моїй машині!" Класична відповідь розробника, який розповідає про проблему з його програмним забезпеченням. Це може бути пов'язано з різницею в правах доступу, апаратних ресурсах або встановлених бібліотеках (а потім і деяких). Просто спробуйте бути обізнаними про можливі обмеження машини користувача у порівнянні з вашою та протестуйте, чи зможете ви перед випуском. Тому що ... "Ми не доставляємо вашу машину!"
Мартін

Відповіді:


16

Рекомендація (навіть від Microsoft) полягає в тому, щоб залишити її ввімкненою, а також запускати IDE без змін, коли це можливо.

Перш за все, це змушує програміста жити з тими ж "роздратуваннями", які матиме реальний користувач у світі (якщо ви цього не знаєте, чи правильно би ви програмували навколо нього?).

Тоді відключення UAC та робота адміністратором так само погано, як і в Unix, щоб працювати як root (десятиліття загальної мудрості підкаже, чому це погано).


4
Windows не є Linux, це насправді не дуже вдале порівняння ..
Томас Боніні

9
@Kop: запуск з повними привілеями є добрим або поганим, незалежно від ОС ... Я не бачу, чим Windows і UNIX / Linux відрізняються в цьому.
Wizard79

1
@Brian: Є ще деякі бібліотеки, для яких потрібні права адміністратора (наприклад, розробка для Azure), але переважна більшість завдань може бути виконана як не адміністратор.
Agent_9191

2
@Walter: ви можете створювати послуги Windows без підвищеного рівня. Для встановлення / видалення послуги вам потрібні підвищені права. Ніколи не слід встановлювати щось безпосередньо з IDE, так що підвищений командний рядок працює краще, оскільки саме в цьому ІТ-профі використовуватимуть.
Agent_9191

2
@zneak: ти помилився. З технічної точки зору бути кореневим користувачем адміністратора (або підвищеного адміністратора з UAC) - це саме те саме. Звичайно, ви не можете використовувати команду форматування на системному розділі, але це лише вибір інтерфейсу користувача. Ви можете використовувати програму сторонніх розробників, яка формати витирає системний розділ або будь-що інше.
Wizard79

4

Незалежно від того, програмуєте ви це чи вимкнено, ви повинні протестувати програму з обмеженим обліковим записом користувача. Це має вирішити більшість проблем, які можуть виникнути у користувачів із запуском програми з обмеженим обліковим записом або увімкненим UAC.


Проблема полягає в тому, що якщо у вас є UAC OFF, для тестів у вас повинна бути виділена спеціальна машина або віртуальна машина.
Wizard79

Навіть якщо UAC вимкнено, обмежений рахунок все одно дозволить вам перевірити обмежені привілеї.
Желатин

2
Вам потрібно протестувати як непривілейовані, так і привілейовані необмежені сценарії.
Ben Voigt

4

Я працюю в Windows 7, і я залишаю UAC включеним, і мій обліковий запис не є справжнім обліковим записом адміністратора. Тому коли я натрапляю на UAC, я повинен ввести пароль адміністратора, щоб продовжувати. Навіть під Vista я продовжував це. Я чув, як низка розробників заявляє, що це перешкоджає, але я ще не бачив цього. У Вісті це було більшою проблемою, оскільки декілька областей були занадто обмежуючими.

Питання, яке я завжди виникаю, коли розробники кажуть, що UAC перешкоджає: "Що ти робиш, що ти постійно впадаєш у нього?". Якщо ви намагаєтесь маніпулювати файлами в системних папках (Windows, програмні файли, сайти IIS), ви робите щось не так. Веб-сайти IIS можуть існувати за межами C: \ inetpub. Бази даних користувачів SQL Server можуть існувати поза програмними файлами. Єдиний раз, коли вам слід регулярно бачити підказку UAC, це встановлення та оновлення програм. Якщо ви бачите його частіше, ви, швидше за все, працюєте проти системи, а не з нею.


2
Visual Studio не дозволить вам відкрити проект розміщення веб-додатків, розміщений у IIS, якщо він не працює піднятим.
Хайнзі

Щоб продовжити точку @ Heinzi, якщо я запускаю дві версії однієї програми (наприклад, дві гілки SVN, які зберігаються в іншому місці), вам потрібно VS studio, щоб мати можливість встановити IIS на потрібну папку, в якій ви працюєте. (тобто останнє рішення, яке ви відкрили з цих двох). Без підвищених привілеїв, ви не тільки повинні оновити IIS вручну, ви ризикуєте забути і тестування абсолютно іншу версію програми (в браузері) , ніж ви розробляєте (в VS)
Flater

1

ІМХО, це зводиться до того, що ти робиш.

На своїй нинішній роботі я розробляв веб-програми та сервіси Windows. Через це я вважаю себе більш продуктивним. Якби я працював над програмами, які встановив би користувач, я б залишив це так, щоб я був максимально наближений до того, що відчує користувач.


Як допомагає відключення УАК? Розробка веб-додатків не повинна вимагати прав адміністратора, за винятком початкового налаштування IIS. Служби Windows вимагатимуть прав адміністратора на запуск та зупинку, але через одне вікно команд і у net start/stopвас є одне підказка UAC. Інакше у вас повинна бути побудована логіка, щоб у вас був бігун командного рядка та бігун Win Service.
Agent_9191

Це не допомагає розвитку, але це знімає роздратування UAC. Якщо він вам не потрібен для імітації з низьким доступом, вимкніть його; в іншому випадку залиште його

2
Налагодження веб-додатка, розміщеного в IIS, вимагає підвищених привілеїв, я вважаю.
FinnNk
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.