वाइल्डकार्ड के साथ icacls बैच फ़ाइल कई निर्देशिकाओं की जरूरत है


2

मैंने निम्नलिखित बैच फ़ाइल लिखी है, जो 3 नंबर से शुरू होने वाले सभी फ़ोल्डरों के माध्यम से और 2010 के किसी भी सबफ़ोल्डर में फ़ोल्डर अनुमतियों को लागू करने के लिए एक बढ़िया काम करता है। नीचे दिए गए बैच की फाइल का उदाहरण:

/ D %% f के लिए (D: \ Data \ 3 *) icacls "%% f \ 2010" / वंशानुक्रम: r / अनुदान: r "डोमेन प्रवेश" :( OI) (CI) F

सवाल : मैं 3 के साथ शुरू होने वाले फ़ोल्डरों के भीतर किसी विशिष्ट फ़ोल्डर के नीचे अनुमतियों को लागू करने की अनुमति देने के लिए इस स्क्रिप्ट को कैसे सुधार सकता हूं?

यहाँ मेरे असफल प्रयास का एक उदाहरण है:

/ D %% f के लिए (D: \ Data \ 3 *) icacls "%% f * \ specificfolder" / उत्तराधिकार: r / अनुदान: r "डोमेन प्रवेश" :( OI) (CI) F


मेरे कोड की अंतिम पंक्ति पर ध्यान दें, पोस्ट * से पहले एक पट्टी कर रहा है
user153521

क्या आप एक उदाहरण निर्देशिका ट्री प्रदान कर सकते हैं जिस पर आप काम कर रहे हैं?
soandos

@soandos उदाहरण निर्देशिका: D: \ Data \ 3214 ग्राहक \ खातों \ SpecificFolder यह विचार है कि यह 3214 'ग्राहक निर्देशिका' के नीचे किसी भी फ़ोल्डर में SpecificFolder के लिए दिखेगा।
user153521

जवाबों:


1

निम्नलिखित निर्देशिका वृक्ष के साथ:

डी

डेटा

31245 ग्राहक

anyfolder

specificfolder

31246 ग्राहक

anyfolder

specificfolder

नीचे दिया गया कोड आपके द्वारा निर्दिष्ट दोनों विशिष्ट निर्देशिकाओं पर लागू होगा जिसे "विशिष्ट फ़ोल्डर" कहा जाता है।

@echo off
for /D %%f in ("D:\Data\3*") do for /D %%d in ("%%f\*") do icacls "%%d\specificfolder" /inheritance:r /grant:r "Domain Admins":(OI)(CI)F

नोट - यह उन नोड्स के लिए नेस्टेड का उपयोग करता है जो डॉस (COMMAND.COM) द्वारा समर्थित नहीं है। यह NT (CMD.EXE) सिस्टम के साथ ठीक काम करेगा।


इस पर आपके उत्तर के लिए धन्यवाद। आपके उत्तर में कमांड वही है जो मैं वर्तमान में D: \ Data \ 3 * डाइरेक्टरी में सब कुछ उपयोग कर रहा हूं जैसा आपने कहा था, और यह बहुत अच्छा काम करता है। मैंने "%% f * \ specificfolder" में तारांकन को रखा था क्योंकि मैं स्क्रिप्ट को एक और निर्देशिका (किसी भी नाम के साथ, जो कि * का कारण है) को ड्रिल करना चाहूंगा और वहां विशिष्ट फ़ोल्डर की तलाश करूंगा। मुझे आशा है कि इससे मदद मिलेगी, मुझे बताएं कि क्या मुझे इसे और अधिक विस्तार से समझाने की आवश्यकता है।
user153521

ऊपर वर्णित निर्देशिका संरचना को प्रतिबिंबित करने के लिए मेरे मूल उत्तर को अपडेट किया। यदि आप कुछ और चाहते हैं, तो मुझे बताएं।
TehTechGuy

हम करीब हैं! मैंने कोड की कोशिश की, लेकिन यह अंतरिक्ष के कारण क्लाइंट नंबर और नाम के बीच निर्देशिका को काट रहा है। मैंने आपका सबसे हाल का कोड निम्नानुसार संशोधित किया है, मैंने अभी "%% f *" के आसपास उद्धरण जोड़े हैं: / D %% f के लिए (D: \ Data \ 3 *) do / D %% d के लिए ("%%) f * ") icacls" %% d \ specificfolder "उदाहरण: D: \ Data \ 31245 Smith \ anyfolder \ specificfolder समस्या यह है कि स्क्रिप्ट के बाद सभी सही फ़ोल्डरों के माध्यम से चलता है, यह तब खुद को दोहराता है, लेकिन यह क्लाइंट निर्देशिका को बंद कर देता है सबसे हाल के कोड की तरह अंतरिक्ष से पहले। उदाहरण: icacls D: \ Data \ 31245 \ anyfolder \ specificfolder
user153521

मैं आपकी समस्या को दोहराने में असमर्थ हूँ। मुझे क्या परेशान करता है कि आप कहते हैं कि स्क्रिप्ट खुद को दोहराती है। क्या आप इस कोड का उपयोग किसी अन्य कोड के साथ कर रहे हैं? मैंने अपने उत्तर को फिर से संपादित किया और आसपास के उद्धरण भी जोड़े D:\Data\3* हिस्से; हालाँकि, मेरे सिस्टम पर यह केवल आपके द्वारा बताए गए परिवर्तन को बनाने के साथ ठीक काम किया। शायद आप इसे प्रतिध्वनित कर रहे हैं? मेरे उत्तर में कोड की दो पंक्तियों के साथ एक नई बैच फ़ाइल बनाने का प्रयास करें, और मुझे बताएं कि क्या होता है। यदि यह काम नहीं करता है, तो मुझे पूरा रास्ता दें जो आप उपयोग कर रहे हैं।
TehTechGuy

मेरी गलती, स्क्रिप्ट दोहराई नहीं गई, मैंने कल इसे गलत तरीके से परीक्षण वातावरण में दो समान नाम वाली फाइलों के साथ व्याख्या की।
user153521
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.