रिबूट के पार SUBST मैपिंग को लगातार कैसे बनाएं?


177

क्या विंडोज (एक्सपी या बाद में) में एक सुसंगत ड्राइव मैपिंग बनाने का एक तरीका है, जैसे कि SUBST बनाता है? मुझे एक 3rd पार्टी टूल सोबस्ट मिला । वहाँ 3 पार्टी उपकरण के बिना यह करने के लिए एक रास्ता है?


यह संभव है, क्योंकि psubstसिर्फ एक .bat फ़ाइल है जो रजिस्ट्री के साथ टकराती है। विवरण के लिए नीचे @ davr का उत्तर देखें।
स्कॉट स्टैफ़ोर्ड

स्वीकार किए गए उत्तर में विकिपीडिया लेख से चेतावनी: " विंडोज विस्टा के साथ शुरू करना, हटाए गए फ़ाइलों को तुरंत स्थायी रूप से हटा दिया जाता है, और" रीसायकल बिन "में स्थानांतरित नहीं किया जाता है। विंडोज विस्टा से पहले (विंडोज एक्सपी में, उदाहरण के लिए) प्रतिस्थापित फाइलें।" डिस्क "हटाए जाने पर रीसायकल बिन में ले जाया गया। "
जेएमडी

1
@IvoFlipse, यह सामान्य रूप से एक अच्छी धारणा है लेकिन इस मामले में यह गलत है। '3rd पार्टी टूल' एक 150 लाइन बैच फ़ाइल है, जो रजिस्ट्री और सफाई इनपुट को संशोधित करने के लिए एक अच्छा क्ली प्रदान करता है, जो subst's picky trailing slash rules' का पालन करता है, लेकिन यह सिर्फ एक सुंदर आवरण है । आप इसे एक कार्यक्रम के बिना कर सकते हैं, और आरईएडीएमई psubstबताते हैं कि कैसे। या, नीचे davr का जवाब देखें जहां वह psubst README को उद्धृत करता है।
अलेक्जेंडरबर्ड

मैंने एक उत्तर जोड़ा है जो रीसायकल बिन समस्या को ठीक करता है
टोनी पुलोकस

जवाबों:


154

खैर विकिपीडिया का उल्लेख है :

C:\>SUBST /?
Associates a path with a drive letter.

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

  drive1:        Specifies a virtual drive to which you want to assign a path.
  [drive2:]path  Specifies a physical drive and path you want to assign to
                 a virtual drive.
  /D             Deletes a substituted (virtual) drive.

Type SUBST with no parameters to display a list of current virtual drives.

तो आप ड्राइव अक्षरों का उपयोग करके पथों को जोड़ सकते हैं substलगातार subst आदेश (psubst) सॉफ्टवेयर रफ़ू काम हो रहा है, और वे स्टार्टअप से इसे चलाने के लिए एक समाधान प्रदान:

https://code.google.com/p/psubst/#Inconstancy

चंचलता

हालाँकि सिस्टम को पुनरारंभ करने से वर्चुअल डिस्क नष्ट हो जाती है। क्या करें? स्टार्टअप के बाद एक डिस्क बनाई जा सकती है। लेकिन क्या करना है, जब स्टार्टअप के शुरुआती चरणों में डिस्क की आवश्यकता होती है? उदाहरण के लिए, सेवाओं को चलाने के लिए? सिस्टम रजिस्ट्री से वर्चुअल डिस्क शुरू करने के लिए सिस्टम फीचर है:

REGEDIT4 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices] 
"Z:"="\\??\\C:\\Documents and Settings\\All Users\\Shared Documents"

यह एक्सटेंशन के साथ एक टेक्स्ट फ़ाइल बनाने .REGऔर इसे चलाने के लिए पर्याप्त है। जब सिस्टम की अगली शुरुआत होगी, तो लॉगऑन में वर्चुअल डिस्क मौजूद होगी। इसे डिस्क और पथ के नाम को परिभाषित करने की आवश्यकता है। ध्यान दें कि पथ में प्रत्येक बैकस्लैश दोगुना है।

विंडोज में, आप निम्नानुसार रजिस्ट्री संपादक चला सकते हैं:

  1. प्रारंभ »भागो ... (या हिट Win+ R)
  2. प्रकार: regedit
  3. विंडोज विस्टा और इसके बाद के संस्करण में, यूएसी पॉप जाएगा, "हां" पर क्लिक करें ।

6
यह जानकर अच्छा लगा, हालांकि मैं substअब और उपयोग नहीं करता। लेकिन उस समय में जब मैंने किया था कि मेरे स्टार्टअप फ़ोल्डर में बस एक बैच फ़ाइल थी जो उन चीजों को करती थी।
जॉय

2
यह कमाल का है। (यह एक रिबूट की आवश्यकता है, FYI करें।) हमारे स्रोत ट्री को एक विशिष्ट ड्राइव अक्षर से शुरू करना है ताकि हमारे पीडीबी सभी हमेशा विभिन्न कंप्यूटरों पर संरेखित हों। यह रजिस्ट्री सेटिंग एक ऐसी झुंझलाहट को हल करती है जो मुझे सालों से एक विकल्प डिस्क के साथ होती है जो कि रनस के साथ नहीं होती है जो एक बड़ी झुंझलाहट है यदि आपको (शायद ही कभी) एक व्यवस्थापक खाते के तहत विज़ुअल स्टूडियो चलाने की आवश्यकता होती है।
ब्रायन राइटर

3
जॉय: यह समाधान विंडोज 7 के तहत काम नहीं करता है। प्रशासनिक विशेषाधिकारों के साथ एक एप्लिकेशन चलाते समय, प्रतिस्थापित ड्राइव एप्लिकेशन पर दिखाई नहीं देता है।
डेव जार्विस

31
समाधान के लिए धन्यवाद। FYI करें, यदि आप परिवर्तनीय को RegEdit में अंतःक्रियात्मक रूप से लिखते हैं, तो बैकस्लैश को दोगुना न करें। यही है, "Z:" (बिना उद्धरण के) नाम से एक नया स्ट्रिंग वैरिएबल बनाएं और एकल बैकस्लैश को छोड़कर ऊपर दिखाए गए स्ट्रिंग को मान सेट करें।
क्रिस्पी

3
@ डेविल्स एडवोकेट, \??NT ऑब्जेक्ट मैनेजर नेमस्पेस में एक आभासी निर्देशिका है। पहले यह लॉगऑन सत्र डीओएस 'उपकरणों' की जांच करता है (वास्तव में डीओएस डिवाइस एनटी उपकरणों के प्रतीकात्मक लिंक हैं, आमतौर पर स्थित हैं \Device) और फिर \Global??डॉस डिवाइस। WinObj में आपको लॉगऑन सत्र डिवाइस मिलेंगे \Sessions\0\DosDevices\[logon ID]। ध्यान दें कि लॉगऑन सत्र डिवाइस सभी को प्रत्येक LSA लॉगऑन ID के लिए सत्र 0 (सेवाओं) में ट्रैक किया जाता है। वे डेस्कटॉप सत्रों के साथ सहसंबद्ध नहीं हैं। यही कारण है कि अगर आप ड्राइव को सीमित एडमिन के रूप में मैप करते हैं तो यह ऊंचा होने पर मौजूद नहीं है; यह एक अलग लॉगऑन है।
२:३५

76

इसे स्थापित करने पर HKEY_CURRENT_USERप्रत्येक उपयोगकर्ता के लिए अलग-अलग सेटअप होने का लाभ होता है। जब तक सिस्टम सेवा डिवाइस पर निर्भर नहीं होती है तब तक मैं यूजर स्पेस सेटअप को छड़ी करना पसंद करता हूं।

REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"F Drive"="subst F: D:\\mount\\db"
"G Drive"="subst G: D:\\mount\\log"

स्रोत: http://networkadminkb.com/KB/a446/how-to-use-drive-letters-mount-points-the-same-disk-drive.aspx


7
+1 एक रेग फाइल में कई मैपिंग करने का तरीका दिखाने के लिए। :-)
मेगाफ्लॉप

4
+1 इस बात की आसानी के लिए और यह भी समझाने के लिए कि HKEY_CURRENT_USER क्यों। :)
सीएडी


3
कमांड लाइन से भी ऐसा कर सकते हैं (XP / Windows 2000 सर्वर के बाद से): reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "F Drive" /d "subst F: D:\x\db" NB \ केवल को यहां भागने की जरूरत है अगर यह विकल्प कमांड का अंतिम चरित्र है, उदाहरण के लिए जब लक्ष्य रूट निर्देशिका है "subst F: D:\\":; एक एकल \ "के रूप में यह भागने" के रूप में व्याख्या की जाएगी।
stevek_mcc

44

आपके द्वारा लिंक किए गए पृष्ठ में एक उत्तर है। आपको तीसरे पक्ष के उपकरण की आवश्यकता नहीं है, आप इसे सरल रजिस्ट्री प्रविष्टि के साथ कर सकते हैं, जैसा कि उस पृष्ठ पर विस्तृत है।

इन सामग्रियों के साथ 'mapdrive.reg' नामक एक पाठ फ़ाइल बनाएँ:

REGEDIT4 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices] 
"Z:"="\\??\\C:\\Documents and Settings\\All Users\\Shared Documents" 

तब बस सेट अप करने के लिए उस पर डबल-क्लिक करने में सक्षम होना चाहिए, कोई 3 पार्टी टूल की आवश्यकता नहीं है।


8
बैच फ़ाइल बनाम reg कुंजी के लिए लाभ यह है कि यह किसी अन्य स्टार्टअप कमांड को चलाने से पहले विकल्प ड्राइव को सेट करता है, अगर उनमें से कुछ को फ़ंक्शन करने के लिए विकल्प ड्राइव की आवश्यकता है
davr

6
@ इवो: मैं इसे अज्ञात का एक स्वस्थ डर
कहूंगा

9
यदि regedit में ऐसा कर रहे हैं, तो सुनिश्चित करें कि सिंगल बैकस्लैश का उपयोग करें। जैसे \
_

27

मुझे यह इसलिए मिला क्योंकि मैं अपने स्टार्टअप विकल्प स्क्रिप्ट पर सुधार की तलाश कर रहा था - उन्होंने ठीक काम किया, लेकिन कभी-कभी फ़ोल्डर स्टार्टअप पर क्रैश होने के बाद निष्पादित होते हैं क्योंकि मेरी ड्राइव अभी तक मैप नहीं की गई थी।

सबसे पहले, मैंने रजिस्ट्री को संपादित किया, लेकिन यह काम करने में असमर्थ था। हालाँकि, मैं इस विकल्प के पार आया था, हालांकि यह विकल्प का उपयोग नहीं करता है, मेरे लिए इस सवाल का जवाब देता है, "रिबूट के दौरान लगातार मैपिंग कैसे करें?" विकल्प का उपयोग न करें ... (उपयुक्त 'ComputerName' और 'pathName' डालें):

नेट यू का उपयोग करें: "\\ computerName \ c $ \ pathName" / लगातार: हाँ

मैंने स्थानीय ड्राइवों की मैपिंग की चर्चा में हांक अर्नोल्ड के सुझाव से इसे अनुकूलित किया । मैंने अनुमान लगाया था कि \\ myComputerName \ c काम कर सकता है, लेकिन मैं $ लागू करने के लिए नहीं जानता था।

इससे पहले कि आप "शुद्ध उपयोग" कमांड का प्रयास करें, नेविगेट करने का प्रयास करें

\\ कंप्यूटरनाम \ ग $
यह सुनिश्चित करने के लिए कि आपके पास 'computerName' सही है।


2
उत्कृष्ट समाधान, दो समस्याओं के साथ यद्यपि: 1) यह स्थानीय फ़ाइल-सिस्टम, 2) के लिए दृश्यमान नहीं है ... अनुमतियाँ
ashes999

6
यदि आप इसका उपयोग करते हैं तो \\localhost\c$\path\to\thingयह मशीनों के पार पोर्टेबल है (या कंप्यूटर का नाम बदलने वाले अपग्रेड)। Win7 + पर मैप की गई ड्राइव का उपयोग करने का एक दोष यह है कि विभिन्न सुरक्षा नीतियां स्थानीय की तुलना में नेटवर्क ड्राइव पर लागू होती हैं, और कुछ प्रोग्राम केवल मैप किए गए ड्राइव को चलाने से मना कर देंगे।
मैट विल्की

1
यह फ़ाइल सिस्टम को दिखाई देता है, और यह स्थानीय फ़ाइल सिस्टम को दिखाई देता है - इसे एक नेटवर्क ड्राइव के रूप में चिह्नित किया जाता है, जैसे कुछ ड्राइव को हटाने योग्य ड्राइव के रूप में चिह्नित किया जाता है। यह ऐसी ड्राइव को स्थानीय फ़ाइल सिस्टम का हिस्सा नहीं, या दिखाई नहीं देता है - यह उन्हें स्थानीय फ़ाइल सिस्टम में नेटवर्क / हटाने योग्य ड्राइव बनाता है।
user165568

1
परीक्षण में मैंने (स्थानीय रूप से) माउंटेड नेटवर्क ड्राइव का उपयोग करते हुए एक प्रदर्शन समस्या (अब से कुछ साल पहले) को सीधे फ़ाइल सिस्टम (या विकल्प आदि) का उपयोग करने की तुलना में धीमी है। यह छोटी फ़ाइलों या सामयिक उपयोग के लिए एक जबरदस्त अंतर नहीं है - वास्तविक नेटवर्क पर दूसरे 'सर्वर' पर जाने की तरह नहीं - लेकिन यह महत्वपूर्ण है।
हर्बएम

8

अपने स्टार्टअप फ़ोल्डर में एक बैच फ़ाइल को ड्रॉप करें जो आपके द्वारा किए जाने वाले सभी SUBSTs करता है।


5

चूंकि मूल PSubst की कुछ सीमाएँ हैं और लगता है कि लेखक द्वारा निष्कर्ष निकाला गया है, इसलिए मुझे अपनी आवश्यकताओं के लिए एक नया संस्करण कोड करना पड़ा, कुछ समस्याओं को ठीक करना और कार्यक्षमता और लचीलापन जोड़ना।

PSubst संस्करण 3 बैच फ़ाइल के लिए यहां देखें

https://github.com/cyberponk/psubst

विंडोज 7, विंडोज 8, विंडोज 10, विंडोज सर्वर 2012 के साथ संगत

नोट: इस काम का मूल लेखक को ध्वस्त करने का कोई इरादा नहीं है और केवल वास्तविक आवश्यकता के कारण ही अस्तित्व में आया है, निम्नानुसार है:

  • एक newtork व्यवस्थापक के रूप में मुझे SUBST networking नेटवर्क ड्राइव और विभिन्न नेटवर्क उपयोगकर्ताओं के साथ फ़िडलिंग की निरंतर आवश्यकता है।

  • जैसा कि हर कोई एक विंडोज विशेषज्ञ नहीं है, मुझे लगा कि वेब के माध्यम से पढ़े जाने वाले कामेंट्स के आधार पर, मैं स्वचालित हैंडलिंग को त्रुटि से निपटने में मदद करूंगा।

  • जैसा कि कुछ लोगों ने तर्कों के आदेश के साथ संघर्ष किया, मुझे लगा कि स्क्रिप्ट के लिए किसी भी क्रम में तर्कों के साथ काम करना सबसे अच्छा होगा।

मैं हर अतिरिक्त कार्यक्षमता को याद नहीं कर सकता, लेकिन प्रत्येक समावेश को शुद्ध रूप से आवश्यकता के अनुसार किया गया था। मैं कोड साझा कर रहा हूं ताकि दूसरों को मेरे द्वारा परेशानियों का सामना न करना पड़े। इसके द्वारा साझा करने और मदद करने के अलावा कोई इरादा नहीं है।


कृपया, "ए" कह "बी" कहें। आपको लगता है कि मूल स्तोत्र में बहुत समस्या है - यदि वे हैं तो उन पर ध्यान दें। दूसरी ओर, सोबस्ट का त्याग नहीं किया गया है। यह सिर्फ इसके विकास की सीमा को प्राप्त करता है। मूल उपकरण बहुत सरल दर्शन का अनुसरण करता है: कुछ करो और अच्छा करो। यह अतिरिक्त कार्यक्षमता के साथ अतिभारित नहीं है जैसे कि UAC के साथ काम करना और कुछ और करने के लिए अतिरिक्त vbs-code बनाना। मूल कोड पर एक बात की जा सकती है - कोड को सरल बनाने और पठनीयता में सुधार करने के लिए कुछ कॉस्मेटिक परिवर्तन।
jsxt

संपादित, समीक्षा करें। UAC और vbs स्वचालित व्यवस्थापन ऊंचाई के लिए है। मैं "विकास की सीमा" टिप्पणी पर असहमत हूं, क्योंकि मैंने जितने भी बदलाव किए, वे PSUBST का उपयोग करके कई समस्याओं का सामना करने के बाद उपयोग को और अधिक सरल और आसान बनाने के लिए थे। मेरा मूल लेखक की आलोचना करने का इरादा नहीं है, इसलिए मैं समस्याओं को सूचीबद्ध नहीं करूंगा, बल्कि इसके बजाय मैंने समाधान तैयार किए। मैंने वास्तव में मूल जीथुब शाखा में अपने संस्करणों को जोड़ने का प्रस्ताव दिया, लेकिन इनकार कर दिया, इसलिए मुझे अपनी शाखा बनानी पड़ी।
सायबरपोंक

आपकी तेज़ और विस्तृत प्रतिक्रिया के लिए धन्यवाद। सबसे अधिक शायद मुझे आपके विकास के करीब दिखने की जरूरत है।
jsxt

मेरी टोपी तुमसे दूर; मैंने अपना समय बैच की स्क्रिप्टिंग खाइयों में बिताया है, और मुझे पता है कि यह कितना दर्दनाक है। वह कोड काफी अच्छा लग रहा है।
सिल्वरबैकनेट

2

मैं davr के उत्तर पर विस्तार कर रहा हूं क्योंकि मैप किए गए ड्राइव से हटाई गई कोई भी फाइलें रीसायकल बिन में जाने के बजाय स्थायी रूप से हटा दी जाती हैं। यह REG फ़ाइल इस TechNet आलेख से संकलित जानकारी पर आधारित है , जिसमें रीसायकल बिन को सक्षम करने के तरीके पर चर्चा की गई है। उदाहरण वायरल क्यू ड्राइव को "वनड्राइव - टेस्ट" फ़ोल्डर में मैप करता है, और क्यू ड्राइव पर रीसायकल बिन को सक्षम करता है। अपनी स्थिति के अनुरूप पथ और नाम बदलें।

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"Q:"="\\??\\C:\\Users\\Tony\\OneDrive - Test"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"RelativePath"="Q:\\"
"Category"=dword:00000004
"Name"="Q_Mapped_OneDrive"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\KnownFolder\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"MaxCapacity"=dword:0000c7eb
"NukeOnDelete"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"RelativePath"="Q:\\"
"Category"=dword:00000004
"Name"="Q_Mapped_OneDrive"

[HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\KnownFolder\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"MaxCapacity"=dword:0000c7eb
"NukeOnDelete"=dword:00000000

यदि आपके पास केवल एक ऐसी मैप्ड ड्राइव है, तो आप GUID {9147E464-33A6-48E2-A3C9-361EFD417DEF} से दूर जा सकते हैं। यदि आपके पास कई मैप किए गए ड्राइव हैं, तो प्रत्येक को आपके पसंदीदा GUID जनरेटर से GUID से मिलान किया जाना चाहिए।


मेरे कुछ अवलोकन: यदि आप केवल मानों को अंडर HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{GUID}रिबूट और रिबूट करते हैं, तो इसके अंतर्गत संबंधित मान HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\KnownFolder\{GUID}विंडोज द्वारा स्वतः उत्पन्न होते हैं। Wow6432Nodeचाबियाँ के तहत मेरे लिए कुछ भी नहीं दिखा , लेकिन रीसायकल बिन ने उनके बिना काम किया। यह विंडोज 7 सिस्टम पर था, इसलिए मुझे यकीन नहीं है कि यह नए संस्करणों पर अलग तरह से व्यवहार करता है।
हेरोहट्टर

1
बस थोड़ा सा डेटा जोड़ने के लिए, मेरे पास 64-बिट विन 10 सिस्टम है, और मैंने परीक्षण किया कि 32-बिट ऐप (फास्टस्टोन इमेज व्यूअर) से हटाते समय क्या हुआ, और मैंने पाया कि रीसायकल बिन ने 32 के लिए काम नहीं किया था Wow6432Node कुंजी के बिना -bit एप्लिकेशन।
टोनी पुलोकस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.