सवाल मालिक विंडोज 7 को दोबारा बदल दें


किसी भी तरह से मैंने गलती से सभी फाइलों को सबफ़ोल्डर में "कोई स्वामी नहीं" पर सेट किया है और मैं सभी अनुमतियों को बदलने के लिए प्रतीत नहीं कर सकता। मैं मालिक को बदलकर हाथों को बदलकर अनुमतियां सेट कर सकता हूं लेकिन मैं सभी फ़ाइलों के मालिक को कैसे बदल सकता हूं इस निर्देशिका में एक बार में?


87
2018-03-05 18:23


मूल




जवाब:


उपयोग takeown कमांड प्रॉम्प्ट से स्वामित्व को एक फ़ोल्डर ले जाने के लिए, इसके सभी उपफोल्डर्स और फ़ाइलों को रिकर्सिवली:

takeown /f "c:\folder\subfolder" /r

यह अच्छी तरह से काम करता है, लेकिन यदि आप अपने कमांड लाइन कंसोल को व्यवस्थापक के रूप में नहीं चलाते हैं तो यह उन फ़ाइलों के लिए असफल हो सकता है जिनके आपके पास नहीं है।


83
2018-03-05 18:37





वास्तव में टूटी हुई अनुमतियों को ठीक करने के लिए, इन दो आदेशों को एक के बाद चलाने के लिए सबसे अच्छा है:

takeown /f "C:\path\to\folder" /r
icacls "C:\path\to\folder" /reset /T

पहला व्यक्ति आपको सभी फाइलों का स्वामित्व देगा, हालांकि यह पर्याप्त नहीं हो सकता है, उदाहरण के लिए यदि सभी फाइलों में पढ़ने / लिखने / निष्पादन अनुमतियां "इनकार" करने के लिए सेट की गई हैं। आप फाइलों के मालिक हैं लेकिन अभी भी उनके साथ कुछ भी नहीं कर सकते हैं।

उस स्थिति में, दूसरा आदेश चलाएं, जो टूटी अनुमतियों को ठीक करेगा।


94
2018-01-01 11:16



उत्कृष्ट तकनीकी सलाह ... आपका समाधान केवल एक ही काम था। एक बार फिर धन्यवाद। - carrabino
सबसे अच्छी सलाह, दोनों टेकउन और icacls का उपयोग करने की जरूरत है। - gnac
/ एक विकल्प उपयोगी है यदि आप 'मौजूदा मालिक की बजाय व्यवस्थापक समूह को स्वामित्व देना चाहते हैं'। ऐसा करने के लिए आपको व्यवस्थापकों के विशेषाधिकारों की आवश्यकता है। Ctrl-shift-enter का उपयोग कर cmd विंडो खोलने की आवश्यकता हो सकती है। - PeterVermont
मैंने जोड़ा है /D Y पैरामीटर takeown इसलिए यह रिकर्स की गई निर्देशिकाओं को स्वत: पुष्टि करता है जहां आपके पास 'सूची निर्देशिका' अनुमतियां नहीं हैं। - Jeroen Wiert Pluimers
@JeroenWiertPluimers, हालांकि यह एक अच्छी सलाह है, मैंने संपादन को हटा दिया है क्योंकि यह (बेवकूफ रूप से पर्याप्त) स्थानीयकृत पैरामीटर है, इसलिए अंग्रेजी विंडोज़ पर यह होगा /D Yफ्रेंच पर एक /D Oशायद स्पेनिश पर /D S, आदि। - this.lau_


ध्यान दें कि cacls को बहिष्कृत किया गया है (Windows Vista के बाद से) और यह आपको उपयोग करने की सलाह देता है icacls

यह आदेश किसी फ़ोल्डर पर अनुमतियों को दोबारा रीसेट कर देगा:

icacls "C:\path\to\folder" /reset /T

26
2017-10-05 07:47





आप उपयोग कर सकते हैं cacls कमांड प्रॉम्प्ट से:

cacls "सी: \ path \ to \ फ़ोल्डर" / ई / टी / सी / जी "प्रशासक": एफ

/T स्विच इसे पुनरावर्ती रूप से कार्य करने की अनुमति देता है। बदलने के Administrator उस उपयोगकर्ता के साथ आप अनुमति देना चाहते हैं।


5
2018-03-05 18:37





मुझे बहुत लंबे पथ (256 वर्णों से अधिक) वाली फ़ाइलों के साथ समस्याएं थीं। दो आदेश

takeown /f "C:\path\to\really_long_folder_name" /r
icacls "C:\path\to\really_long_folder_name" /reset /T

वास्तव में लंबे पथ और नामों के साथ इन फ़ाइलों को छोड़कर काम किया। मैं नाम बदल गया

"C:\path\to\really_long_folder_name"

सेवा मेरे

"C:\path\to\r"

और फिर चल रहा है

takeown /f "C:\path\to\r" /r /D Y
icacls "C:\path\to\r" /grant Everyone:(F) /t /c /q

जिसके बाद मैं फ़ोल्डर को कुछ और समझदार में बदल सकता था। टेकडाउन / डी वाई संकेतों के लिए हां जवाब देता है। आईसीएक्सएल के लिए मैंने सभी लोगों को पूर्ण पहुंच प्रदान करने / अनुदान देने के लिए अनुदान दिया (क्योंकि मैं सिर्फ मृत पीसी से हार्ड ड्राइव पर डेटा तक पहुंचने की कोशिश कर रहा था), एस / फ़ोल्डरों को फाइल करने के लिए / टी / शांत मोड में चलाने के लिए / q सफलताएं) और / सी त्रुटियों को दिखाने के लिए। मैंने प्रक्रिया को दोहराया, फ़ोल्डरों का नाम बदल दिया जब तक कि सभी फाइल अनुमतियों को सफलतापूर्वक अपडेट नहीं किया गया।

उम्मीद है कि यह किसी ऐसे व्यक्ति की मदद करता है जो पुराने कंटेनर से डेटा तक पहुंच प्राप्त करने का प्रयास करते समय "कंटेनर एक्सेस में ऑब्जेक्ट्स को गिनने में असफल रहा" त्रुटियों में आया है।


1
2018-01-11 10:36





/ रीसेट टिप के लिए धन्यवाद @ this.lau_, यह वही है जो मुझे अपनी स्क्रिप्ट को सीएससी के स्वामित्व लेने और इसके बैकअप लेने के लिए पूरा करने की आवश्यकता है। सी: \ विंडोज \ सीएससी के स्वामित्व लेने के बाद अनुमतियों को विरासत के संबंध में बहुत असंगत होना पड़ता है - / रीसेट स्विच ने इसे सीधे मेरे लिए तय किया है।

Function Copy-CSCData {
    $Datetime = Get-Date -Format yyyyMMdd.hhmmss
    $LogPath = 'PATH TO LOG'
    $CSCSource = 'C:\Windows\CSC\v2.0.6\namespace'
    $Dest = 'DESTINATION PATH'
    $icaclsource = "\\?\" + $CSCSource

    $CSCLogfile = "$LogPath\" + "$Datetime" + "_CSCRobocopy.log"

    icacls.exe $icaclsource /reset /T
    icacls.exe $icaclsource /grant :r "Everyone:(OI)(CI)F"

    Robocopy $CSCSource $Dest /Copy:DATSO /E /XO /Z /LOG+:$CSCLogfile /V /FP /NP /R:2 /W:2 /XF "~$*","*.tmp"
}

@ थिसल विलियम्स - यदि आप ऊपर से $ icaclsource चर की जांच करते हैं तो नोटिस करें कि मैं स्रोत पथ के सामने "\? \" जोड़ता हूं। इसे आगे जोड़कर, यह लंबे फ़ाइल नाम स्वीकार करेगा। यह भी एक समस्या है जो मैंने किया था लेकिन यह तय है! चीयर्स।

हंसी मजाक करना


0
2018-06-15 23:16



सुपर उपयोगकर्ता में आपका स्वागत है! बस आपको यह बताना है कि "पिंगिंग" उपयोगकर्ता केवल पोस्ट में टिप्पणियों में काम करते हैं, नहीं में वास्तविक पदों। दुर्भाग्य से आप अपने स्वयं के अलावा, या अपने प्रश्नों के उत्तर पर, अन्य तक पोस्ट पर टिप्पणी नहीं कर सकते हैं 50+ प्रतिष्ठा। देख टिप्पणी कैसे करती है @ काम करता है?। ध्यान दें कि आप किसी टिप्पणी में किसी को भी पिंग नहीं कर सकते हैं। केवल पोस्ट के लेखक और किसी अन्य उपयोगकर्ता ने पहले ही टिप्पणी की है। - robinCTS