Czy istnieje sposób na „odłączenie” zmapowanego dysku sieciowego, ale NIE usunięcie mapowania?

12

Na przykład, gdy piszę, net usemogę zobaczyć coś takiego:

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

Kiedy tak się dzieje, Eksplorator Windows ma 10 - 20 sekundowe opóźnienia, gdy robi coś tak prostego, jak tworzenie nowego folderu na moim dysku C:. Po pewnym czasie dysk K: zmieni się na „Disconnected”.

Chcę w jakiś sposób zmusić dysk K: do odłączenia lub niedostępności, ale bez utraty uwierzytelnionego mapowania.

Glen Little
źródło
2
Właśnie z ciekawości, dlaczego uważasz, że potrzebujesz tego?
Zoredache
2
Łączę się z VPN, używam dysku K:, a następnie odłączam VPN. Potem mój Eksplorator jest często powolny, aż w końcu oznaczy K: jako odłączony. Jest to uproszczenie, ponieważ mam więcej niż 3 mapowania dysków wymagane przez różne skrypty i mogę łączyć się / odłączać od VPN wiele razy dziennie.
Glen Little,
1
@GlenLittle Czy próbowałeś odznaczyć opcję „połącz ponownie przy logowaniu” podczas mapowania dysku?
Mojżesz
4
Dlaczego nie napisać skryptu do łączenia i odłączania dysków (w tym usuwania mapowania). Tak jak tutaj Możesz nawet utworzyć skrypt, który automatycznie łączy się z VPN i skrypt do rozłączenia (w tym wszystkie elementy mapowania dysku)
Rik
4
net use \\serverB\share2 /deletePowinno załatwić sprawę (nie rozłącza napęd, ale nie dotknąć mapowaniu)
Paolo Gibellini

Odpowiedzi:

1

Wydaje się, że Microsoft próbuje przenieść takie zadania administracyjne do PowerShell.

W konkretnym przypadku poleceniem cmdlet jest Remove-PSDrive. Remove-PSDrive zrobi dokładnie to, o co prosisz: odłącz zmapowany dysk sieciowy. Składnia twojego scenariusza byłaby następująca:

Remove-PSDrive -Nazwa K

Aby przejść do wiersza polecenia programu PowerShell, w którym można uruchomić to polecenie cmdlet, otwórz menu Start, a w polu wyszukiwania wpisz PowerShell. Jeśli nie masz pola wyszukiwania, wybierz z menu Start polecenie Uruchom, a następnie w polu Uruchom wpisz PowerShell i naciśnij klawisz Enter.

Aby uzyskać szczegółowe informacje na temat korzystania z tego polecenia cmdlet, w tym wszystkich jego opcji, zobacz artykuł Microsoft w technet:
http://technet.microsoft.com/en-us/library/hh849760.aspx

Matrix Mole
źródło
Brzmiało to bardzo obiecująco, ale nie działa dla mnie. Jeśli tak net use y: ...., uruchom PowerShell i zrobię to get-psdrive, widzę na Yliście. Robienie remove-psdrive -Name Yusuwa to. Ale potem net usewciąż to pokazuje i nadal mogę korzystać z napędu Y:. (To było przy użyciu PS v2. Najwyraźniej działa z v4.)
Glen Little
Powershell 4.0 został wydany kilka tygodni temu ... technet.microsoft.com/en-us/library/hh847820.aspx
Glen Little
@GlenLittle Ale czy to usuwa literę dysku lub odłącza ją, zachowując literę? Jeśli to usunie, czy to nie to samo, co net use Y: /delete?
Rik
Wreszcie mogę spróbować. Niestety, wydaje się to naśladować, Net use /deletejak zgadł @Rik. Nie widzę różnicy, jeśli chodzi o dyski sieciowe.
Glen Little
1

Dobrze. Mogę mieć rozwiązanie. Próbowałem przyjrzeć się /savecredparametrowi, net useale nie mogłem go poprawnie uruchomić, więc oto inne podejście:

Problem polegał na opóźnieniu w Eksploratorze po rozłączeniu z VPN.
Dlaczego więc nie ukryć dysków w Eksploratorze po odłączeniu, aby nie próbował uzyskać do nich dostępu.

Istnieje klucz rejestru do ukrycia dysków w Eksploratorze:

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

a HKEY_xxx może być jednocześnie HKEY_LOCAL_MACHINEi HKEY_CURRENT_USER.

Pod tym postem znajduje się streszczenie tego, jaką wartość NoDrivespowinna utrzymać.
(dodaj liczby dysków).


Stworzyłem mały plik wsadowy, w którym nie musisz samodzielnie wykonywać obliczeń.
Jest to plik wsadowy „przełączający”.

Uruchom raz, aby połączyć się z „My VPN”.
Uruchomić go ponownie, aby odłączyć i ukryć dyski I, J i K .

Możesz łatwo podzielić to na dwa pliki wsadowe, ale masz rację ... Możesz także uprościć ten plik wsadowy, jeśli ustawisz liczbę NoDrivessiebie zamiast pozwolić partii wykonać obliczenia.

To musi być uruchomione jako administrator. (możliwe jest automatyczne podniesienie, ale jest to bardzo zaawansowane)

Jeśli przyznasz sobie klucz NoDrives, nie musisz uruchamiać tego jako administrator. Po prostu otwórz regedit.exe, przejdź do tego klucza i kliknij „Edytuj> Uprawnienia” i daj sobie „Pełna kontrolę” nad tym kluczem.

@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

Uwaga:
Eksplorator Windows musi zostać zamknięty i ponownie otwarty, zanim dyski zostaną ukryte (lub ponownie widoczne).


Ustawienia dla 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 
Rik
źródło
Wygląda interesująco ... Będę musiał tego spróbować. Uwielbiam używać matematyki bitowej w pliku wsadowym!
Glen Little,
0

Nie wiem, jak to zrobić, ale stworzę skrypt, aby dodać zamapowany dysk, aby ułatwić życie.

  1. Utwórz plik z rozszerzeniem .bat (np. Map_drives.bat)
  2. Wewnątrz pliku dodaj taką linię net use J: \\server\folder
  3. Kliknij dwukrotnie ten plik, aby zmapować dysk
mvndaai
źródło
Dziękuję za odpowiedź. Zrobiłbym to, ale niektóre dyski wymagają różnych uwierzytelnień id / pw i nie chcę umieszczać ich w skrypcie.
Glen Little,