डिफ़ॉल्ट रूप से, सामान्य (गैर-व्यवस्थापक) उपयोगकर्ता Windows सेवाओं का प्रबंधन नहीं कर सकते हैं। इसका अर्थ है कि उपयोगकर्ता विंडोज सेवाओं की सेटिंग्स/अनुमतियों को रोक, प्रारंभ, पुनरारंभ या परिवर्तित नहीं कर सकते हैं। कुछ मामलों में, उपयोगकर्ता के पास कुछ सेवाओं को पुनरारंभ करने या प्रबंधित करने की अनुमति होना आवश्यक है। इस लेख में हम विंडोज सेवाओं के लिए अनुमतियों को प्रबंधित करने के कई तरीके देखेंगे। विशेष रूप से, हम आपको दिखाएंगे कि कैसे एक गैर-व्यवस्थापक उपयोगकर्ता को उचित अनुमति देकर किसी विशिष्ट विंडोज सेवा को शुरू करने, रोकने और पुनरारंभ करने की अनुमति दी जाए।
मान लीजिए, आपको डोमेन खाता contoso\tuser . प्रदान करने की आवश्यकता है प्रिंट स्पूलर को पुनरारंभ करने की अनुमतियां सेवा (सेवा का नाम - स्पूलर) . जब गैर-व्यवस्थापक सेवा को पुनरारंभ करने का प्रयास करता है, तो एक त्रुटि दिखाई देती है:
सिस्टम त्रुटि 5 उत्पन्न हुई है। प्रवेश निषेध है।
विंडोज़ में सेवाओं की अनुमतियों को प्रबंधित करने के लिए कोई सरल और सुविधाजनक अंतर्निहित टूल नहीं है। हम किसी उपयोगकर्ता को सेवा प्रबंधित करने की अनुमति देने के कुछ तरीकों पर विचार करेंगे:
SC.exe (सेवा नियंत्रक) टूल का उपयोग करके Windows सेवा अनुमतियां सेट करना
सिस्टम सेवा अनुमतियों को प्रबंधित करने के लिए एक मानक अंतर्निहित विंडोज विधि sc.exe . का उपयोग करने के लिए मानती है (सेवा नियंत्रक) उपकरण। इस उपयोगिता का उपयोग करने में मुख्य समस्या सेवा अनुमति प्रारूप का जटिल सिंटैक्स है (SDDL प्रारूप — सुरक्षा विवरण परिभाषा भाषा)।
आप इस तरह एक एसडीडीएल स्ट्रिंग के रूप में विंडोज सेवा के लिए वर्तमान अनुमतियां प्राप्त कर सकते हैं:
sc.exe sdshow Spooler
D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)
(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
इन सभी प्रतीकों का क्या अर्थ है?
S:— सिस्टम एक्सेस कंट्रोल लिस्ट (SACL)D:— विवेकाधीन ACL (DACL)
कोष्ठक के बाद पहले अक्षर का अर्थ है:अनुमति दें (A ) या इनकार (D )।
प्रतीकों का अगला सेट असाइन करने योग्य अनुमतियाँ हैं।
CC — SERVICE_QUERY_CONFIG (अनुरोध सेवा सेटिंग)LC — SERVICE_QUERY_STATUS (सेवा स्थिति मतदान)SW — SERVICE_ENUMERATE_DEPENDENTSLO — SERVICE_INTERROGATECR — SERVICE_USER_DEFINED_CONTROLRC — READ_CONTROLRC — SERV>अंतिम 2 वर्ण ऑब्जेक्ट (उपयोगकर्ता, समूह या SID) हैं जिन्हें अनुमति दी गई है। पूर्वनिर्धारित समूहों की एक सूची है।
<पूर्व>एयू प्रमाणित उपयोगकर्ताएओ खाता संचालकआरयू उपनाम पिछले विंडोज 2000AN बेनामी लॉगऑनएयू प्रमाणित उपयोगकर्ताBA अंतर्निहित व्यवस्थापकBG अंतर्निहित अतिथिBO बैकअप ऑपरेटरBU अंतर्निहित उपयोगकर्ताCA प्रमाणपत्र सर्वर व्यवस्थापकसीजी निर्माता समूहCO निर्माता स्वामीDA डोमेन व्यवस्थापकDC डोमेन कंप्यूटरDD डोमेन नियंत्रकDG डोमेन अतिथिDU डोमेन उपयोगकर्ताEA एंटरप्राइज़ एडमिनिस्ट्रेटरED एंटरप्राइज डोमेन कंट्रोलरWD हर कोईPA ग्रुप पॉलिसी एडमिनिस्ट्रेटरIU इंटरएक्टिव रूप से लॉग-ऑन यूजरLA लोकल एडमिनिस्ट्रेटरLG लोकल गेस्टLS लोकल सर्विस अकाउंटSY लोकल सिस्टमNU नेटवर्क लॉगऑन यूजरNO नेटवर्क कॉन्फ़िगरेशन ऑपरेटरNS नेटवर्क सर्विस अकाउंटपीओ प्रिंटर ऑपरेटरPS पर्सनल सेल्फपीयू पावर यूजर्सRS RAS सर्वर ग्रुपRD टर्मिनल सर्वर यूजर्सRE रेप्लिकेटरRC प्रतिबंधित कोडSA स्कीमा एडमिनिस्ट्रेटरSO सर्वर ऑपरेटरSU सेवा लॉगऑन उपयोगकर्ता
पूर्वनिर्धारित समूह के बजाय, आप SID द्वारा स्पष्ट रूप से किसी उपयोगकर्ता या समूह को निर्दिष्ट कर सकते हैं। वर्तमान उपयोगकर्ता के लिए SID प्राप्त करने के लिए, आप कमांड का उपयोग कर सकते हैं:
whoami /user
या आप Get-ADUser cmdlet का उपयोग करके किसी भी डोमेन उपयोगकर्ता के लिए SID ढूंढ सकते हैं:
Get-ADUser -Identity 'sadams' | select SID
आप Get-ADGroup cmdlet का उपयोग करके AD सुरक्षा समूह का SID प्राप्त कर सकते हैं:
Get-ADGroup -Filter {Name -eq "ny-ithelpdesk"} | Select SID
किसी विशिष्ट सेवा के लिए SDDL अनुमति स्ट्रिंग असाइन करने के लिए, आप sc sdset का उपयोग कर सकते हैं आदेश। उदाहरण के लिए, निम्न आदेश वाले उपयोगकर्ता को अनुमतियां दी जा सकती हैं:
sc sdset Spooler "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;RPWPCR;;;S-1-5-21-2133228432-2794320136-1823075350-1000)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
उपयोगकर्ता को सेवा प्रारंभ/बंद/पुनरारंभ करने की अनुमति देने के लिए SubInACL का उपयोग करना
कमांड लाइन टूल का उपयोग करना आसान है SubInACL सेवा अनुमतियों को प्रबंधित करने के लिए Sysinternals (मार्क Russinovich द्वारा) से। इस टूल का सिंटैक्स बहुत आसान और अधिक सुविधाजनक है। यहां बताया गया है कि आप SubInACL का उपयोग करके किसी सेवा के लिए पुनरारंभ अनुमति कैसे दे सकते हैं:
- डाउनलोड करें subinacl.msi इस वेबपेज से (https://www.microsoft.com/en-us/download/details.aspx?id=23510) और इसे लक्ष्य प्रणाली पर स्थापित करें;
- एलिवेटेड कमांड प्रॉम्प्ट में, टूल वाली निर्देशिका पर जाएं:
cd “C:\Program Files (x86)\Windows Resource Kits\Tools\"
- आदेश चलाएँ:
subinacl.exe /service Spooler /grant=contoso\tuser=PTO
नोट . इस मामले में हमने एक उपयोगकर्ता को किसी सेवा को निलंबित (रोकें/जारी रखें), प्रारंभ और बंद (पुनरारंभ) करने की अनुमति दी है। उपलब्ध सेवा अनुमतियों की पूरी सूची:F :Full ControlR :Generic ReadW :Generic WriteX :Generic eXecuteL:Read controLQ :Query Service ConfigurationS:Query Service StatusE :Enumerate Desential ServicesC:Service Change ConfigurationT:Start ServiceO:Stop ServiceP:Pause/Continue ServiceI:पूछताछ सेवायू:सेवा उपयोगकर्ता-परिभाषित नियंत्रण आदेश
यदि आपको किसी दूरस्थ कंप्यूटर पर चल रही किसी सेवा को अनुमति देने की आवश्यकता है, तो सबिनाक्ल कमांड के निम्नलिखित सिंटैक्स का उपयोग करें:
subinacl /SERVICE \\lon-prnt1\spooler /grant=contoso\tuser=F
- अब आपको केवल एक उपयोगकर्ता खाते के तहत कंप्यूटर को लॉगऑन करना होगा और कमांड के साथ सेवा को पुनरारंभ करने का प्रयास करना होगा:
net stop spooler
net start spooler
याsc stop spooler && sc start spooler
अगर आपने सब कुछ ठीक किया, तो सेवा को फिर से शुरू करना चाहिए।
असाइन की गई सेवा अनुमतियों को रद्द करने के लिए,/revoke
. का उपयोग करें subinacl.exe उपकरण का विकल्प। उदाहरण के लिए:
subinacl.exe /service Spooler /revoke=contoso\tuser
प्रोसेस एक्सप्लोरर का उपयोग करके विंडोज सेवा अनुमति कैसे बदलें?
आप एक और Sysinternals उपयोगिता का उपयोग करके Windows सेवा अनुमतियों को बदल सकते हैं - प्रोसेस एक्सप्लोरर . प्रक्रिया एक्सप्लोरर को व्यवस्थापक के रूप में चलाएँ और आपको जिस सेवा की आवश्यकता है उसकी प्रक्रिया खोजें। हमारे उदाहरण में, यह spoolsv.exe है (स्पूलर निष्पादन योग्य - C:\Windows\System32\spoolsv.exe
) प्रक्रिया गुण खोलें और सेवाएं . पर क्लिक करें टैब।
अनुमतियां क्लिक करें बटन खोलें और खुलने वाली विंडो में उपयोगकर्ता या समूह जोड़ें। उसके बाद उन अनुमतियों का चयन करें जिन्हें आप असाइन करना चाहते हैं (पूर्ण नियंत्रण/लिखें/पढ़ें)।
PowerShell का उपयोग करके Windows सेवा अनुमतियां सेट करना
टेकनेट गैलरी में विभिन्न विंडोज़ ऑब्जेक्ट्स के लिए अनुमतियों के प्रबंधन के लिए एक अलग अनौपचारिक पावरशेल मॉड्यूल है - PowerShellAccessControl मॉड्यूल (आप द्वारा इसे यहां पर डाउनलोड किया जा सकता है)। यह मॉड्यूल आपको सेवा अनुमतियों को प्रबंधित करने की अनुमति भी देता है। इस मॉड्यूल को स्थापित करें और इसे अपने PS सत्र में आयात करें:
Import-Module PowerShellAccessControl
आप किसी विशिष्ट Windows सेवा के लिए PowerShell से इस प्रकार प्रभावी अनुमति प्राप्त कर सकते हैं:
Get-Service spooler | Get-EffectiveAccess -Principal corp\tuser
गैर-व्यवस्थापक उपयोगकर्ता को स्पूलर सेवा शुरू और बंद करने की अनुमति देने के लिए, कमांड चलाएँ:
Get-Service spooler | Add-AccessControlEntry -ServiceAccessRights Start,Stop -Principal corp\tuser
सेवा अनुमतियां प्रबंधित करने के लिए सुरक्षा टेम्प्लेट का उपयोग करना
सेवा अनुमतियों को प्रबंधित करने के लिए एक दृश्य (लेकिन अधिक क्रियाओं की आवश्यकता होती है) ग्राफिकल तरीका सुरक्षा टेम्पलेट का उपयोग कर रहा है। mmc.exe खोलें कंसोल और सुरक्षा टेम्पलेट . जोड़ें स्नैप-इन।
एक नया सुरक्षा टेम्पलेट (नया टेम्पलेट) बनाएँ।
नए टेम्पलेट के लिए नाम निर्दिष्ट करें और सिस्टम सेवाएं . पर जाएं अनुभाग। सेवाओं की सूची में सेवा का चयन करें स्पूलर प्रिंट करें और इसके गुण खोलें।
स्टार्टअप मोड चुनें (स्वचालित ) और सुरक्षा संपादित करें . क्लिक करें ।
जोड़ें . का उपयोग करना बटन, अनुमति देने के लिए एक उपयोगकर्ता खाता या एक समूह जोड़ें। हमारे मामले में, शुरू करें, रोकें और रोकें अनुमति पर्याप्त है।
इस टेम्पलेट को सहेजें।
नोट . सुरक्षा टेम्पलेट की सामग्री C:\Users\%username%\Documents\Security\Templates फ़ोल्डर में INF फ़ाइल के रूप में सहेजी जाती है।यदि आप इस फ़ाइल को खोलते हैं, तो आप देख सकते हैं कि अनुमतियों के बारे में जानकारी एसडीडीएल प्रारूप में सहेजी गई है, जिसका उल्लेख पहले किया गया था। इस तरह से प्राप्त स्ट्रिंग को sc.exe कमांड के तर्क के रूप में इस्तेमाल किया जा सकता है।
[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[Service General Setting]
"Spooler",2,"D:AR(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;RPWPDTRC;;;S-1-5-21-3243688314-1354026805-3292651841-1127)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
अब आपको केवल सुरक्षा का उपयोग करके एक नया डेटाबेस (ओपन डेटाबेस) बनाना होगा विन्यास और विश्लेषण स्नैप-इन करें और फ़ाइल से अपना सुरक्षा टेम्पलेट आयात करें Spooler User Rights.inf.
कंप्यूटर को अभी कॉन्फ़िगर करें . का चयन करके इस टेम्पलेट को लागू करें संदर्भ मेनू से विकल्प।
अब आप जांचें कि उपयोगकर्ता गैर-व्यवस्थापक खाते के अंतर्गत प्रिंट स्पूलर सेवा को प्रबंधित करने की अनुमति दे सकता है।
उपयोगकर्ताओं को GPO का उपयोग करके किसी सेवा को प्रबंधित करने के अधिकार कैसे प्रदान करें?
यदि आपको उपयोगकर्ताओं को एकाधिक सर्वर या डोमेन कंप्यूटर सेवा शुरू/बंद करने की अनुमति देनी है, तो समूह नीति (जीपीओ) सुविधाओं का उपयोग करना आसान है:
- नया GPO बनाएं या मौजूदा GPO को संपादित करें, इसे कंप्यूटर ऑब्जेक्ट के साथ आवश्यक Active Directory कंटेनर (OU) से लिंक करें। नीति अनुभाग पर जाएं कंप्यूटर कॉन्फ़िगरेशन -> विंडोज सेटिंग्स -> सुरक्षा सेटिंग्स -> सिस्टम सेवाएं;
- स्पूलर सेवा ढूंढें और ऊपर वर्णित विधि की तरह उपयोगकर्ताओं को अनुमतियां प्रदान करें। परिवर्तन सहेजें;नोट. पहले हमने दिखाया था कि एक ही GPO का उपयोग करके आप सभी उपयोगकर्ताओं से किसी भी Windows सेवा को छिपा सकते हैं।
- क्लाइंट कंप्यूटर पर GPO लागू होने तक प्रतीक्षा करें और सुनिश्चित करें कि नई सेवा अनुमतियां असाइन की गई हैं।
उन सभी सेवाओं के लिए सुरक्षा सेटिंग्स जिनके लिए आपने डिफ़ॉल्ट अनुमतियाँ बदली हैं, उनकी अपनी रजिस्ट्री कुंजी HKLM\System\CurrentControlSet\Services\<servicename>\Security
में संग्रहीत हैं। सुरक्षा . में REG_BINARY प्रकार का पैरामीटर।
इसका अर्थ यह है कि अन्य कंप्यूटरों पर सेवा अनुमतियाँ सेट करने का एक तरीका इस रजिस्ट्री पैरामीटर (GPO के माध्यम से) को निर्यात/आयात करना है।
इसलिए, हमने विंडोज सेवा अनुमतियों को प्रबंधित करने के कई तरीकों पर ध्यान दिया, जो आपको गैर-व्यवस्थापक उपयोगकर्ता को सिस्टम सेवाओं के लिए कोई भी अनुमति देने की अनुमति देते हैं। यदि उपयोगकर्ता को सेवा के लिए दूरस्थ पहुँच की आवश्यकता है, तो उसे स्थानीय लॉगऑन या RDP पहुँच अनुमति दिए बिना, आपको उपयोगकर्ता को दूरस्थ रूप से कनेक्ट करने और सेवा नियंत्रण प्रबंधक के माध्यम से सेवाओं की गणना करने की अनुमति देनी चाहिए।