Eşlenen bir ağ sürücüsünün bağlantısını kesmenin, ancak eşleştirmeyi SİLMEMEK için bir yol var mı?


12

Örneğin, ben yazarken şöyle bir net useşey görebilirsiniz:

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

Bu durumda, Windows Gezgini'nde C: sürücümde yeni bir klasör oluşturmak kadar basit bir şey yaparken 10 - 20 saniye gecikmeler olur. Bir süre sonra, K: sürücüsü "Bağlantı Kesildi" olarak değişecektir.

Ne yapmak istiyorum bir şekilde K: sürücünün bağlantısı kesildi veya kullanılamaz, ancak kimliği doğrulanmış eşleme kaybetmeden zorlamaktır.


2
Sadece meraktan, neden buna ihtiyacın olduğunu düşünüyorsun?
Zoredache

2
Bir VPN'ye bağlandım, K: sürücüsünü kullanın, ardından VPN'nin bağlantısını kesin. Bundan sonra, Gezginim sonunda K: bağlantısız olarak işaretlenene kadar genellikle yavaştır. Çeşitli komut dosyaları için gereken 3'ten fazla sürücü eşlemesine sahip olduğum ve günde birkaç kez VPN'ye bağlanabilir / bağlantısını kesebilirim.
Glen Little

1
@GlenLittle Sürücüyü eşlerken "Oturum açıldığında yeniden bağlan" seçeneğinin işaretini kaldırmayı denediniz mi?
Musa

4
Neden sürücüleri bağlamak ve bağlantısını kesmek için bir komut dosyası oluşturmuyorsunuz (eşlemeyi kaldırmak da dahil). Gibi burada bile otomatik VPN bağlanmak bir script (tüm sürücü-haritalama malzeme dahil) kesmek için bir komut dosyası oluşturabilir
Rik

4
A net use \\serverB\share2 /deletehile yapmalı (sürücünün bağlantısını keser ancak eşlemeyi etkilemez)
Paolo Gibellini

Yanıtlar:


1

Microsoft bunun gibi yönetim görevlerini PowerShell'e taşımaya çalışıyor gibi görünüyor.

Özel durumunuzda, kullanılacak cmdlet Kaldır-PSDrive'dır. Remove-PSDrive tam olarak istediğinizi yapar: eşlenen bir ağ sürücüsünün bağlantısını kesin. Senaryonuzun sözdizimi şöyle olur:

Kaldır-PSDrive -Ad K

Bu cmdlet'i çalıştırabileceğiniz bir powershell komut satırına ulaşmak için, başlat menüsünü açın ve arama kutusuna powershell yazın. Arama kutunuz yoksa, başlat menüsünden Çalıştır'ı seçin ve çalışma kutusuna powershell yazın ve enter tuşuna basın.

Tüm seçenekleri dahil olmak üzere bu cmdlet'in nasıl kullanılacağı hakkında ayrıntılı bilgi için Microsoft'un technet makalesine bakın:
http://technet.microsoft.com/en-us/library/hh849760.aspx


Çok umut verici geliyordu, ama benim için çalışmıyor. Bunu yaparsam net use y: ...., PowerShell'i başlatın ve yapın get-psdrive, Ylistede görüyorum . Yapmak remove-psdrive -Name Yonu kaldırır. Ama sonra net usehala bunu gösteriyor ve ben hala Y: sürücüsünü kullanabilirim. (Bu PS v2 kullanıyordu. Görünüşe göre v4 ile çalışıyor.)
Glen Little

Powershell 4.0 birkaç hafta önce yayınlandı ... technet.microsoft.com/en-us/library/hh847820.aspx
Glen Little

@GlenLittle Peki bu, sürücü harfini kaldırır veya harfi tutarken bağlantısını keser mi? Kaldırırsa, bu aynı değil net use Y: /deletemi?
Rik

Sonunda denemek mümkün. Ne yazık ki, Net use /delete@Rik'in tahmin ettiği gibi bu taklit ediyor gibi görünüyor . Ağ sürücüleri söz konusu olduğunda fark görmüyorum.
Glen Little

1

Tamam. Bir çözümüm olabilir. Ben /savecredparametre bakarak çalıştı net useama düzgün çalışmak için alamadım bu yüzden burada başka bir yaklaşım:

Sorun, VPN ile bağlantıyı kestikten sonra Explorer'daki gecikmedir.
Öyleyse neden bağlantıyı kestikten sonra sürücüleri Explorer'dan gizlemiyorsunuz, bu yüzden erişmeye çalışmaz.

Sürücüleri Explorer'dan gizlemek için bir kayıt defteri anahtarı vardır:

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

ve HKEY_xxx ikisi de olabilir HKEY_LOCAL_MACHINEve HKEY_CURRENT_USER.

Bu yazının altında hangi değerin NoDrivestutulması gerektiğine dair bir özet bulunmaktadır .
(sürücülerin numaralarını ekleyin).


Hesaplamaları kendiniz yapmak zorunda olmadığınız küçük bir toplu iş dosyası oluşturdum.
Bu bir 'geçiş' toplu dosyasıdır.

"VPN'im" e bağlanmak için bir kez çalıştırın. I, J ve K sürücülerinin
bağlantısını kesmek ve gizlemek için tekrar çalıştırın .

Bunu iki toplu iş dosyasına kolayca bölebilirsiniz ama noktaya gelebilirsiniz ... Toplu işin NoDriveshesaplamayı yapmasına izin vermek yerine kendiniz sayısını ayarlarsanız bu toplu iş dosyasını da basitleştirebilirsiniz .

Bunun yönetici olarak çalıştırılması gerekir. (otomatik olarak yükseltmek mümkündür, ancak bu çok gelişmiş)

Anahtar için kendinize izin NoDrivesverirseniz, bunu yönetici olarak çalıştırmanız gerekmez . Sadece açın regedit.exe, bu tuşa göz atın ve "Düzenle> İzinler" i tıklayın ve kendinize bu tuşun üzerinde "Tam Denetim" verin.

@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

Not:
Sürücüler gizlenmeden (veya tekrar görünür) Windows Gezgini kapatılmalı ve tekrar açılmalıdır.


Ayarlar 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 

İlginç görünüyor ... Bunu denemek zorunda kalacağım. Toplu iş dosyasında bitsel matematik kullanımını seviyorum!
Glen Little

0

Bunu nasıl yapacağımı bilmiyorum, ama hayatı kolaylaştırmak için eşlenen sürücüyü eklemek için bir komut dosyası yapardı.

  1. Uzantısı olan bir dosya oluşturun .bat (Ör. Map_drives.bat)
  2. Dosyanın içine böyle bir satır ekleyin net use J: \\server\folder
  3. Bu dosyayı çift tıkladığınızda sürücünüz eşlenir

Cevap için teşekkürler. Bunu yapardım, ancak bazı sürücüler farklı kimlik / pw kimlik doğrularına ihtiyaç duyar ve bunları bir betiğe koymak istemiyorum.
Glen Little
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.