रोबोकॉपी की अनुमति से इनकार किया


11

रोबोकॉपी विंडोज 7 के साथ प्रीइंस्टॉल्ड है। मैंने इसे अतीत में कई बार इस्तेमाल किया है। मैंने एक फ़ोल्डर को दूरस्थ साझा के साथ कॉपी करने की कोशिश की

robocopy c:\source "\\server\share\path" /s /r:2 /w:2` 

परिणामस्वरूप मुझे अनुमति से वंचित कर दिया जाता है। एक्सप्लोरर का उपयोग करके मैं इस शेयर में फ़ाइलों को कॉपी कर सकता हूं। मैंने एक ही परिणाम के साथ व्यवस्थापक अनुमतियों के साथ कमांड प्रॉम्प्ट खोला है। शेयर जनता के लिए पढ़ा / लिखा गया है।

EDIT मैंने साझा करने के लिए एक ड्राइवलेटर का सफलतापूर्वक मैप किया है, लेकिन रोबोकॉपी अभी भी विफल है

EDIT मैंने सफलता के बिना / B स्विच जोड़ा है। सटीक त्रुटि है:

2009/09/26 20:43:14 ERROR 5 (0x00000005) 
    Accessing Destination Directory \\drobo\Drobo\fotos\__NEW\Ericsson\

क्या आपने साझा फ़ोल्डर को ड्राइव अक्षर पर मैप करने की कोशिश की है?
CGA

हां मैंने पहले कोशिश की। समान परिणाम
एडोसॉफ्ट

क्या आपके द्वारा साझा किए गए फ़ोल्डर का स्वामित्व लेने की कोशिश की गई है? क्या आप किसी कार्यसमूह या सक्रिय निर्देशिका डोमेन पर हैं?
CGA

मैं एक कार्यसमूह का उपयोग कर रहा हूँ। मैंने स्वामित्व ले लिया।
एडोसॉफ्ट

यदि आप / V पैरामीटर का उपयोग करते हैं, तो Verbose मोड आपको कोई अन्य जानकारी देता है? त्रुटि 5 आमतौर पर एक एक्सेस अस्वीकृत संदेश है। कमांड प्रॉम्प्ट से आप COPY कमांड का उपयोग कर सकते हैं? क्या यह अन्य यूएनसी के साथ काम करता है या ड्रोबो एकमात्र ऐसा है जो विफल रहता है? यदि हां, तो ड्रोबो लोग जवाब देने के लिए सबसे अच्छी जगह हो सकते हैं।
जेफ़री हिक्स

जवाबों:


12

यहाँ से उद्धृत :

मेरे मामले में, मैंने स्रोत और गंतव्य शेयरों दोनों पर पूर्ण नियंत्रण के साथ शुरुआत की। समस्या यह थी कि रोबोकॉपी गंतव्य शेयर पर एसीएल को एक शून्य मान (किसी की अनुमति नहीं है) को रीसेट कर रही थी, इससे पहले कि उसने उपनिर्देशिका को फिर से शुरू किया। कुछ त्वरित परीक्षणों के बाद, मेरा निष्कर्ष यह है कि रोबोकॉपी विरासत में मिली अनुमतियों को संभालती नहीं है। मान लें कि आप C: \ Share1 से D: \, और C: \ Share1 की प्रतिलिपि C: \ root निर्देशिका से अपनी अनुमतियाँ प्राप्त कर रहे हैं, यह वास्तव में कोई स्पष्ट ACL नहीं है। इसलिए, जब आप इसकी एसीएल की नकल करते हैं, तो आप वास्तव में नकल कर रहे होते हैं ... कुछ भी नहीं। खाली ACL को अपने गंतव्य पर कॉपी करने से कॉपी के पहले चरण में आपकी अनुमतियां हटा दी जाती हैं, और बाद के सभी शेयर त्रुटि 5 के लिए विफल हो जाते हैं।

यह केवल एक समस्या है जब आप एक स्रोत से कॉपी कर रहे हैं जिसे आप विरासत में मिली अनुमतियों के साथ प्राप्त कर रहे हैं और एक गंतव्य जिसे आप विरासत में मिली अनुमतियों के बिना एक्सेस कर रहे हैं। यदि आप C: \ (जो आपने स्पष्ट रूप से अपने ACL में कॉपी किया है), D: \ के लिए, कोई समस्या नहीं है। यदि यह वास्तव में आपकी समस्या है, तो आप पूर्ण नियंत्रण के साथ अपने आप को स्रोत ACL में स्पष्ट रूप से जोड़कर हल कर सकते हैं। जब प्रतिलिपि चलती है, तो आपकी एसीएल प्रविष्टि गंतव्य पर दोहराई जाती है, और बाद की फ़ाइल प्रतियां लिखी जा सकती हैं। प्रतिलिपि के पूर्ण होने के बाद आप (स्रोत और गंतव्य दोनों पर) अपने परिवर्तनों को पूर्ववत कर सकते हैं।

यदि आपको उपरोक्त के बावजूद समस्या बनी रहती है, तो आप / B स्विच को आज़माने पर विचार कर सकते हैं, जो बैकअप ऑपरेटर के रूप में आपके विशेषाधिकारों का उपयोग करके फ़ाइल का बैकअप लेने का प्रयास करता है। यह आपको उन फ़ाइलों को कॉपी करने की अनुमति देगा जो आप अन्यथा नहीं कर सकते हैं, उदाहरण के लिए, यदि आप अपने गंतव्य शेयर पर एसीएल पर नहीं हैं। पुनः आरंभ करने योग्य प्रतिलिपि का प्रयास करने के लिए रोबोकॉपी चूक। पुनरारंभ करने योग्य प्रतियों को देने से सबसे खराब स्थिति यह है कि आप व्यवधान की स्थिति में वर्तमान में स्थानांतरित की जा रही फ़ाइल को खो देते हैं। अगला पास उस फ़ाइल को पुनः आरंभ करेगा जिसके माध्यम से भाग के बजाय इसकी शुरुआत होगी।

उम्मीद है की वो मदद करदे। यहाँ Microsoft के Robocopy doc / B स्विच के बारे में एक उद्धरण दिया गया है:

उद्धरण:

यदि आप फ़ाइल डेटा के साथ-साथ NTFS सुरक्षा जानकारी (ACLs) की प्रतिलिपि बनाते हैं, तो उन फ़ाइलों की प्रतिलिपि बनाना संभव है, जिन तक आपने पहुँच पढ़ी है, लेकिन पहुँच लिखना नहीं। इस तरह की फ़ाइल को एक बार कॉपी करने के बाद, और ACL को लागू किया जाता है, आप पा सकते हैं कि जब आप फ़ाइल को फिर से कॉपी करने का प्रयास करते हैं तो "एक्सेस अस्वीकृत" त्रुटि प्राप्त करें। इस स्थिति में आपको बैकअप मोड में फ़ाइलों को कॉपी करने के लिए / B या ZB स्विच का उपयोग करना चाहिए।

/ B बैकअप शब्दार्थ (बैकअप मोड) के साथ सभी फाइलों को कॉपी करता है। / ZB पहली बार पुनरारंभ मोड में फ़ाइलों को कॉपी करने का प्रयास करता है।


5

Backupध्वज का उपयोग करके फ़ाइलों की प्रतिलिपि बनाने का प्रयास करें :

/ B: फ़ाइलों को बैकअप मोड में कॉपी करें।


Thx, मैं कोशिश करूँगा कि।
15

/ ZB कमांड के साथ क्या अलग है?
सीनियर सिस्टम इंजीनियर

2

पिछले उत्तरों के अलावा, मेरे लिए काम करने वाले फिक्स के साथ मैं विस्तार कर सकता हूं। मेरे मामले में मेरे पास स्थानीय फ़ोल्डर और फ़ाइलें थे स्वामित्व प्रणाली पर किसी अन्य उपयोगकर्ता द्वारा दावा किया गया था। मैंने बस सभी फ़ोल्डर्स और सब फ़ोल्डर्स के स्वामित्व का दावा किया और बैकअप स्विच के बिना सब कुछ ठीक काम किया।

किसी फ़ोल्डर और उसके उप फ़ोल्डरों के स्वामित्व का दावा करें: http://technet.microsoft.com/en-us/magazine/ff404240.aspx


तो इस मामले में, फ़ोल्डर को बैच स्क्रिप्ट उपयोगकर्ता खाते के स्वामित्व का दावा करना चाहिए?
सीनियर सिस्टम इंजीनियर

1

इसे स्वचालित रूप से ठीक करने के लिए आप एक स्क्रिप्ट भी लिख सकते हैं

# To run robocopy with logging which logs errors
robocopy source dest /MIR /NP /TEE /R:0 /W:1 /FFT /LOG+:log.txt 

# get errors from log and use set-content so it only writes if there are errors.
get-content log.txt | select-string "0x00000005" | set-content errors.log

#if statements to check if it even had errors.  only if errors go into if statement.
if (test-path errors.log) {

    #now capture the paths exactly.  Get-unique so it writes one error only once. 
    #Will assume you're using UNCs to copy vs. drive letters, please modify as necessary
    select-string -path errors.log -pattern "\\\\.*$" | %{ $_.Matches[0].captures[0].value} | get-unique > paths.log

    #just do foreach loop for each path.
    foreach ($path in $paths) { 

        #use subinacl to take ownership and assign permissions, it is better and faster 
        #than icacls and ps ways but you can use whatever works.  Report the changes you 
        #made.  if '$path' is a folder then you will need to modify subinacl command to 
        #inherit etc.  look it up.
        .\subinacl /file "$path" /setowner="YOUR ID" >> change-perms.log
        .\subinacl "$path" /grant="your ID"=F >> change-perms.log

    }

    #run your robocopy command again to copy missed file in previous step. 
    robocopy source dest /MIR /NP /TEE /R:0 /W:1 /FFT /LOG+:log.txt 

    #Delete the error log file so it does not go in to if loop next time you run.
    remove-item error.log (use force, erroraction etc as necessary)

}

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