2010-11-16 3 views
7

मैं कैसे जांच सकता हूं कि किसी प्रक्रिया ने विंडोज 7 में विशेषाधिकारों को बढ़ाया है (देशी सी ++ का उपयोग कर, सी #/सी ++ नेट नहीं)?देशी सी ++ का उपयोग करके विंडोज 7 में किसी प्रक्रिया को उन्नत विशेषाधिकारों की जांच कैसे करें?

मैं कई बार जवाब देने के लिए देख रहा हूं, लेकिन मुझे लगता है कि .NET Framework का उपयोग करने वाले उत्तर हैं।

+1

'एलिवेटेड' को परिभाषित करें। विशेषाधिकार? प्राथमिकता? कुछ और? –

+0

@ स्टेव: अन्य प्रतिक्रिया के आधार पर, यह एक उत्कृष्ट सवाल है। मुझे लगता है कि ओपी का अर्थ "ऊंचा प्राथमिकता" था और यह पूरी तरह से गलत हो सकता है –

+0

यह भी अस्पष्ट है: आपकी प्रक्रिया या कोई अन्य? –

उत्तर

7

IsUserAnAdmin फ़ंक्शन को कॉल करना सबसे आसान तरीका है। यदि आपको अधिक सटीकता की आवश्यकता है तो आप GetTokenInformation का भी उपयोग कर सकते हैं लेकिन ज्यादातर मामलों में जो अधिक है।

+1

केनी सही है और यह परीक्षण करना आसान है। एक ऐप लिखें जो प्रिंट करता है कि आप एक व्यवस्थापक हैं या नहीं और इसे बढ़ाया गया है और नहीं, व्यवस्थापक के रूप में साइन इन किया गया है और एक नियमित उपयोगकर्ता (जिसे ओटीएस को बढ़ाने की आवश्यकता होगी)। यदि आप पहली बार मशीन में साइन इन करते हैं, तो आप चार त्वरित रनों में देखेंगे कि एप की ऊंचाई बढ़ने पर आपको व्यवस्थापक होने की सूचना दी जाती है। –

+0

एफडब्ल्यूआईडब्ल्यू, एमएसडीएन आलेख पर नवीनतम अनुशंसा CheckTokenMembership का उपयोग करना है। _This फ़ंक्शन CheckTokenMembership के लिए एक रैपर है। IsUserAnAdmin._ – susmits

+0

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

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