वहाँ एक मैप्ड नेटवर्क ड्राइव "डिस्कनेक्ट" करने का एक तरीका है, लेकिन मैपिंग को हटाएं नहीं?


12

उदाहरण के लिए, जब मैं टाइप करता net useहूं तो मुझे कुछ दिखाई देता है:

Status        Local       Remote
OK            H:          \\server\home folders\me
Unavailable   I:          \\serverA\share1
Disconnected  J:          \\serverB\share2
Reconnecting  K:          \\serverC\share3

जब ऐसा होता है, तो विंडोज एक्सप्लोरर में मेरे सी: ड्राइव पर एक नया फ़ोल्डर बनाने के रूप में कुछ सरल करते समय 10 - 20 सेकंड की देरी होती है। थोड़ी देर बाद, K: ड्राइव को "डिस्कनेक्टेड" कहने के लिए बदल जाएगा।

मैं जो करना चाहता हूं वह किसी भी तरह K: ड्राइव को डिस्कनेक्ट या अनुपलब्ध होने के लिए मजबूर करना है, लेकिन बिना प्रमाणित मैपिंग खोए।


2
जिज्ञासा से बाहर, आपको लगता है कि आपको इसकी आवश्यकता क्यों है?
Zoredache

2
मैं एक वीपीएन से कनेक्ट करता हूं, के: ड्राइव का उपयोग करता हूं, फिर वीपीएन को डिस्कनेक्ट करें। उसके बाद, मेरा एक्सप्लोरर अक्सर धीमा होता है, जब तक कि वह अंत में K: को काट नहीं देता। यह एक सरलीकरण है, क्योंकि मेरे पास विभिन्न स्क्रिप्ट द्वारा आवश्यक 3 से अधिक ड्राइव मैपिंग हैं, और दिन में कई बार वीपीएन से कनेक्ट / डिस्कनेक्ट कर सकते हैं।
ग्लेन लिटिल

1
@GlenLittle क्या आपने ड्राइव को मैप करते समय "लॉगऑन पर फिर से कनेक्ट करें" विकल्प को अनचेक करने की कोशिश की है?
मोशे

4
कनेक्ट करने और डिस्कनेक्ट करने के लिए स्क्रिप्ट क्यों न बनाएं (मैपिंग को हटाने सहित)। यहाँ की तरह आप एक स्क्रिप्ट भी बना सकते हैं जो वीपीएन से कनेक्ट होती है और डिस्कनेक्ट करने के लिए एक स्क्रिप्ट (सभी ड्राइव-मैपिंग सामान सहित)
Rik

4
net use \\serverB\share2 /deleteको ट्रिक करना चाहिए (यह ड्राइव को डिस्कनेक्ट करता है लेकिन मैपिंग को प्रभावित नहीं करता है)
पाओलो गिबेलिनी

जवाबों:


1

ऐसा लगता है कि Microsoft प्रशासनिक कार्यों जैसे कि PowerShell को स्थानांतरित करने का प्रयास कर रहा है।

आपके विशिष्ट मामले में, उपयोग करने का cmdlet Remove-PSDrive है। निकालें-PSDrive वही करेगा जो आप पूछ रहे हैं: मैप्ड नेटवर्क ड्राइव को डिस्कनेक्ट करें। आपके परिदृश्य का सिंटैक्स होगा:

Remove-PSDrive -Name K

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

सभी विकल्पों सहित इस cmdlet का उपयोग करने के तरीके के बारे में पूरी जानकारी के लिए Microsoft के तकनीकी लेख देखें:
http://technet.microsoft.com/en-us/library/hh849760.aspx


बहुत आशाजनक लग रहा था, लेकिन मेरे लिए काम नहीं करता है। यदि मैं करता हूं net use y: ...., तो PowerShell प्रारंभ करें और करें get-psdrive, मैं Yसूचीबद्ध देखता हूं । करने से remove-psdrive -Name Yवह दूर हो जाता है। लेकिन फिर net useभी यह दिखाता है, और मैं अभी भी वाई: ड्राइव का उपयोग कर सकता हूं। (जो PS v2 का उपयोग कर रहा था। जाहिरा तौर पर v4 के साथ काम करता है।)
ग्लेन लिटिल

Powershell 4.0 को कुछ हफ़्ते पहले जारी किया गया था ... Technet.microsoft.com/en-us/library/hh847820.aspx
Glen Little

@GlenLittle लेकिन क्या यह ड्राइव-लेटर को हटा देता है या लेटर को रखते समय डिस्कनेक्ट कर देता है? यदि वह इसे हटा देता है, तो क्या यह वैसा नहीं है net use Y: /delete?
रिक

अंत में यह प्रयास करने में सक्षम। दुर्भाग्य से, यह Net use /delete@Rik के अनुमान के अनुसार नकल करता है। मुझे कोई अंतर दिखाई नहीं देता है, जहां तक ​​नेटवर्क ड्राइव का संबंध है।
ग्लेन लिटिल

1

ठीक है। मेरे पास समाधान हो सकता है। मैंने इसके /savecredपैरामीटर को देखने की कोशिश की, net useलेकिन इसे ठीक से काम करने के लिए नहीं मिला इसलिए यहां एक और तरीका है:

आपकी समस्या वीपीएन के साथ डिस्कनेक्ट के बाद एक्सप्लोरर के साथ देरी थी।
तो डिस्कनेक्ट के बाद एक्सप्लोरर से ड्राइव को क्यों नहीं छिपाएं ताकि यह उन्हें एक्सेस करने की कोशिश न करे।

एक्सप्लोरर से ड्राइव को छिपाने के लिए एक रजिस्ट्री कुंजी है:

HKEY_xxx\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives

और HKEY_xxx दोनों हो सकता है HKEY_LOCAL_MACHINEऔर HKEY_CURRENT_USER

इस पोस्ट के नीचे एक सारांश है कि किस मूल्य NoDrivesको धारण करना चाहिए।
(ड्राइव के लिए नंबर जोड़ें)।


मैंने एक छोटा बैचफ़ाइल बनाया है जहाँ आपको स्वयं गणना करने की आवश्यकता नहीं है।
यह एक 'टॉगल'-बैचफाइल है।

अपने "माय वीपीएन" से कनेक्ट करने के लिए इसे एक बार चलाएं। डिस्क I, J और K
को डिस्कनेक्ट और छिपाने के लिए इसे फिर से चलाएँ ।

आप इसे आसानी से दो बैचफ़ाइल्स में विभाजित कर सकते हैं, लेकिन आपको बिंदु मिल जाएगा ... यदि आप NoDrivesबैच को गणना करने देने के बजाय स्वयं की संख्या निर्धारित करते हैं, तो आप इस बैचफ़ाइल को सरल भी बना सकते हैं ।

इसे व्यवस्थापक के रूप में चलाने की आवश्यकता है। (यह स्वचालित रूप से ऊंचा करना संभव है लेकिन यह बहुत उन्नत है)

यदि आप कुंजी पर अपने आप को अनुमति देते NoDrivesहैं तो आपको इसे व्यवस्थापक के रूप में चलाने की आवश्यकता नहीं है। बस खोलें regedit.exe, इस कुंजी को ब्राउज़ करें और "संपादित करें> अनुमतियाँ" पर क्लिक करें और अपने आप को इस कुंजी पर "पूर्ण नियंत्रण" प्रदान करें।

@echo off
:: ------------------------
set MyVPN="My VPN"
:: ------------------------
rasdial | findstr %MyVPN% 1>nul
If %ERRORLEVEL% == 0 goto disconnect

:connect
echo ============================================================
echo connecting to %MyVPN%
echo ============================================================
rasdial %MyVPN%
:: This is easy. We just set 0 in NoDrives
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /T REG_DWORD /d 0 /f

goto :end

:disconnect
echo ============================================================
echo disconnecting from %MyVPN%
echo ============================================================
rasdial %MyVPN% /disconnect

:: ------------------------------------------------------------------
:: This is harder. We need to determine what value NoDrives should be
:: ------------------------------------------------------------------
Setlocal EnableDelayedExpansion

:: ------------------------
:: Set here your VPN drives
:: ------------------------
set drives='I J K'

:: ------------------------
:: Calculation to determine the value
:: ------------------------
set drive_value=1
set NoDrives=0
for %%c in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  echo.%drives% | findstr "%%c" 1>nul
  if !ERRORLEVEL! == 0 set /a NoDrives+=drive_value
  set /a drive_value="drive_value<<1"
)
echo Seting NoDrives to %NoDrives%
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /T REG_DWORD /d %NoDrives% /f
endlocal

:end
pause

नोट:
ड्राइव्स के छिपे होने (या फिर से दिखाई देने) से पहले विंडोज एक्सप्लोरर को फिर से बंद और खोला जाना चाहिए।


इसके लिए सेटिंग्स NoDrives:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives

     Decimal       Hex
A:         1         1
B:         2         2
C:         4         4
D:         8         8
E:        16        10
F:        32        20
G:        64        40
H:       128        80
I:       256       100
J:       512       200
K:      1024       400
L:      2048       800
M:      4096      1000
N:      8192      2000
O:     16384      4000
P:     32768      8000
Q:     65536     10000
R:    131072     20000
S:    262144     40000
T:    524288     80000
U:   1048576    100000
V:   2097152    200000
W:   4194304    400000
X:   8388608    800000
Y:  16777216   1000000 
Z:  33554432   2000000 

दिलचस्प लग रहा है ... मुझे यह कोशिश करनी होगी। बैच फ़ाइल में बिटवाइज़ मैथ के उपयोग से प्यार करें!
ग्लेन लिटिल

0

मुझे नहीं पता कि यह कैसे करना है, लेकिन जीवन को आसान बनाने के लिए मैप किए गए ड्राइव को जोड़ने के लिए एक स्क्रिप्ट बनाना होगा।

  1. एक्सटेंशन के साथ एक फ़ाइल बनाएँ .bat (उदा। Map_drives.bat)
  2. फ़ाइल के अंदर इस तरह एक लाइन जोड़ें net use J: \\server\folder
  3. उस फ़ाइल पर डबल क्लिक करें और यह आपके ड्राइव को मैप करेगा

जवाब के लिए धन्यवाद। मैं ऐसा करूंगा, लेकिन कुछ ड्राइव्स को अलग-अलग id / pw ऑथेंटिकेशन की जरूरत होती है, और मैं उन्हें स्क्रिप्ट में नहीं डालना चाहता।
Glen Little
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.