Windows programlama - UAC'yi açık bırakmalı mısınız?


11

Windows üzerinde geliştirirken önerilen Kullanıcı Hesabı Denetimi (UAC) ayarı nedir?

Win7'de bile onu kapatmak için yeterince can sıkıcı buluyorum (çünkü beni daha verimli hale getiriyor) ama bazen kötü hissediyorum çünkü açık kalırsam kodumda daha fazla sorun bulacağımı biliyorum.


"Makinemde çalışıyor!" Bir geliştiricinin, yazılımındaki bir sorun hakkında söylendiği klasik yanıt. Bu, erişim hakları, donanım kaynakları veya yüklü kitaplıklardaki (ve bazılarında) farklılıklardan kaynaklanabilir. Bir kullanıcının makinesinin sizinkine kıyasla olası sınırlamalarının farkında olmaya çalışın ve serbest bırakmadan önce mümkün olup olmadığını test edin. Çünkü ... "Makinenizi göndermiyoruz!"
Martin Maat

Yanıtlar:


16

Öneri (Microsoft'tan bile) AÇIK olarak bırakmanız ve ayrıca mümkün olduğunda IDE'nizi serbest bırakmanızdır .

Her şeyden önce, programcıyı gerçek bir dünya kullanıcısının sahip olduğu aynı "sıkıntılarla" yaşamaya zorlar (bilmiyorsanız, etrafında doğru bir şekilde programlama yapar mısınız?).

Ardından, UAC'yi devre dışı bırakmak ve yönetici olarak çalışmak Unix'teki kök kadar çalışmak kadar kötüdür (onlarca yıl boyunca yaygın olan bilgelik size bunun neden kötü olduğunu söyleyecektir).


4
Windows linux değil, bu gerçekten iyi bir karşılaştırma değil ..
Thomas Bonini

9
@Kop: İşletim sisteminden bağımsız olarak tam ayrıcalıklarla çalışmak iyi ya da kötü ... Windows ve UNIX / Linux'un bu konuda nasıl farklı olduğunu göremiyorum.
Wizard79

1
@Brian: Hala yönetici hakları (Azure için geliştirme gibi) gerektiren bazı kütüphaneler var, ancak görevlerin büyük çoğunluğu yönetici olmayan olarak yapılabilir.
Agent_9191

2
@Walter: yükseltilmemiş pencere hizmetleri oluşturabilirsiniz. Yine de hizmeti kurmak / kaldırmak için yükseltilmiş haklara ihtiyacınız vardır. Hiçbir zaman doğrudan IDE'den bir şey kurmamalısınız, bu nedenle yükseltilmiş bir komut istemi daha iyi çalışır çünkü BT Uzmanları bunu kullanır.
Agent_9191

2
@zneak: yanılıyorsunuz. Teknik açıdan, bir Yöneticinin (veya UAC ile yükseltilmiş bir yöneticinin) kök kullanıcısı olmak tamamen aynı şeydir. Elbette sistem bölümünde format komutunu kullanamazsınız, ancak bu sadece bir UI seçimidir. Sistem bölümünü veya başka bir şeyi silme biçimlerini içeren bir üçüncü taraf programı kullanabilirsiniz.
Wizard79

4

Programla açık ya da kapalı olarak programlamanızdan bağımsız olarak, programınızı sınırlı bir kullanıcı hesabıyla test etmelisiniz. Bu, kullanıcıların programınızı sınırlı bir hesapla veya UAC'yi açarak çalıştırırken karşılaşabileceği sorunların çoğunu yakalamalıdır.


Sorun şu ki, UAC KAPALI durumunuz varsa, testler için AÇIK olan özel bir makineniz veya sanal bir makineniz olmalıdır.
Wizard79

UAC kapalı olsa bile, sınırlı bir hesap yine de sınırlı ayrıcalıkları test etmenize izin verir.
Jelatin

2
Hem ayrıcalıklı hem de ayrıcalıklı kaldırılmamış senaryoları test etmeniz gerekir .
Ben Voigt

4

Windows 7 üzerinde çalışıyorum ve UAC'yi açık bırakıyorum ve hesabım gerçek bir yönetici hesabı değil. Bu yüzden UAC ile karşılaştığımda, devam etmek için yönetici şifresini girmem gerekiyor. Vista altında bile devam ettim. Bazı geliştiricilerin bunun yoluna girdiğini söylediğini duydum, ama henüz görmedim. Vista altında birkaç alan biraz fazla kısıtlayıcı olduğu için daha büyük bir sorundu.

Geliştiriciler UAC'ın yoluna girdiğini söylediğinde her zaman ortaya koyduğum soru, "Devam etmek için ne yapıyorsun?" Sistem klasörlerindeki dosyaları (Windows, Program Dosyaları, IIS siteleri) değiştirmeye çalışıyorsanız, yanlış bir şey yapıyorsunuz demektir. IIS web siteleri C: \ inetpub dışında bulunabilir. SQL Server kullanıcı veritabanları, Program Files dışında bulunabilir. UAC istemini düzenli olarak görmeniz gereken tek zaman uygulama yüklemeleri ve güncellemeleridir. Daha sık görüyorsanız, muhtemelen sistemle değil, sisteme karşı çalışıyorsunuzdur.


2
Visual Studio, yükseltilmediği sürece IIS tarafından barındırılan bir web uygulaması projesini açmanıza izin vermez.
Heinzi

@ Heinzi'nin noktasını genişletmek için, aynı uygulamanın iki sürümünü (örneğin, her biri farklı bir konumda depolanan iki SVN dalı) çalıştırırsam, IIS'yi çalıştığınız doğru klasöre ayarlayabilmek için VS stüdyosuna ihtiyacınız vardır . (yani bu ikisinden açtığınız son çözüm). Yükseltilmiş ayrıcalıklar olmadan, yalnızca IIS'yi el ile güncellemeniz gerekmez, uygulamanın (tarayıcıda) tamamen farklı bir sürümünü (VS'de) unutma ve test etme riskini
yaşarsınız

1

IMHO, ne yaptığınıza bağlı.

Şu anki işimde web uygulamaları ve windows hizmetleri geliştiriyorum. Bu yüzden kendimi daha verimli buluyorum. Bir kullanıcının yükleyeceği uygulamalar üzerinde çalışsaydım, kullanıcının ne yaşayabileceğine olabildiğince yakın olabilmem için açık bırakardım.


UAC'yi bırakmak nasıl yardımcı olur? Web uygulaması geliştirme, başlangıçta IIS kurulumu dışında yönetici hakları gerektirmemelidir. Windows hizmetleri, başlatma ve durdurma için yönetici haklarına gereksinim duyar, ancak tek bir komut penceresinden ve net start/stoptek bir UAC isteminiz olur. Aksi takdirde, bir komut satırı çalıştırıcısı ve bir Win Hizmeti çalıştırıcısı olması için mantığı oluşturmalısınız.
Agent_9191

Gelişime yardımcı olmaz, ancak UAC'nin canını sıkar. Düşük erişimi simüle etmek için buna ihtiyacınız yoksa kapatın; aksi takdirde açık bırakın

2
IIS'de barındırılan bir web uygulamasında hata ayıklamak, sanırım yükseltilmiş ayrıcalıklar gerektirir.
FinnNk
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.