2011-10-08 7 views
7

विंडोज 7 एक स्वचालित तंत्र का उपयोग यह पता लगाने के लिए करता है कि किसी एप्लिकेशन को उन्नत व्यवस्थापक विशेषाधिकारों की आवश्यकता है या नहीं। या आवेदन में एक अभिव्यक्ति है।पता लगाएं कि किसी एप्लिकेशन को व्यवस्थापकीय विशेषाधिकारों की आवश्यकता है

प्रोग्रामेटिक रूप से पता लगाने का कोई तरीका है कि निर्दिष्ट एप्लिकेशन को उन्नत व्यवस्थापक विशेषाधिकारों की आवश्यकता है या नहीं? मैं इसे खोजने के लिए इसे शुरू नहीं करना चाहता हूं।

धन्यवाद;)।

+1

Pleas "सी #" के साथ अपने शीर्षक को उपसर्ग नहीं करते हैं। [इसलिए], हम यही टैग का उपयोग करते हैं। –

+2

ठीक है, आपके सुधार के लिए धन्यवाद। मैं इसे और प्रश्नों पर ध्यान में रखूंगा;) – mmiccc

उत्तर

4

विंडोज़ को यह बताने का एकमात्र तरीका है कि एक प्रोग्राम को ऊपर उठाने की जरूरत है और यह मैनिफेस्ट फ़ाइल के माध्यम से है। मैनिफेस्ट फ़ाइलों को या तो एक असेंबली (exe/dll) के भीतर एम्बेड किया जा सकता है या <YOUR_APP>.exe.manifest नामक एक अलग फ़ाइल में रह सकता है। यह वास्तव में एकमात्र तरीका है और शायद एकमात्र तरीका है जिसे आप सुरक्षित रूप से जांच सकते हैं। आधिकारिक तौर पर।

विंडोज़ में एक विशाल डेटाबेस भी है जो एप्लिकेशन अनुकूलता के लिए उपयोग किया जाता है। यदि माइक्रोसॉफ्ट ने एक ऐप का परीक्षण किया है और पाया है कि ओएस अपग्रेड होने पर यह टूट जाता है तो वे कभी-कभी ऐप को हैक करने के लिए डेटाबेस में एक प्रविष्टि बनाता है। कभी-कभी वे वर्तमान ओएस संस्करण के बारे में झूठ बोलते हैं, कभी-कभी वे स्वचालित रूप से व्यवस्थापक के रूप में चलाते हैं, कभी-कभी वे अन्य चीजों का समूह भी करते हैं। आप Application Compatibility Toolkit का उपयोग कर डेटाबेस देख सकते हैं। मुझे नहीं पता कि कोड के माध्यम से डेटाबेस से पूछताछ करने का आधिकारिक तरीका है या नहीं। This blog post ब्लॉगर द्वारा बनाए गए टूल के बारे में बात करता है लेकिन स्पष्ट रूप से कभी रिलीज़ नहीं होता है।

अंतिम स्वचालित उन्नयन तंत्र एल्गोरिदम है जो यह निर्धारित करने का प्रयास करता है कि वह ऐप इंस्टॉलर है या नहीं। According to MSDN इन विशेषताओं जाँच कर रहे हैं: विक्रेता, कंपनी का नाम, उत्पाद नाम:

  • फ़ाइल का नाम जैसे कीवर्ड "स्थापित करते हैं," "सेटअप," "अद्यतन," आदि निम्नलिखित संशोधन संसाधन क्षेत्रों में
  • कीवर्ड शामिल , फ़ाइल विवरण, मूल फ़ाइल नाम, आंतरिक नाम, और निर्यात नाम।
  • निष्पादन योग्य में एम्बेडेड साइड-बाय-साइड मैनिफेस्ट में कीवर्ड।
  • एक्जिक्यूटिव में जुड़े विशिष्ट स्ट्रिंगटेबल प्रविष्टियों में कीवर्ड।
  • निष्पादन योग्य में आरसी डेटा में मुख्य विशेषताएं।
  • निष्पादन योग्य के भीतर बाइट्स के लक्षित अनुक्रम।

बाइट्स के कीवर्ड और अनुक्रम विभिन्न इंस्टॉलर तकनीकों से देखी गई सामान्य विशेषताओं से प्राप्त किए गए थे।

आखिरकार, एक ऐप सामान्य उपयोगकर्ता के रूप में चलाया जा सकता है लेकिन spawn a child process that requires elevated privileges। मुझे नहीं पता कि वास्तव में एप को कम करने के लिए वास्तव में इसका पता लगाने का कोई तरीका नहीं है या नहीं।

+0

मैं इस लंबे और विस्तृत उत्तर के लिए आपको पहले धन्यवाद देना चाहता हूं! ठीक है, मैं अंतिम बताए गए एल्गोरिदम को लागू करने जा रहा हूं और एक मेनिफेस्ट फ़ाइल ढूंढ रहा हूं। ऐसा लगता है कि कई परिस्थितियों में शामिल है। बहुत बहुत धन्यवाद :) – mmiccc

संबंधित मुद्दे