क्या एक मैप्ड नेटवर्क ड्राइव को कमांड लाइन से फिर से कनेक्ट किया जा सकता है?


32

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

वर्तमान में मेरे पास सबसे तेज़ समाधान है:

  1. start.खोजकर्ता खोलने के लिए " " टाइप करें ,
  2. Alt- Dपता बार पर ध्यान केंद्रित करने के लिए,
  3. जिस ड्राइव अक्षर को मैं चाहता हूं टाइप करें और एंटर दबाएं, और ड्राइव कंटेंट दिखाने के लिए इसका इंतजार करें,
  4. फिर अंत में, एक्सप्लोरर को बंद करें और कमांड प्रॉम्प्ट पर वापस जाएं।

मुझे पता है कि यह एक छोटी सी असुविधा है, लेकिन मैं अक्सर धीमी VNC या PCAnywhere कनेक्शन के माध्यम से ऐसा कर रहा हूं जहां GUI के माध्यम से कुछ भी करना भयानक है, इसलिए मैं सोच रहा हूं कि क्या कोई बेहतर समाधान है।


1
क्या होता है जब आप `dir h: \`?
wfaulk

3
टाइपिंग की जगह में "शुरू <दर्ज करें>।" तुम सिर्फ जीत-ई क्या कर सकते हैं और 5 कीस्ट्रोक्स ;-) बचाने
fretje

1
मैं मैप किए गए ड्राइव के बजाय \\ सर्वर \ शेयर पथ का उपयोग करके इसे "हल" कर रहा हूं। अगर आपको जरूरत है तो आप सिर्फ फाइलों को कॉपी कर सकते हैं। (वह मेरी समस्या थी)
पीटरडक

जवाबों:


12

शायद कोशिश करें pushd \\server\share?


2
मुझे यकीन नहीं है कि मुझे यही चाहिए। पुश ऐसा लगता है जैसे यह अस्थायी ड्राइव अक्षर बनाता है; मेरे पास पहले से ही एक ड्राइव लेटर मैप किया गया है, लेकिन शेयर डिस्कनेक्ट हो गया है (इसमें एक्सप्लोरर में लाल X है और "डिस्कनेक्टेड नेटवर्क ड्राइव" लेबल है)। शायद मुझसे गलती हुई है।
स्टीफन जेनिंग्स

हाँ, मैं सोच रहा था कि इसे इस तरह से एक्सेस करने से ड्राइव फिर से कनेक्ट हो सकती है। आप popdड्राइव अक्षर को हटाने के लिए उपयोग कर सकते हैं ।
wufulk

मैं अगली बार यह कोशिश करूंगा कि मैं इसका सामना करूं। मुझे संदेह है कि यह या तो यह कहकर विफल हो जाएगा कि डिवाइस उपयोग में है, या गलत ड्राइव अक्षर को शेयर से कनेक्ट करें।
स्टीफन जेनिंग्स

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

1
मेरे पास अभी तक क्षमता नहीं है, लेकिन इस जवाब ने मेरे लिए कुछ नहीं किया। नीचे कई पोस्ट देखें जो किया। मैंने वहां एक टिप्पणी भी छोड़ दी।
prl77

8

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

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

मेरी बैच फ़ाइल में मेरे पास निम्नलिखित हैं:

REM Connect VPN here...

REM Opens an Explorer window looking at T: forcing a reconnect
Start /min explorer t:\

timeout 3 /nobreak

REM Kill all Explorer windows beginning with "T_drive" in the title
Taskkill /fi "windowtitle eq T_drive*"

REM Finish starting up here...

exit

Taskkill /fi "windowtitle eq"आदेश केस संवेदी है!


धन्यवाद आदमी, यह इस पूरे धागे पर एकमात्र जवाब था जिसने मेरी मदद की। बेशक मैंने इसे बढ़ा दिया है, लेकिन मेरे पास आपके ऊपर उन पदों के लिए अभी तक क्षमता नहीं है।
prl77

Btw, मुझे केस सेंसिटिविटी वाले "टास्ककिल" नहीं मिले, कम से कम नवीनतम पैच के साथ विन 7 x64 पर नहीं।
prl77

नोट: यदि ऊपर दिए गए कार्यक्षेत्र पैरामीटर आपके लिए काम नहीं करते हैं, तो TASKLIST / FI "IMAGENAME eq explorer.exe" / V का उपयोग करके देखें कि विंडो का सही शीर्षक क्या है। TASKKILL के लिए मेरा फ़िल्टर स्ट्रिंग "विंडोटाइल eq c $ *" होने के बाद समाप्त हो गया
ल्यूक

आपकी टिप्पणी के लिए Thx ल्यूक। इसने वास्तव में मेरी मदद की
पावेल

7

इसमें इन कमांड्स के साथ एक बैच फाइल (रिफ्रेशर्स.सीएमडी) बनाएं

( ये केवल एक बैच फ़ाइल के अंदर काम करेंगे )

कंसोल विंडो (कमांड लाइन) में 'डिस्कनेक्ट' और 'अनअवेलेबल' ड्राइवर लेटर्स को रिफ्रेश करने के लिए Win7 और XP पर टेस्ट किया गया।

@echo off
net use |FIND ":" > %temp%\used.txt
FOR /F " tokens=1,2,3 delims= " %%i in (%temp%\used.txt) do (

  if %%i EQU Unavailable  (
    net use %%j %%k
    echo Activated %%j
   ) ELSE (
     if %%i EQU Disconnected (
       pushd .
       cd /d %%j
       dir . %>nul
       if NOT exist %%j\. (
          net use %%j /del /y
          net use %%j %%k
          echo Remapped %%j
          ) else (
             echo Fixed-up %%j
            )
       popd
       ) ELSE (
          echo Checked %%j
          )
     )
 )

यह देखते हुए कि हम ओपी की विशेषज्ञता के स्तर को नहीं जानते हैं, यह आपके उत्तर पर विस्तार करने के लिए एक अच्छा विचार हो सकता है।
कपड़ा

net useWin7 में अनुपलब्ध मैप किए गए ड्राइव के लिए मेरे लिए काम करता है। ty
Mat M

1
मेरे पास अभी तक क्षमता नहीं है, लेकिन इस जवाब ने मेरे लिए कुछ नहीं किया। नीचे दिए गए पोस्ट को देखें क्लॉस मालाडेर ने जो किया। मैंने वहां एक टिप्पणी भी छोड़ दी।
prl77

1
यह काम करता है (win7 x64 के साथ परीक्षण), लेकिन यह जिस भाषा के लिए निर्भर करता है, उसी पर निर्भर net useकरता है Unavailable। लेकिन एक जर्मन Win7 आपको मिल के लिए Nicht verfgb, अगर आप अपनी भाषा का हल संशोधित करने की आवश्यकता
जेब

यह मेरे लिए काम करता है, एक शेयर को छोड़कर, जिसमें नेटवर्क पथ में एक स्थान था ... वैसे भी, मैंने बस एक बैच-फ़ाइल और I में कुछ कठिन-कोडित "शुद्ध उपयोग X: \\ share \ path" लाइनें करना समाप्त कर दिया है अगर मैं कभी भी ड्राइव मैपिंग को बदलता हूं तो इसे अद्यतित रखूंगा। यह मेरे लिए सबसे अच्छा समाधान है क्योंकि मैं वास्तव में ड्राइव को फिर से जोड़ने के लिए एक एक्सप्लोरर विंडो खोलने के लिए पॉप नहीं करना चाहता ...
हारून

6

यह शायद एक बेवकूफी भरा सवाल है, लेकिन यह मानते हुए कि आपका "डिस्कनेक्ट किया गया" ड्राइव एच है:, क्या आपने सीधे ड्राइव में बदलने की कोशिश की है?

यह मेरे लिए XPSP3 के तहत काम करता है:

C:\>net use
New connections will be remembered.


Status       Local     Remote                    Network

-------------------------------------------------------------------------------
Disconnected H:        \\xxxxxx\wfaulk           Microsoft Windows Network
OK                     \\xxxxxxx\business        Microsoft Windows Network
The command completed successfully.


C:\>h:

H:\>net use
New connections will be remembered.


Status       Local     Remote                    Network

-------------------------------------------------------------------------------
OK           H:        \\xxxxxx\wfaulk           Microsoft Windows Network
OK                     \\xxxxxxx\business        Microsoft Windows Network
The command completed successfully.

2
कमांड प्रॉम्प्ट आपको नेटवर्क ड्राइव पर स्विच करने की अनुमति नहीं देता है जो वर्तमान में डिस्कनेक्ट हो गया है। कम से कम उन सैकड़ों कंप्यूटरों पर नहीं जो मैं इस पर उपयोग कर रहा हूं (WinNT, Win2k, WinXP, WinXP एंबेडेड)।
स्टीफन जेनिंग्स

1
अजीब। मैं कसम खाता हूँ कि यह मेरे लिए काम करता है।
wufulk

यह मेरे लिए भी काम करता है!
Snark

मैं मानता हूं कि मैंने यह काम कभी-कभार देखा है, लेकिन ज्यादातर ऐसा नहीं होता है। मुझे नहीं पता कि एक रास्ता या कोई अन्य क्या निर्धारित करता है, संभवतः सहेजे गए क्रेडेंशियल्स हैं या नहीं।
स्टीफन जेनिंग्स

1
ओह, मुझे यकीन है कि यह है। मैं अपने डोमेन क्रेडेंशियल्स का उपयोग करके स्वचालित रूप से प्रमाणित कर रहा हूं।
wufulk

4

मुझे पता है कि आपने "शुद्ध उपयोग" आपके लिए काम नहीं किया है - लेकिन यहां वह है जो आप कोशिश कर सकते हैं।

मौजूदा / लगातार कनेक्शन को हटाने के लिए नेट उपयोग / DELETE विकल्प के साथ एक बैच फ़ाइल चलाएं और फिर आप पास के क्रेडेंशियल का उपयोग करने के लिए / SAVECRED विकल्प के साथ नेट का उपयोग कर सकते हैं जो पहले eh अंतिम succesn logon का उपयोग करते हैं। मुझे यकीन नहीं है कि यह आपकी समस्या को संबोधित करेगा लेकिन इसके लायक है।


यह वह नहीं है जो मुझे चाहिए, लेकिन यह निश्चित रूप से एक उपयोगी बात है। यह मेरे पास एक और समस्या है।
स्टीफन जेनिंग्स

2

मुझे कई कनेक्शनों के साथ एक ही समस्या है, और यह आंतरायिक है। जब मैं कंप्यूटर को रिबूट करता हूं, तो कभी-कभी कनेक्शन "अच्छा" होता है और कभी-कभी नहीं। जब से मैं एक कंपनी LAN पर हूं, मुझे पासवर्ड की समस्या नहीं है, लेकिन फिर भी मेरे पास समस्या का दूसरा पहलू है।

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

start explorer /e,/select,%1

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

यह समस्या हाल ही में बहुत खराब हो गई है, शायद विंडोज एक्सपी सुरक्षा पैच में से एक के कारण।

कोशिश करने की एक और बात सर्वर साइड पर है। विंडोज सर्वर पर, रजिस्ट्री कुंजी को संशोधित करना सर्वर को टाइमआउट पर अपने कनेक्शन को डिस्कनेक्ट करने से रोकने के लिए है। मैं बहुत ज्यादा हमारे सभी सर्वरों पर ऐसा करता हूं। फ़ाइल है:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]
"autodisconnect"=dword:ffffffff

किसी अन्य उपयोगकर्ता के रूप में चलने वाली प्रक्रिया से, start explorerकेवल तभी काम करेगा जब दोनों उपयोगकर्ताओं के पास "अलग प्रक्रिया में फ़ोल्डर विंडो चलाएँ" सेटिंग हो।
ivan_pozdeev

1

मुझे एक समान समस्या थी और मुझे पता चला कि मैं कमांड लाइन (जहां एक्स: मैप्ड लेकिन डिस्कनेक्टेड ड्राइव था) से एक सरल "डीआईआर एक्स:" के साथ एक सामंजस्य को बाध्य कर सकता है। यह एक सर्वर 2003 सिस्टम से XP और Win7 पर मैप्ड ड्राइव के लिए था। कंप्यूटर।

मैंने एक बैच फ़ाइल बनाई, aw_network_drives.bat, इन दो पंक्तियों के साथ:

    dir x:
    dir z:

और बैकअप प्रोग्राम को विफल करने से पहले इसे रात भर चलाने के लिए एक निर्धारित कार्य निर्धारित करें क्योंकि ड्राइव कभी-कभी डिस्कनेक्ट हो रहे थे।


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

0

बस टाइप करो:

NET USE H: \\server\share

(जहां एच: आपके ड्राइव अक्षर का है)

टाइप करें 'नेट /? USE 'यह कमांड आपको देता है सभी विकल्पों को देखने के लिए।


यह काम नहीं करता। ड्राइव अक्षर पहले से ही मैप किया गया है, यह बस डिस्कनेक्ट हो गया है (आमतौर पर दूसरे कंप्यूटर को रिबूट किया गया था)। जब आप इसे चलाते हैं, तो यह शिकायत करता है कि डिवाइस पहले से ही उपयोग में है।
स्टीफन जेनिंग्स

हां, मैंने अभी-अभी इसका परीक्षण किया और "स्थानीय डिवाइस नाम पहले से उपयोग में है।"
स्टीफन जेनिंग्स

1
यह मेरे लिए काम करता है ... लेकिन मैं विंडोज 7 पर हूं, और वास्तव में ड्राइव अपने आप से फिर से जुड़ जाता है ... नेट उपयोग करें एच: सरल (पथ के बिना), कि कनेक्शन को वापस लाना चाहिए। मैं भूल गया कि यह XP में कैसे हुआ करता था।
ज़ोरान

0

यदि आप बैच में इन पासवर्डों को सादे पाठ में रखने का विरोध नहीं करते हैं, तो आप क्रेडेंशियल सहित एक डिलीट और रीमैप को स्क्रिप्ट कर सकते हैं।

net use H: /delete
net use H: \\server\share /user:domain\user password /persistent:yes

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


एक आईटी प्रो, मैं कर रहा हूँ का विरोध किया, खुद के लिए और अपने उपयोगकर्ताओं के लिए दोनों।
ivan_pozdeev

0

टीएल; डीआर सारांश: उपयोग net useऔरif exist

मैं एक रात की बैकअप स्क्रिप्ट बनाते समय संबंधित समस्या में भाग गया। यह जांचना था कि क्या कंप्यूटर चालू किया गया था (पिंग का उपयोग करके), यदि आवश्यक हो तो इसे चालू करने के लिए एक मैजिक पैकेट भेजें ( MC-WOL का उपयोग करके ), Windows को बूट करने के लिए प्रतीक्षा करें, फिर एक SMB शेयर के लिए एक कनेक्शन स्थापित करें और इसके लिए प्रतीक्षा करें उपस्थित होने के लिए।

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

यहाँ कोड का एक हिस्सा है जो आपके लिए उपयोगी हो सकता है:

set TARGET_IP=192.168.1.3
set TARGET_PATH=\\%TARGET_IP%\d$\backups
set ATTEMPTS=0

:LOOP

REM Give up eventually
if %ATTEMPTS% GEQ 200 goto NOJOY

REM Wait for IP connectivity to host, and/or burn up a couple seconds before retry
ping -n 1 -w 2000 %TARGET_IP% | find "TTL" > nul
if errorlevel 1 set /a ATTEMPTS+=1 & goto LOOP

REM See if we're already connected, and try to give it a kick
if exist %TARGET_PATH% goto CONNECTED

REM Try to reconnect
net use %TARGET_PATH% > nul
if errorlevel 1 set /a ATTEMPTS+=1 & goto LOOP

:CONNECTED
echo Connected
exit /b

:NOJOY
echo Couldn't connect

यदि आप चाहें, तो आप उपरोक्त आईपी पते को एक होस्ट नाम (जैसे server1) से बदल सकते हैं।

net useमौजूदा कनेक्शन मौजूद नहीं होने की स्थिति में जरूरत है। मैं कुछ कोने के मामलों में भाग गया, जहां यह अकेले "जागो" साझा करने के लिए अपर्याप्त था (उदाहरण के लिए यदि डिस्कनेक्ट स्थिति में पहले से मौजूद कनेक्शन था)। मैंने पाया if existsनिर्देश विकल्प अन्य उत्तर (जैसे में उल्लेख किया है के रूप में एक समान प्रभाव पड़ता है pushd, dir, Explorer, आदि), लेकिन यह एक हल्का वजन दृष्टिकोण लग रहा था।


0

StanZ के उत्तर ने मेरे लिए काम किया, लेकिन मुझे किसी भी मैप किए गए ड्राइव को ठीक स्थिति के बिना निर्धारित करने में सक्षम होना था, क्योंकि हमारे डोमेन के उपयोगकर्ताओं को अलग-अलग ड्राइव मैपिंग मिलते हैं। मैंने एक अकेले खड़े संस्करण के रूप में चलाने के लिए यहां कोडित किया है, जो net useवास्तविक कोड से पहले और बाद में निष्पादित करता है , ताकि आप परिणाम देख सकें, लेकिन आपको FORवांछित परिणाम प्राप्त करने के लिए केवल एक कथन (तीन पंक्तियों) को अपने कोड में कॉपी करना होगा ।

@ECHO OFF
::  
:: revision of answer from StanZ on superuser.com at the following url  
:: https://superuser.com/questions/52595/can-a-mapped-network-drive-be-reconnected-from-the-command-line/367910#367910  
:: https://superuser.com/a/367910  
:: which resulted in my  
::  
:: DriveStatusOK.bat  
:: iCharlieC  
::  
SETLOCAL ENABLEEXTENSIONS  
::  
:: you need only copy the one FOR statement (three lines)  
::   to use in your own code  
::   to force status of mapped network drives to OK  
::  
:: "tokens=1-2 delims=: " is used in the for statement  
:: to output only the drive letter from the output of...  
:: net use  
:: is piped to the first findstr which outputs only lines with drive letters  
::   then piped to another findstr to eliminate drives with a status of OK  
::   then piped to another findstr to get lines that start with a status  
::     -in other words, those lines that the first character is a letter-  
::     -this due to the fact that in our domain we have a drive  
::      that is mapped to a letter, but never has a status.  
::      I do not know the reason for this,  
::      but adding that last findstr prevents me from getting an error  
::      from trying to execute a dir on a non-existant drive letter.-  
::   then dir is executed on each drive letter (after appending ":\" to the letter)  
::      and the output redirected to NUL  
::  
:: run net use before as a visual here  
net use  
::  
FOR /F "tokens=1-2 delims=: " %%i in (  
    'net use ^| findstr ":" ^| findstr /i /v "^OK" ^| findstr /i "^[A-Z]"'  
    ) do dir "%%j:" > NUL  
::  
:: run net use after "waking" drive(s)  
net use  
::  
ENDLOCAL  

0

शायद एक पुराना सवाल लेकिन 2017 और विंडोज 10 में अभी भी प्रासंगिक है क्योंकि नेटवर्क के शेयरों को अक्सर अलग-अलग कारणों से खिड़कियों द्वारा पुन: संयोजित या संलग्न नहीं किया जाता है। इस समस्या और एक वास्तविक व्यावहारिक और पूर्ण काम करने वाले समाधान की अनुपस्थिति के आधार पर, मैंने एक गितुब परियोजना बनाई जिसमें एक शेड्यूलर टास्क और एक वीबीएस शामिल है जो कि समस्या को हल करता है बस फिर से शुरू या लॉगऑन के बाद ड्राइव को फिर से कनेक्ट करने या ऑनलाइन कनेक्ट न होने पर।

स्क्रिप्ट पूरी तरह से कॉन्फ़िगर करने योग्य है और वास्तविक उपयोगकर्ता की जरूरतों के आधार पर स्थापित की जा सकती है।

पथ गीथब परियोजना के लिए

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