Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Windows Server

एडमिन विशेषाधिकारों के बिना प्रोग्राम कैसे चलाएं और UAC प्रॉम्प्ट को बायपास करें?

कुछ Windows ऐप्स मानक उपयोगकर्ताओं के तहत क्यों नहीं चलते और व्यवस्थापक अनुमतियों की आवश्यकता होती है?

शुरू होने पर, कई प्रोग्राम अनुमति वृद्धि की मांग करते हैं (ऐप आइकन पर शील्ड), लेकिन वास्तव में उन्हें अपने सामान्य संचालन के लिए व्यवस्थापक विशेषाधिकारों की आवश्यकता नहीं होती है। उदाहरण के लिए, आप मैन्युअल रूप से अपने उपयोगकर्ताओं को ProgramFiles में ऐप फोल्डर पर और/या प्रोग्राम द्वारा उपयोग की जाने वाली रजिस्ट्री कुंजियों पर अनुमतियां दे सकते हैं। इसलिए जब ऐसे प्रोग्राम को गैर-एडमिन उपयोगकर्ता खाते के तहत शुरू किया जाता है, तो एक UAC प्रॉम्प्ट दिखाई देगा और उपयोगकर्ता को व्यवस्थापक पासवर्ड दर्ज करना होगा (यदि कंप्यूटर पर उपयोगकर्ता खाता नियंत्रण सक्षम है)। इस तंत्र को बायपास करने के लिए, कई उपयोगकर्ता बस UAC को अक्षम कर देते हैं या उपयोगकर्ता खाते को स्थानीय समूह "Administrators" में जोड़कर एडमिन विशेषाधिकार दे देते हैं। बेशक, दोनों तरीके सुरक्षित नहीं हैं।

एक ऐप को अपने फोल्डर C:\Program Files (x86)\SomeApp में कुछ फाइलों (लॉग, कॉन्फिग, आदि) को संशोधित करने के लिए व्यवस्थापक विशेषाधिकारों की आवश्यकता हो सकती है। डिफ़ॉल्ट रूप से, उपयोगकर्ताओं के पास इस डायरेक्टरी पर संपादन (लिखें और संशोधित करें) अनुमतियां नहीं होती हैं। इस प्रोग्राम को सामान्य रूप से काम करने के लिए, NTFS फाइल सिस्टम स्तर पर उपयोगकर्ता (या बिल्ट-इन Users समूह) के लिए ऐप फोल्डर पर संशोधित और/या लिखें अनुमति देनी होगी।

नोट: वास्तव में, बदलते एप्लिकेशन डेटा को C:\Program Files के तहत अपने स्वयं के फोल्डर में संग्रहीत करने की अनुशंसा नहीं की जाती है। ऐप डेटा को उपयोगकर्ता प्रोफाइल में संग्रहीत करना बेहतर है। लेकिन यह ऐप डेवलपर्स की आलस्य और अक्षमता का सवाल है।

मानक उपयोगकर्ता के तहत व्यवस्थापक विशेषाधिकारों की आवश्यकता वाले प्रोग्राम को कैसे चलाएं?

हमने पहले बताया था कि RunAsInvoker पैरामीटर का उपयोग करके किसी निश्चित ऐप के लिए UAC प्रॉम्प्ट को कैसे अक्षम किया जाए। हालांकि, यह विधि पर्याप्त लचीली नहीं है।

आप Windows क्रेडेंशियल मैनेजर में सहेजे गए व्यवस्थापक पासवर्ड के साथ RunAs का उपयोग /SAVECRED विकल्प का उपयोग करके भी कर सकते हैं। यह भी असुरक्षित है क्योंकि उपयोगकर्ता सहेजे गए व्यवस्थापक क्रेडेंशियल पासवर्ड का उपयोग इस कंप्यूटर पर किसी भी प्रोग्राम को चलाने के लिए कर सकता है।

आइए किसी भी प्रोग्राम को व्यवस्थापक विशेषाधिकारों के बिना (व्यवस्थापक पासवर्ड दर्ज किए बिना) और UAC सक्षम (UAC स्लाइडर का स्तर 4, 3 या 2) के साथ चलाने के लिए मजबूर करने का एक आसान तरीका देखें।

आइए रजिस्ट्री एडिटर को एक उदाहरण के रूप में लें - regedit.exe (यह C:\Windows\ फोल्डर में स्थित है)। ऐप आइकन के बगल में UAC शील्ड पर ध्यान दें। यह आइकन इंगित करता है कि इस प्रोग्राम को चलाने के लिए UAC के माध्यम से विशेषाधिकार वृद्धि का अनुरोध किया जाएगा।

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

आइए इस प्रोग्राम के लिए UAC अनुरोध को बायपास करने का प्रयास करें। अपने डेस्कटॉप पर निम्न कोड वाली टेक्स्ट फाइल run-as-non-admin.bat बनाएं:

cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"

आप जिस EXE फाइल को शुरू करना चाहते हैं, उसे डेस्कटॉप पर इस BAT फाइल पर खींचकर regedit.exe को व्यवस्थापक विशेषाधिकारों के बिना चलाने और UAC प्रॉम्प्ट को दबाने के लिए मजबूर करें।

फिर रजिस्ट्री एडिटर को UAC प्रॉम्प्ट के बिना और व्यवस्थापक पासवर्ड दर्ज किए बिना शुरू करना चाहिए। यदि आप टास्क मैनेजर खोलते हैं और उन्नत कॉलम जोड़ते हैं, तो आप देखेंगे कि regedit.exe प्रक्रिया बिना उन्नत स्थिति के है (गैर-एडमिन उपयोगकर्ता अनुमतियों के साथ चल रही है)।

HKEY_LOCAL_MACHINE रजिस्ट्री हाइव में किसी भी पैरामीटर को संपादित करने का प्रयास करें। जैसा कि आप देख सकते हैं, एक उपयोगकर्ता इस रजिस्ट्री कुंजी में आइटम को संपादित नहीं कर सकता (उपयोगकर्ता के पास सिस्टम रजिस्ट्री कुंजियों पर लिखने की अनुमति नहीं है)। लेकिन आप अपनी उपयोगकर्ता हाइव - HKEY_CURRENT_USER में रजिस्ट्री कुंजियों और पैरामीटर्स को जोड़ या संपादित कर सकते हैं।

इसी तरह आप BAT फाइल का उपयोग करके किसी भी ऐप को चला सकते हैं। बस एक्जीक्यूटेबल फाइल का पथ निर्दिष्ट करें।

run-app-as-non-admin.bat

Set ApplicationPath="C:\Program Files\SomeApp\testapp.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"

आप एक संदर्भ मेनू भी जोड़ सकते हैं जो सभी ऐप्स को उन्नयन के बिना चलाने की अनुमति देता है। ऐसा करने के लिए, RunAsUser.REG फाइल बनाएं, इसमें निम्न कोड कॉपी करें, सहेजें और रजिस्ट्री फाइल पर डबल-क्लिक करके इसे Windows रजिस्ट्री में आयात करें (इस परिवर्तन को लागू करने के लिए आपको व्यवस्थापक अनुमतियों की आवश्यकता होगी)।

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker]
@="Run as user without UAC privilege elevation"
[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command]
@="cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""

उसके बाद, किसी भी एप्लिकेशन को व्यवस्थापक विशेषाधिकारों के बिना चलाने के लिए, बस फाइल एक्सप्लोरर के संदर्भ मेनू में "Run as user without UAC privilege elevation" चुनें।

आप इस विकल्प को रजिस्ट्री पैरामीटर आयात करके GPO का उपयोग करके डोमेन में सभी कंप्यूटरों पर तैनात कर सकते हैं।

मैं आपको एक बार फिर याद दिला दूं कि प्रोग्राम को RUNASINVOKER मोड में उपयोग करने से आपको प्रोग्राम को उन्नत करने की अनुमति नहीं मिलेगी। RunAsInvoker UAC प्रॉम्प्ट को दबाता है और प्रोग्राम को बताता है कि इसे वर्तमान उपयोगकर्ता की अनुमतियों के साथ चलना चाहिए, और विशेषाधिकारों की वृद्धि के लिए नहीं पूछना चाहिए। यदि किसी प्रोग्राम को वास्तव में सिस्टम सेटिंग्स या फाइलों को संपादित करने के लिए उन्नत विशेषाधिकारों की आवश्यकता है, तो यह काम नहीं करेगा या फिर से एडमिन अनुमतियों के लिए पूछेगा।

__COMPAT_LAYER में RunAsInvoker के साथ UAC को बायपास कैसे करें?

पर्यावरण चर __COMPAT_LAYER आपको एप्लिकेशन के लिए विभिन्न संगतता स्तर सेट करने की अनुमति देता है (EXE फाइल के गुणों में संगतता टैब)। इस चर का उपयोग करके, आप प्रोग्राम शुरू करते समय उपयोग की जाने वाली संगतता सेटिंग्स निर्दिष्ट कर सकते हैं। उदाहरण के लिए, किसी ऐप को Windows 8 संगतता मोड और 640×480 रिज़ॉल्यूशन में शुरू करने के लिए, निम्न सेट करें:

set __COMPAT_LAYER=Win8RTM 640x480

__COMPAT_LAYER चर में कुछ विकल्प हैं जिनमें हम रुचि रखते हैं। निम्न पैरामीटर हैं:

  • RunAsInvoker - UAC प्रॉम्प्ट के बिना पैरेंट प्रक्रिया के विशेषाधिकारों के साथ ऐप चलाएं
  • RunAsHighest - उपयोगकर्ता के लिए उपलब्ध उच्चतम-स्तरीय अनुमति के साथ प्रोग्राम चलाएं (यदि उपयोगकर्ता के पास व्यवस्थापक विशेषाधिकार हैं तो UAC प्रॉम्प्ट दिखाई देगा)
  • RunAsAdmin - ऐप को व्यवस्थापक के रूप में चलाएं (हर बार UAC प्रॉम्प्ट दिखाई देगा)

इसका मतलब है कि RunAsInvoker पैरामीटर व्यवस्थापक अनुमतियां प्रदान नहीं करता है, बल्कि केवल UAC प्रॉम्प्ट को दबाता है।

निम्न CMD कोड वर्तमान प्रक्रिया के लिए RunAsInvoker मोड को सक्षम करता है और निर्दिष्ट प्रोग्राम को उन्नयन के बिना चलाता है:

set __COMPAT_LAYER=RUNASINVOKER
start "" "C:\Program Files\MyApp\testapp.exe"

EXE फाइल मैनिफेस्ट में RunAsInvoker मोड सक्षम करना

जैसा कि हमने ऊपर कहा, Windows 10 उन प्रोग्राम्स के लिए UAC शील्ड आइकन प्रदर्शित करता है जिन्हें चलाने के लिए उन्नयन की आवश्यकता होती है। डेवलपर्स प्रोग्राम मैनिफेस्ट में एप्लिकेशन को संकलित करते समय इस आवश्यकता को सेट करते हैं।

आप किसी भी exe फाइल के मैनिफेस्ट को संपादित कर सकते हैं और प्रोग्राम को उन्नत मोड में चलाने की आवश्यकता को अक्षम कर सकते हैं।

प्रोग्राम मैनिफेस्ट को संपादित करने के लिए, आप मुफ्त Resource Hacker टूल का उपयोग कर सकते हैं। Resource Hacker में ऐप की एक्जीक्यूटेबल फाइल खोलें।

इस उदाहरण में, मैं Sysinternals द्वारा Autologon.exe टूल के मैनिफेस्ट को संपादित करूंगा, जिसका उपयोग पासवर्ड के बिना Windows में स्वचालित रूप से लॉग इन करने के लिए किया जा सकता है।

बाईं ओर ट्री में, मैनिफेस्ट सेक्शन पर जाएं और प्रोग्राम मैनिफेस्ट खोलें। निम्न XML अनुभाग पर ध्यान दें:

<requestedPrivileges>
  <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>

यह requireAdministrator विकल्प के कारण है कि Windows हमेशा इस प्रोग्राम को व्यवस्थापक के रूप में चलाने का प्रयास करता है।

requireAdministrator को asInvoker में बदलें और exe फाइल में परिवर्तन सहेजें।

ध्यान दें कि अब प्रोग्राम आइकन से UAC शील्ड गायब हो गई है, और आप इसे वर्तमान उपयोगकर्ता अनुमतियों के साथ व्यवस्थापक पासवर्ड मांगे बिना चला सकते हैं।

यदि एक्जीक्यूटेबल ऐप फाइल MS Authenticode (कोड साइनिंग सर्टिफिकेट) के साथ हस्ताक्षरित है, तो exe फाइल को संशोधित करने के बाद, यह काम करना बंद कर सकती है या चेतावनी जारी कर सकती है।

इस मामले में, आप प्रोग्राम को एक्सटर्नल मैनिफेस्ट फाइल का उपयोग करने के लिए मजबूर कर सकते हैं। एक्सई फाइल के साथ डायरेक्टरी में एक प्लेन टेक्स्ट फाइल appname.exe.manifest (उदाहरण के लिए, Autologon.exe.manifest) बनाएं और इसमें Resource Hacker से मैनिफेस्ट कोड कॉपी करें। requireAdministrator को asInvoker में बदलें। मैनिफेस्ट फाइल सहेजें।

Windows को exe फाइल लॉन्च करते समय हमेशा एक्सटर्नल मैनिफेस्ट फाइल का उपयोग करने का प्रयास करने के लिए, एक विशेष रजिस्ट्री पैरामीटर सक्षम करें:

REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide" /v PreferExternalManifest /t REG_DWORD /d 1 /f

Windows को पुनरारंभ करें और सुनिश्चित करें कि प्रोग्राम एक एक्सटर्नल मैनिफेस्ट फाइल का उपयोग कर रहा है जो बिना व्यवस्थापक विशेषाधिकारों के चलाने के लिए कहता है।

  1. Setuid कैसे उपयोगकर्ताओं को एस्केलेटेड विशेषाधिकारों के साथ फ़ाइलें चलाने की अनुमति देता है Setuid कैसे उपयोगकर्ताओं को एस्केलेटेड विशेषाधिकारों के साथ फ़ाइलें चलाने की अनुमति देता है

    जब आप लिनक्स में एक एक्ज़ीक्यूटेबल फ़ाइल चलाते हैं, तो यह आमतौर पर वर्तमान उपयोगकर्ता और ग्रुप ID के साथ चलती है। हालांकि, ऐसे समय होते हैं जब आपको उस फ़ाइल को किसी अन्य उपयोगकर्ता (जैसे रूट) के रूप में चलाने की आवश्यकता होती है। अपने उपयोगकर्ता खाते को स्विच करने के बजाय, आप setuid का उपयोग करके एक

  1. रास्पबेरी पाई पर Kodi और Netflix कैसे चलाएं रास्पबेरी पाई पर Kodi और Netflix कैसे चलाएं

    क्या आप अपने रास्पबेरी पाई को मीडिया सेंटर में बदलना चाहते हैं ताकि आप किसी भी संगत टीवी या मॉनिटर पर कंटेंट स्ट्रीम कर सकें? हालिया DRM (डिजिटल राइट्स मैनेजमेंट) अपडेट के लिए धन्यवाद, Kodi उपयोगकर्ताओं के पास अब पहले से कहीं अधिक कंटेंट तक पहुंच है - जिसमें Netflix भी शामिल है। इस ट्यूटोरियल में आ

  1. विंडोज 8 एडमिन पासवर्ड सुरक्षित रूप से रीसेट करें: चरण-दर-चरण गाइड विंडोज 8 एडमिन पासवर्ड सुरक्षित रूप से रीसेट करें: चरण-दर-चरण गाइड

    क्या आपने कभी हर बार विंडोज 8 शुरू करते समय पासवर्ड टाइप करने से परेशान महसूस किया है? जब आप पासवर्ड भूल जाते हैं तो क्या आप गर्म तवे पर चींटियों की तरह बेचैन हो जाते हैं? एक विंडोज 8 उपयोगकर्ता के रूप में, मैं भी ऐसी पासवर्ड-संबंधी समस्याओं में फंस गया हूं। इस प्रकार, मैं इंटरनेट पर खोज करता हूं और