विंडोज प्रोग्रामिंग - क्या आपको यूएसी को छोड़ देना चाहिए?


11

विंडोज पर विकसित होने के दौरान उपयोगकर्ता खाता नियंत्रण (यूएसी) की सिफारिश क्या है?

Win7 पर भी मुझे इसे बंद करने के लिए पर्याप्त कष्टप्रद लगता है (क्योंकि यह मुझे इसके साथ अधिक उत्पादक बनाता है) लेकिन कभी-कभी मुझे बुरा लगता है क्योंकि मुझे पता है कि अगर मैं इसे छोड़ता हूं तो मुझे अपने कोड में और अधिक समस्याएं मिलेंगी।


"यह मेरी मशीन पर काम करता है!" एक डेवलपर की क्लासिक प्रतिक्रिया को उसके सॉफ्टवेयर के साथ एक समस्या के बारे में बताया जा रहा है। यह एक्सेस अधिकारों, हार्डवेयर संसाधनों या स्थापित पुस्तकालयों (और फिर कुछ) में अंतर के कारण हो सकता है। बस आपकी तुलना में उपयोगकर्ता की मशीन की संभावित सीमाओं से अवगत होने का प्रयास करें और यदि आप रिलीज से पहले कर सकते हैं तो परीक्षण करें। क्योंकि ... "हम आपकी मशीन को शिपिंग नहीं कर रहे हैं!"
मार्टिन माट

जवाबों:


16

अनुशंसा (यहां तक ​​कि Microsoft से) इसे चालू पर छोड़ना है, और जब भी संभव हो, तब अपनी आईडीई को चलाने के लिए भी।

सबसे पहले, यह प्रोग्रामर को उसी "झुंझलाहट" के साथ जीने के लिए मजबूर करता है जो एक वास्तविक दुनिया उपयोगकर्ता के पास होगी (यदि आप इसे नहीं जानते हैं, तो क्या आप इसके चारों ओर सही ढंग से प्रोग्राम करेंगे?)।

फिर, यूएसी को अक्षम करना और एक व्यवस्थापक के रूप में काम करना यूनिक्स में जड़ के रूप में काम करने के लिए उतना ही बुरा है (दशकों की सामान्य बुद्धि आपको बताएगी कि यह बुरा क्यों है)।


4
विंडोज लिनेक्स नहीं है, यह वास्तव में एक अच्छी तुलना नहीं है ..
थॉमस बोनिनी

9
@ कोप: पूर्ण विशेषाधिकारों के साथ चलना ओएस की परवाह किए बिना अच्छा या बुरा है ... मैं यह नहीं देख सकता कि विंडोज और यूनिक्स / लिनक्स कैसे अलग हैं।
जादूगर

1
@ ब्रायन: अभी भी कुछ पुस्तकालय हैं जिन्हें व्यवस्थापक अधिकारों की आवश्यकता होती है (जैसे कि एज़्योर के लिए विकसित करना), लेकिन अधिकांश कार्यों को गैर-व्यवस्थापक के रूप में किया जा सकता है।
एजेंट_9191 7

2
@Walter: आप विंडोज़ सेवाओं को अन-एलिवेटेड बना सकते हैं। हालांकि सेवा को स्थापित / अनइंस्टॉल करने के लिए आपको उन्नत अधिकार चाहिए। आपको IDE वैसे भी सीधे कुछ भी स्थापित नहीं करना चाहिए, इसलिए एक उन्नत कमांड प्रॉम्प्ट बेहतर काम करता है क्योंकि आईटी प्रोस का उपयोग करना समाप्त हो जाएगा।
एजेंट_9191

2
@zneak: आप गलत हैं। एक तकनीकी दृष्टिकोण से एक प्रशासक (या UAC के साथ उन्नत व्यवस्थापक) का मूल उपयोगकर्ता होना बिल्कुल एक ही बात है। बेशक आप सिस्टम विभाजन पर प्रारूप कमांड का उपयोग नहीं कर सकते हैं, लेकिन यह सिर्फ यूआई विकल्प है। आप एक तीसरे पक्ष के कार्यक्रम का उपयोग कर सकते हैं जो सिस्टम विभाजन को मिटा देता है, या कुछ और।
जादूगर 46

4

भले ही आप उस पर या उसके साथ प्रोग्राम करते हों, आपको एक सीमित उपयोगकर्ता खाते के साथ अपने कार्यक्रम का परीक्षण करना चाहिए। यह उन समस्याओं को पकड़ना चाहिए जो उपयोगकर्ताओं को आपके प्रोग्राम को सीमित खाते या UAC चालू करने से हो सकती हैं।


समस्या यह है कि, यदि आपके पास UAC OFF है, तो आपके पास परीक्षणों के लिए एक समर्पित मशीन या उसके साथ एक वर्चुअल मशीन होनी चाहिए।
जादूगर

भले ही UAC बंद हो, फिर भी एक सीमित खाता आपको सीमित विशेषाधिकार का परीक्षण करने देगा।
जिलेटिन

2
आप परीक्षण करने की जरूरत है दोनों आम और विशेषाधिकार प्राप्त unelevated परिदृश्यों।
बेन वोइगट

4

मैं विंडोज 7 पर चल रहा हूं और मैं यूएसी को छोड़ता हूं और मेरा खाता सही खाता नहीं है। इसलिए जब मैं यूएसी से टकराता हूं, तो मुझे जारी रखने के लिए व्यवस्थापक पासवर्ड दर्ज करना होगा। विस्टा के तहत भी मैंने इसे चालू रखा। मैंने सुना है कि कई डेवलपर्स कहते हैं कि यह रास्ते में हो जाता है, लेकिन मैंने अभी तक यह नहीं देखा है। विस्टा के तहत यह एक बड़ा मुद्दा था क्योंकि कई क्षेत्र थोड़े बहुत प्रतिबंधक थे।

प्रश्न हमेशा मैं तब उठाता हूं जब डेवलपर्स का कहना है कि यूएसी रास्ते में है "आप क्या कर रहे हैं कि आप इसे चालू रखते हैं?"। यदि आप सिस्टम फोल्डर (विंडोज, प्रोग्राम फाइल्स, आईआईएस साइट्स) में फाइलों में हेरफेर करने का प्रयास कर रहे हैं, तो आप कुछ गलत कर रहे हैं। IIS वेबसाइट C: \ inetpub के बाहर मौजूद हो सकती हैं। SQL सर्वर उपयोगकर्ता डेटाबेस प्रोग्राम फ़ाइलों के बाहर मौजूद हो सकते हैं। केवल एक बार आपको नियमित रूप से यूएसी प्रॉम्प्ट देखना चाहिए एप्लिकेशन इंस्टॉल और अपडेट। यदि आप इसे अधिक बार देख रहे हैं, तो आप इसके बजाय सिस्टम के खिलाफ काम करने की संभावना रखते हैं।


2
विजुअल स्टूडियो आपको एक IIS होस्टेड वेब एप्लिकेशन प्रोजेक्ट खोलने की अनुमति नहीं देगा, जब तक कि यह ऊंचा न हो।
हेनजी

@ हेंज़ी के बिंदु को विस्तारित करने के लिए, यदि मैं एक ही एप्लिकेशन के दो संस्करण चलाता हूं (जैसे कि दो एसवीएन शाखाएं जो प्रत्येक एक अलग स्थान पर संग्रहीत हैं), आपको वीएस स्टूडियो को उस सही फ़ोल्डर में IIS स्थापित करने में सक्षम होने की आवश्यकता है जो आप काम कर रहे हैं (यानी अंतिम समाधान आपने इन दोनों को खोला)। उच्चीकृत विशेषाधिकार के बिना, न केवल आपको IIS को मैन्युअल रूप से अपडेट करना होगा, आप अनुप्रयोग (ब्राउज़र में) के पूरी तरह से भिन्न संस्करण को भूलने और परीक्षण करने का जोखिम चलाते हैं, जो कि आप (वीएस में) विकसित कर रहे हैं
Flater

1

IMHO, यह आप क्या कर रहे हैं करने के लिए नीचे फोड़े।

अपनी वर्तमान नौकरी में मैं वेब ऐप्स और विंडोज़ सेवाओं को समर्पित करता हूं। उसकी वजह से मैं अपने आप को इसके साथ अधिक उत्पादक लगता हूं। यदि मैं उन ऐप्स पर काम कर रहा था जो एक उपयोगकर्ता इंस्टॉल करेगा, तो मैं इसे छोड़ दूंगा ताकि मैं जितना संभव हो उतना करीब हो सकता हूं जो उपयोगकर्ता अनुभव करेगा।


यूएसी को छोड़ने से कैसे मदद मिलती है? आरंभ में IIS स्थापित करने के अलावा, वेब एप्लिकेशन डेवलपमेंट को व्यवस्थापक अधिकारों की आवश्यकता नहीं होनी चाहिए। विंडोज सेवाओं को शुरू करने और रोकने के लिए व्यवस्थापक अधिकारों की आवश्यकता होगी, लेकिन एक एकल कमांड विंडो के माध्यम से और net start/stopआपके पास एक एकल UAC संकेत है। अन्यथा आपके पास लॉजिक बिल्ट होना चाहिए ताकि आपके पास कमांड लाइन रनर और विन सर्विस रनर हो।
एजेंट_9191 22

यह विकास में मदद नहीं करता है, लेकिन यह यूएसी की झुंझलाहट को दूर करता है। यदि आपको कम-पहुंच का अनुकरण करने के लिए इसकी आवश्यकता नहीं है, तो इसे बंद कर दें; अन्यथा इसे छोड़ दें

2
IIS में होस्ट किए गए वेब ऐप को डीबग करना मुझे उन्नत विशेषाधिकार की आवश्यकता है जो मुझे विश्वास है।
फिनकेक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.