Gibt es eine Möglichkeit, ein zugeordnetes Netzwerklaufwerk zu "trennen", die Zuordnung jedoch NICHT zu entfernen?

12

Wenn ich zum Beispiel tippe, sehe net useich möglicherweise Folgendes:

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

In diesem Fall hat Windows Explorer eine Verzögerung von 10 bis 20 Sekunden, wenn Sie lediglich einen neuen Ordner auf meinem Laufwerk C: erstellen. Nach einer Weile ändert sich das Laufwerk K: und zeigt "Disconnected" an.

Was ich tun möchte, ist, das K: -Laufwerk zu zwingen, getrennt oder nicht verfügbar zu sein, aber ohne die authentifizierte Zuordnung zu verlieren.

Glen Little
quelle
2
Nur aus Neugier, warum denkst du, brauchst du das?
Zoredache
2
Ich verbinde mich mit einem VPN, verwende das Laufwerk K: und trenne dann das VPN. Danach ist mein Explorer oft langsam, bis er schließlich K: als getrennt markiert. Dies ist eine Vereinfachung, da ich mehr als 3 Laufwerkszuordnungen habe, die von verschiedenen Skripten benötigt werden, und möglicherweise mehrmals täglich eine Verbindung zum VPN herstellen oder diese trennen kann.
Glen Little
1
@GlenLittle Haben Sie versucht, die Option "Beim Anmelden erneut verbinden" zu deaktivieren, wenn Sie das Laufwerk zuordnen?
Moses
4
Warum erstellen Sie nicht ein Skript zum Verbinden und Trennen der Laufwerke (einschließlich des Entfernens der Zuordnung)? Wie hier könnten Sie sogar ein Skript erstellen, das sich automatisch mit dem VPN verbindet, und ein Skript zum Trennen der Verbindung (einschließlich des gesamten Laufwerkszuordnungsmaterials)
Rik
4
A net use \\serverB\share2 /deletesollte den Trick machen (es trennt das Laufwerk, beeinträchtigt aber nicht die Zuordnung)
Paolo Gibellini

Antworten:

1

Microsoft scheint zu versuchen, administrative Aufgaben wie diese nach PowerShell zu verlagern.

In Ihrem speziellen Fall ist das zu verwendende Cmdlet Remove-PSDrive. Remove-PSDrive erledigt genau das, wonach Sie gefragt haben: Trennen Sie ein zugeordnetes Netzlaufwerk. Die Syntax für Ihr Szenario wäre:

Remove-PSDrive -Name K

Um zu einer Powershell-Befehlszeile zu gelangen, in der Sie das Cmdlet ausführen können, öffnen Sie das Startmenü, und geben Sie im Suchfeld einfach Powershell ein. Wenn Sie das Suchfeld nicht haben, wählen Sie im Startmenü Ausführen und geben Sie im Feld Ausführen den Befehl Powershell ein und drücken Sie die Eingabetaste.

Ausführliche Informationen zur Verwendung dieses Cmdlets mit allen zugehörigen Optionen finden Sie im Technet-Artikel von Microsoft:
http://technet.microsoft.com/en-us/library/hh849760.aspx

Matrix Mole
quelle
Klingt sehr vielversprechend, funktioniert aber bei mir nicht. Wenn ich das tue net use y: ...., dann starte PowerShell und tue get-psdrive, wie ich sehe, Yaufgelistet. Dadurch remove-psdrive -Name Ywird es entfernt. Aber dann net usezeigt ein noch, und ich kann immer noch das Laufwerk Y: verwenden. (Das verwendete PS v2. Funktioniert anscheinend mit v4.)
Glen Little
Powershell 4.0 wurde vor ein paar Wochen veröffentlicht ... technet.microsoft.com/en-us/library/hh847820.aspx
Glen Little
@ GlenLittle Aber entfernt dies den Laufwerksbuchstaben oder trennt es, während der Buchstabe beibehalten wird? Wenn es es entfernt, ist das nicht dasselbe wie net use Y: /delete?
Rik
Endlich mal probieren können. Leider scheint dies so zu imitieren, Net use /deletewie @Rik vermutet hat. In Bezug auf Netzwerklaufwerke sehe ich keinen Unterschied.
Glen Little
1

In Ordnung. Ich könnte eine Lösung haben. Ich habe versucht, den /savecredParameter von zu untersuchen net use, konnte ihn aber nicht richtig zum Laufen bringen. Hier ist ein anderer Ansatz:

Ihr Problem war die Verzögerung mit Explorer nach dem Trennen mit dem VPN.
Warum also nicht die Laufwerke nach dem Trennen der Verbindung vor dem Explorer verstecken , damit dieser nicht versucht, auf sie zuzugreifen?

Es gibt einen Registrierungsschlüssel, um Laufwerke im Explorer auszublenden:

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

und HKEY_xxx können beides sein HKEY_LOCAL_MACHINEund HKEY_CURRENT_USER.

Unter diesem Beitrag finden Sie eine Zusammenfassung, welchen Wert Sie haben NoDrivessollten.
(Fügen Sie die Nummern für die Laufwerke hinzu).


Ich habe eine kleine Batchdatei erstellt, in der Sie die Berechnungen nicht selbst durchführen müssen.
Es ist eine 'Toggle'-Batchdatei.

Führen Sie es einmal aus, um eine Verbindung zu Ihrem "Mein VPN" herzustellen.
Führen Sie es erneut aus, um die Laufwerke I, J und K zu trennen und auszublenden .

Sie können dies leicht in zwei Batchdateien aufteilen, aber Sie haben den Punkt ... Sie können diese Batchdatei auch vereinfachen, wenn Sie die Anzahl Ihrer selbst festlegen, NoDrivesanstatt den Batch die Berechnung durchführen zu lassen.

Dies muss als Administrator ausgeführt werden. (es ist möglich, automatisch zu erhöhen, aber das ist sehr weit fortgeschritten)

Wenn Sie sich selbst die Berechtigung für den Schlüssel erteilen, müssen NoDrivesSie diesen nicht als Administrator ausführen. Öffnen Sie einfach regedit.exe, navigieren Sie zu diesem Schlüssel, klicken Sie auf "Bearbeiten> Berechtigungen" und gewähren Sie sich "Vollzugriff" auf diesen Schlüssel.

@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

Hinweis: Der
Windows Explorer muss geschlossen und erneut geöffnet werden, bevor die Laufwerke ausgeblendet (oder wieder sichtbar) werden.


Einstellungen für 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
quelle
Sieht interessant aus ... Ich muss es versuchen. Ich liebe die Verwendung von bitweiser Mathematik in der Batch-Datei!
Glen Little
0

Ich weiß nicht, wie ich das machen soll, aber ich würde ein Skript erstellen, um das zugeordnete Laufwerk hinzuzufügen, um das Leben zu vereinfachen.

  1. Erstellen Sie eine Datei mit der Erweiterung .bat (zB map_drives.bat)
  2. Fügen Sie in der Datei eine Zeile wie diese ein net use J: \\server\folder
  3. Doppelklicken Sie auf diese Datei und es wird Ihr Laufwerk zugeordnet
mvndaai
quelle
Danke für die Antwort. Ich würde dies tun, aber einige der Laufwerke benötigen unterschiedliche ID / PW-Authentifizierungen und ich möchte diese nicht in ein Skript einfügen.
Glen Little