आप फाइल सिस्टम के संबंध में विंडोज 7 को पूरी तरह से केस-संवेदी कैसे बनाते हैं?


37

मैं विंडोज 7 को केस-सेंसिटिव बनाना चाहता हूं जब वह हार्ड ड्राइव (सी ड्राइव, या किसी अन्य एनटीएफएस ड्राइव) पर कुछ भी पढ़ता / लिखता है।

मुझे Google के माध्यम से एक वीडियो मिला जो रजिस्ट्री कुंजी को बदलने के लिए कहता है

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DontPrettyPath

1 ( स्रोत ) के मान के लिए ।

मुझे एक विंडोज सपोर्ट आइटम भी मिला जो रजिस्ट्री कुंजी को संशोधित करने के बारे में कुछ कहता है

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive

जो मुझे 0 का मान लगाने के लिए प्रेरित करता है, वह NTFS फाइलसिस्टम ( स्रोत ) के साथ विंडोज के मामले को संवेदनशील बना देगा ।

मुझे लगता है कि दूसरा समाधान उत्तर है, लेकिन मुझे यकीन नहीं है और मैं यह सुनिश्चित करने के बिना कोशिश नहीं करना चाहता।

क्या किसी को यह सुनिश्चित करने के लिए पता है कि विंडोज ड्राइव को केस-सेंसिटिव बनाने का सही तरीका क्या है, जब वह C ड्राइव (और किसी भी NTFS ड्राइव) को पढ़ता / लिखता है?

जवाबों:


25

आप सुझाए गए अन्य लेखकों के रूप में HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitiveरजिस्ट्री मान सेट कर सकते हैं 0add.regनिम्न सामग्री के साथ एक फ़ाइल बनाएं और उसे चलाएं।

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"obcaseinsensitive"=dword:00000000

फिर केस-संवेदी फ़ाइलनाम के साथ काम करने के लिए Cygwin का उपयोग करें ।

ऐसा करने के लिए, आपको posix=1अपने विकल्प में NTFS फाइलसिस्टम को माउंट करने की आवश्यकता है /etc/fstab, जैसा कि यह आलेख बताता है। यहाँ मेरे से एक स्निपेट है fstab:

none                    /cygdrive       cygdrive        binary,posix=1,user             0 0
C:                      /cygdrive/c     ntfs            binary,posix=1,user,auto        0 0
C:/Users                /home           ntfs            binary,posix=1,user,auto        0 0

एक बार ऊपर से किया जाता है, तो आप का उपयोग कर केस-संवेदी फ़ाइल नाम से निपटने के लिए सक्षम हो जाएगा bash, mc, gitआदि


6
प्रभावी होने के लिए आपको इसे पुनरारंभ करना होगा।
विलियम

2
@William: मेरा मानना ​​है कि आपको केवल सभी Cygwin प्रक्रियाओं और सेवाओं (जैसे Apache , sshd , आदि) को समाप्त करने की आवश्यकता है । यह पर्याप्त होना चाहिए, जैसा कि cygwin1.dllरैम से अनलोड किया जाएगा।
बास

3
मैं HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive support.microsoft.com/en-us/kb/929110 के
विलियम

16

वास्तव में एक ही नाम के साथ 2 फ़ाइलों को बनाने के लिए, लेकिन एक ही निर्देशिका में अलग-अलग मामले में, आपको यूनिक्स सर्विसेज 3.5 स्थापित करने की आवश्यकता है लेकिन यह केवल 32 बिट विंडोज पर काम करता है। फिर आपको फ़ाइलों को बनाने के लिए "सी शेल" चलाने की आवश्यकता है। आप एक्सप्लोरर के माध्यम से फाइल नहीं बना सकते। एक बार बनाया, एक्सप्लोरर फ़ाइलों के साथ अच्छा नहीं खेलता है। यदि आप दूसरे का नाम बदलने के लिए जाते हैं, तो कर्सर पहले एक पर कूदता है। साथ ही, अधिकांश एप्लिकेशन केवल एक फाइल को खोल सकते हैं, क्योंकि वे केस-असंवेदनशील फाइल सिस्टम की अपेक्षा करते हैं। यदि आप 64 बिट पर हैं तो Cygwin इंस्टॉल करें और इसे केस सेंसिटिव में बदलें।

मैं विकास के दौरान डिबगिंग उद्देश्यों के लिए लिनक्स केस-सेंसिटिव फाइल-सिस्टम का अनुकरण करने की कोशिश कर रहा था। ऐसा लगता है कि विकास के लिए उबंटू के एक उदाहरण के साथ VMWare का उपयोग करना बेहतर दृष्टिकोण है।


"विकास के लिए उबंटू के एक उदाहरण के साथ VMWare का उपयोग करें" => गेम के मामले में नहीं
Петър Петров

16

ये सभी सेटिंग्स जो आप वेब पर पा सकते हैं, एनएफएस के लिए एनटीएफएस के लिए हैं (अंतर पर ध्यान दें)!

एनएफएस (नेटवर्क फाइल सिस्टम) एक नेटवर्क प्रोटोकॉल है।

इस प्रकार रजिस्ट्री कुंजी को बदलना आपको जो भी चाहिए वह HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive नहीं बदल सकता है।

NTFS केस-संवेदी है, लेकिन Windows API नहीं है , यह केवल फ़ाइल नाम के मामले को याद करता है। यह मतलब है कि आपकी फ़ाइल के बावजूद के रूप में प्रदर्शित किया जाता है AbC.TXTयह अभी भी द्वारा पहुँचा जा सकता है abc.txtऔर aBc.TxT। यह विंडोज की एक सीमा है, NTFS नहीं।

अन्य HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DontPrettyPathमूल रूप से डॉस (जो सभी कैप हैं) द्वारा उपयोग की जाने वाली विरासत 8.3 फाइलनामों के सामान्यीकरण को बंद कर देती है। जब इसे चालू किया जाता है (डिफ़ॉल्ट) के ABC.TXTरूप में प्रदर्शित किया जाएगा Abc.txt, लेकिन अभी भी अन्य सभी विविधताओं द्वारा सुलभ हो सकता है।

अधिक सटीक होने के लिए:

दरअसल यह उस सॉफ्टवेयर पर निर्भर करता है जो एफएस को एक्सेस करता है।

यदि यह Win32 API (जो कि 99.9% सॉफ्टवेयर करता है) का उपयोग करता है तो यह आपके द्वारा जो भी किया जाता है वह केस-असंवेदनशील होगा। विंडोज में सभी अंतर्निहित सॉफ्टवेयर (जैसे एक्सप्लोरर, कमांड प्रॉम्प्ट, इंटरनेट एक्सप्लोरर और आदि) और सभी उपभोक्ता सॉफ्टवेयर बाहर Win32 का उपयोग करते हैं और हमेशा केस-असंवेदनशील होते हैं।

NFS सेवा, जावा और कुछ अन्य लोग POSIX हैं और वे 'obcaseinsensitive' रजिस्ट्री सेटिंग का पालन करेंगे। हालाँकि विकल्प को बंद करने से वास्तव में आपको बड़ी समस्याएं हो सकती हैं, क्योंकि यह सॉफ़्टवेयर ऐसी फ़ाइलें बना सकता है जो विंडोज से और अन्य Win32 सॉफ़्टवेयर से प्रशंसनीय नहीं हैं।


3
दरअसल, अतिरिक्त संसाधन से पहले FS स्तर पर यह केस संवेदनशील होता है, हालाँकि, NTFS सभी फ़ाइल नामों को सभी अपरकेस में अनुवाद करता है और जब लोअरकेस वर्णों में से एक में प्रवेश किया जाता है तो इसे अपरकेस में ट्रांसलेट करता है, फिर उक्त फाइल की तलाश करता है। ( support .microsoft.com/ देखें) केबी / 103657 )
जेफ एफ

तुम सही हो। मैंने इसे सरलता से समझाने की कोशिश की।
वेनिमस

तो कैसे जावा का एक Win32 आधारित संस्करण "SHORT.class" बनाम "Short.class" खोजने में सफल होता है अगर वे एक ही निर्देशिका में हैं? मुझे विश्वास नहीं होता कि ऐसा करने के लिए कोई कॉल नहीं है।
इरा बैक्सटर

मुझे लगता है क्योंकि जावा POSIX है
venimus

2
मुझे पूरा यकीन है कि मानक जावा रनटाइम (यानी, ओरेकल से) विंडोज पर केस-असंवेदनशील नहीं है । आप डालने की कोशिश की, तो SHORT.classऔर Short.classएक ही निर्देशिका में, यह काम नहीं करेगा। (बेशक अगर वे एक .jar फ़ाइल के अंदर हैं तो कोई समस्या नहीं है।)
हैरी जॉनसन

4

मुझे लगता है कि आप यही देख रहे हैं:

http://www.chilkatsoft.com/p/p_454.asp

यह पृष्ठ HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitiveकेस-संवेदी बनाने के लिए 0 पर सेट करने की अनुशंसा करता है। मुझे लगता है कि आपको यह पहले से ही मिल गया था, और यह इसे करने के लिए मानक तरीके की तरह दिखता है (यहां तक ​​कि आपके द्वारा पाया गया Microsoft KB यह सुझाव देता है)।

ऐसा लगता है कि आपको कर्नेल सेटिंग्स को बदलना होगा। हालांकि अपडेट से सावधान रहें।

संपादित करें: हालांकि, कुछ कार्यक्रम असंवेदनशीलता पर निर्भर हो सकते हैं।

संपादित करें: आप शायद एक यूडीएफ विभाजन का उपयोग कर सकते हैं। यह फाइलसिस्टम केस-संवेदी है और मुझे लगता है कि यह विंडोज और लिनक्स दोनों पर काम करता है।

यह और यह देखें ।


क्या आप कृपया जिस पृष्ठ से लिंक करते हैं, उससे अधिक जानकारी पोस्ट कर सकते हैं। पूरी बात को कॉपी न करें लेकिन आप संबंधित पैराग्राफ को कॉपी कर सकते हैं और बाकी को सारांशित कर सकते हैं।
क्रिस 23

खैर, पूरा पृष्ठ केवल एक पैराग्राफ है। मैं हालांकि एक त्वरित संपादन करूँगा।
बीटगैमिट

धन्यवाद tjameson उन कार्यक्रमों के बारे में जो केस असंवेदनशीलता पर निर्भर हो सकते हैं, यह वास्तव में एक बड़ी समस्या है। एक कार्यक्रम "विन्डोज़" की तलाश कर सकता है और इसे नहीं ढूंढ सकता क्योंकि यह वास्तव में "विंडोज" है, है ना? गोली मारो, मैं एक नुकसान की कोशिश कर रहा हूं कि लिनक्स से विंडोज तक चीजों को कैसे कॉपी किया जाए, और मैंने खुद को ऐसी स्थिति में पाया है जहां एक ही स्थान पर अलग-अलग कैप के साथ एक ही वर्तनी के फ़ोल्डर मौजूद हैं।
trusktr

ठीक है, केवल एक चीज जो मैं सोच सकता हूं वह है मैन्युअल रूप से संघर्ष। यदि आप फ़ाइलों को कॉपी करते हैं, तो विंडोज़ को आपसे पूछना चाहिए कि क्या आप मर्ज करना चाहते हैं या कॉपी या कुछ और बनाना चाहते हैं। मुझे याद नहीं आ रहा है (मैं खुद एक linux man हूं)।
बीटगैमिट

इस लेख के अनुसार यह केवल गैर-Win32 सबसिस्टम के लिए काम करता है, इसलिए NTFS पर लागू नहीं होता है।
हरिके।

4

Microsoft का NTFS और बदलते केस सेंसिटिविटी के बारे में क्या कहना है।

ऐसा लगता है कि आपको नेटवर्क पर केस संवेदनशील लुकअप की अनुमति देने के लिए कर्नेल को बदलना नहीं है।

http://technet.microsoft.com/en-us/library/cc783185(WS.10).aspx

फ़ाइल और फ़ोल्डर नामों के लिए केस संवेदनशीलता को कॉन्फ़िगर करना

इस पर लागू होता है: Windows Server 2003 R2

Windows इंटरफ़ेस का उपयोग करके फ़ाइल और फ़ोल्डर नामों के लिए केस संवेदनशीलता को कॉन्फ़िगर करने के लिए Microsoft फ़ाइल को नेटवर्क फ़ाइल सिस्टम के लिए खोलें: प्रारंभ पर क्लिक करें, प्रोग्राम को इंगित करें, प्रशासनिक उपकरण को इंगित करें, और फिर नेटवर्क फ़ाइल सिस्टम के लिए Microsoft सेवाएँ पर क्लिक करें।

यदि आवश्यक हो, तो उस कंप्यूटर से कनेक्ट करें जिसे आप प्रबंधित करना चाहते हैं।

NFS के लिए राइट-क्लिक करें सर्वर, और फिर गुण क्लिक करें।

फ़ाइल नाम हैंडलिंग टैब पर क्लिक करें।

निम्न में से एक कार्य करें:

केस-संवेदी फ़ाइल और निर्देशिका नाम लुकअप को सक्षम करने के लिए, केस संवेदी लुकअप सक्षम करें चेक बॉक्स का चयन करें।

केस-संवेदी फ़ाइल और डायरेक्टरी नाम लुक्स को अक्षम करने के लिए, केस सेंसिटिव लुकअप चेक बॉक्स सक्षम करें।

अप्लाई पर क्लिक करें।

महत्वपूर्ण जब तक NFS के लिए सर्वर को पुनरारंभ नहीं किया जाता है, तब तक ये परिवर्तन प्रभावी नहीं होंगे। एनएफएस के लिए सर्वर को कैसे रोकें और शुरू करें, इसकी जानकारी के लिए, एनएफएस के लिए सर्वर को शुरू करना और रोकना देखें। आपको केस-संवेदी फ़ाइल नामों का समर्थन करने के लिए NFS के लिए सर्वर के लिए Windows कर्नेल केस-इन्सेंसिविटी को अक्षम करने की भी आवश्यकता है। आप निम्न रजिस्ट्री कुंजी को 0: HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ kernel DWORD "obcaseinsensitive" को साफ़ करके Windows कर्नेल केस-असंवेदनशीलता को अक्षम कर सकते हैं

कमांड लाइन का उपयोग करके फ़ाइल और फ़ोल्डर नामों के लिए केस संवेदनशीलता को कॉन्फ़िगर करने के लिए कमांड प्रॉम्प्ट खोलें।

केस संवेदनशीलता को सक्षम करने के लिए, निम्न टाइप करें:

nfsadmin सर्वर [ComputerName] configensenslookups = हाँ को कॉन्फ़िगर करता है

केस सेंसिटिविटी को डिसेबल करने के लिए और कमांड प्रॉम्प्ट पर NFS के लिए सर्वर द्वारा लौटाए गए फ़ाइल नामों के मामले को निर्दिष्ट करें, निम्न टाइप करें:

nfsadmin सर्वर [ComputerName] configensenslooklookups = नहीं [ntfscase = {ऊपरी | कम | रक्षित}]

तर्क> कंप्यूटर का नाम = उस कंप्यूटर का नाम जिसे आप कॉन्फ़िगर करना चाहते हैं।

महत्वपूर्ण जब तक NFS के लिए सर्वर को पुनरारंभ नहीं किया जाता है, तब तक ये परिवर्तन प्रभावी नहीं होंगे। एनएफएस के लिए सर्वर को कैसे रोकें और शुरू करें, इसकी जानकारी के लिए, एनएफएस के लिए सर्वर को शुरू करना और रोकना देखें।

नोट NTFS फ़ाइल सिस्टम के लिए ntfscase विकल्प केस सेंसिटिविटी सेट करता है। डिफ़ॉल्ट केस संवेदनशीलता संरक्षित (संरक्षित मामला) है। कमांड प्रॉम्प्ट पर इस कमांड के लिए पूरा सिंटैक्स देखने के लिए, टाइप करें: nfsadmin server /?


1
मुझे नहीं लगता कि यह एक ही नाम के साथ कई फाइलें रखने की अनुमति देता है, जो वह करना चाहता है।
बीटगैमिट

1
फिर उसे रजिस्ट्री हैक करना होगा।
Moab

इस पर लागू होता है: विंडोज सर्वर 2008 R2
बेह्रोज़

3

Microsoft कहता है ;

NTFS में, नाम केस को संरक्षित करते हैं, लेकिन केस संवेदनशील नहीं होते हैं।
NTFS केस के आधार पर फ़ाइल नाम का कोई भेद नहीं करता है।

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

किसी भी मामले में, मुझे पूरा यकीन है कि यदि आप NTFS को केस-संवेदी बनाने में कामयाब रहे, तो विंडोज क्रैश हो जाएगा और री-इंस्टॉलेशन एकमात्र समाधान होगा।


आप सही भी हैं कि यदि आप ऐसा करते हैं तो यह एक सुरक्षा मुद्दा प्रस्तुत करता है। "उदाहरण के लिए, एक ट्रोजन हॉर्स-टाइप दुर्भावनापूर्ण प्रोग्राम से संक्रमित edit.exe का एक संस्करण, और EDIT.EXE नाम, को एडिट.exe के समान निर्देशिका में संग्रहीत किया जा सकता है। यदि कोई उपयोगकर्ता विंडोज कमांड प्रॉम्प्ट पर एडिट टाइप करने के लिए था। , ट्रोजन हॉर्स वर्जन (EDIT.EXE) को मानक संस्करण के बजाय निष्पादित किया जा सकता है ".. Technet.microsoft.com/en-us/library/cc732389.aspx
Moab

जब तक आप प्रमुख फ़ाइलों / फ़ोल्डरों का नाम नहीं बदलेंगे, यह शायद विंडोज को क्रैश नहीं करेगा। मुझे पूरा यकीन है कि विंडोज सही मामले का उपयोग करना सुनिश्चित करता है, वास्तव में, वे भी इसकी सलाह देते हैं।
बीटगैमिट

हम्म, यह दिलचस्प tjameson है। क्या आप उस अनुशंसा का लिंक प्रदान कर सकते हैं?
trusktr

11
यदि मैलवेयर आपकी डिस्क पर लिखने की सुविधा प्राप्त करता है, तो आपको बड़ी समस्याएं हैं कि आपका फाइल सिस्टम संवेदनशील है या नहीं। #redherring
Leopd

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