Wie stelle ich das Windows-Netzwerk-Timeout für ein physikalisch getrenntes zugeordnetes Laufwerk ein?

28

Wenn ein Netzwerklaufwerk ( net use) physisch nicht verbunden ist, versucht der Windows Explorer (und andere Programme) für etwa 60 Sekunden, es aufzulisten und / oder zu verwenden.

Gibt es eine Möglichkeit, diese Zeitüberschreitung auf möglicherweise 5 Sekunden zu reduzieren?

Zur Verdeutlichung frage ich nicht nach Netzwerklaufwerken, die nach einer bestimmten Zeit von Windows automatisch getrennt werden, oder nach automatischen Wiederverbindungen während der Anmeldung.

Die Frage ist darüber:

Schließen Sie ein Netzwerklaufwerk an einen anderen Computer an. Schalten Sie dann den anderen Computer aus. Versuchen Sie anschließend, das Netzlaufwerk erneut zu verbinden, z. B. durch Doppelklicken im Windows-Explorer → sehr lange Wartezeit. Wie reduziere ich diese Zeitüberschreitung?

Andreas Haferburg
quelle
2
Sie könnten der Suche nach diesem: superuser.com/a/332754/124651
deppfx
@ ƬᴇcƬᴇιᴇ007 Danke für das Kopfgeld. Aber ich denke, die Leute verstehen das immer noch falsch. Ich habe versucht, die Frage erneut zu formulieren, um sie klarer zu machen.
Andreas Haferburg
1
@AndreasHaferburg Kein Problem, wenn Sie Zeit haben, einige der neuen Antworten zu testen, wäre das praktisch. :)
ƬᴇcƬᴇιʜ007
Keine der in den Antworten vorgeschlagenen Registrierungsänderungen scheint zu helfen. Ich vermute, dass das Zeitlimit, das wir reduzieren möchten, eigentlich kein SMB-Zeitlimit ist, sondern ein allgemeineres TCP / IP-Zeitlimit (oder eine Kombination aus mehreren davon).
mivk

Antworten:

6

Unter Windows 7 und Vista trennen sich die Netzlaufwerke nach einiger Zeit von selbst und zeigen ein rotes Kreuz auf dem Laufwerkssymbol an. Sie können weiterhin auf das Laufwerk klicken und den Inhalt anzeigen / verwenden, aber Anwendungen, die ein Netzwerklaufwerk benötigen, sehen diesen als nicht verbunden und sehen keine Dateien. Wenn Sie versuchen, das Laufwerk zu trennen, bleibt es dort und sagt "Disconnected Network Drive" (Getrenntes Netzwerklaufwerk). Die einzige Lösung ist ein Neustart. Dies liegt daran, dass für inaktive Netzwerkverbindungen eine Standardtrennzeit festgelegt ist. Um dies zu korrigieren und die automatische Trennung zu deaktivieren, gehen Sie wie folgt vor:

  1. Öffnen Sie die Eingabeaufforderung als Administrator. Dazu entweder:

    • Gehen Sie zu Start → Alle Programme → Zubehör, klicken Sie mit der rechten Maustaste auf "Eingabeaufforderung" und wählen Sie "Als Administrator starten" oder

    • Geben Sie cmd in das Suchfeld ein und drücken Sie Ctrl+ Shift+Enter

  2. Geben Sie im Befehl prompty Folgendes ein:

    net config server /autodisconnect:-1
    
  3. Drücken Sie Enter

  4. Computer neu starten

Ihre zugeordneten Netzlaufwerke sollten jetzt in Verbindung bleiben - dies ist eine dauerhafte Lösung.

Krishna
quelle
4
Dies beantwortet nicht die eigentliche Frage des OP, die ursprüngliche Anfrage wurde missverstanden, siehe OP's edit.
ƬᴇcƬᴇιᴇ007
Ich weiß, es hat nichts mit OP zu tun, aber genau das ist es, wonach ich suche, aber der Zugang wird verweigert. Ich bin ein Administrator auf meinem PC.
Rick
3

Basierend auf http://blogs.msdn.com/b/openspecification/archive/2013/03/27/smb-2-x-and-smb-3-0-timeouts-in-windows.aspx sehen Sie wie Windows aus Das Freigabezeitlimit wird vom Registrierungseintrag "Request Expiration Timer" gesteuert.

\HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\
Value type: Dword  
Value name: SessTimeout
Default:    60 seconds (Windows Vista)

Es wurde auch erwähnt, dass dieser Wert in Windows 8 SMB 3.0 für ein schnelles Failover auf 20 Sekunden reduziert wurde.

Eric Leung
quelle
3
Leider haben meine Tests ergeben, dass diese Einstellung keinen Einfluss auf die Wartezeit auf nicht verfügbare Netzlaufwerke hat. Ich habe es auf 5 Sekunden eingestellt und warte noch immer die gleichen ~ 30 Sekunden (Windows 7), bevor ich es eingestellt (und neu gestartet) habe.
ƬᴇcƬᴇιᴇ007
2

Ich hatte das gleiche Problem, aber anfangs waren es nur 30 Sekunden. Aber als es ungefähr 2 Minuten dauerte (aus einem unbekannten Grund), wurde es so nervig, dass ich einen Weg finden musste, es zu lösen.

Ich habe ein Stapelskript erstellt, das das Netzwerk testet, indem es überprüft, ob es den Zielcomputer anpingen kann. Wenn dies möglich ist, werden die Laufwerke zugeordnet (sofern nicht zugeordnet). Andernfalls wird die Zuordnung gelöscht.

@echo off

set ipaddr=192.168.5.3

set current=neither

:begin

    set state=down

    for /f %%i in ('ping -n 1 %ipaddr% -w 1000 ^| findstr /C:"Received = 1"') do (
        set state=up
    )

    if not %state% == %current% (
        set current=%state%
        if %state% == up (
            net use R: \\%ipaddr%\archive$
        )
        if %state% == down (
            net use R: /delete /y
        )
    )

    sleep 5

goto begin

Dieses Skript wird dann von einer geplanten Task aufgerufen, die das Skript alle 10 Minuten mit einer maximalen Task-Zeit von 10 Minuten ausführt. Obwohl das Konsolenfenster dann während dieser Zeit geöffnet bleibt, untersuche ich dies derzeit Network Conditionsin den Scheduler-Einstellungen, die festgelegt werden könnten, um die Freigaben zu erstellen, wenn eine Verbindung mit dem Netzwerk besteht, von dem ich weiß, dass die Freigabe aktiviert ist (was ein Flag setzen würde). und ein zweites Skript, das etwa alle 5 Minuten einmal ausgeführt wird. Wenn das Flag älter als mindestens so lange ist, werden die Freigaben gelöscht, wodurch die Zeit des Konsolenfensters minimiert wird.

topherg
quelle
4
Leider denke ich, dass diese Art von Lösung ungefähr so ​​gut ist, wie wir es erwarten können (noch immer, ab 2014), zumindest was Anmeldeverzögerungen / Startverzögerungen des Explorers betrifft, die durch die Netzwerklaufwerke verursacht werden. Hab mein Kopfgeld. Vielleicht können wir es in ein paar Jahren noch einmal wiederholen. :)
ƬᴇcƬᴇιʜ007
sleepin Ihrem Skript ist kein nativer Befehl. Verwenden Sie in diesem Fall besser ein vbscript.
Azevedo
@ ƬᴇcƬᴇιᴇ007 Hast du jemals eine echte Lösung für dieses Problem gefunden? Ich habe ein Netzlaufwerk, das häufig physisch ausgeschaltet ist, und der Versuch, von einem Client-Computer aus darauf zuzugreifen, führt zu einer frustrierenden Verzögerung.
WackGet
1

Ihre Lösung ist unten;

Beenden Sie die lange "Wiederherstellung von Netzwerkverbindungen" bei der Anmeldung (defer = ghosted connections)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider]

"RestoreConnection"=dword:00000001 ;(0=no attempt, you must click it)

"RestoreTimeout"=dword:00000005

Ghost die Verbindung, wenn nicht innerhalb reagiert RestoreTimeout

"DeferConnection"=dword:00000001
William Topping
quelle
1
Gibt es eine Quelle, aus der Sie diese Informationen erhalten haben, oder eine, aus der hervorgeht, warum dies hilfreich sein könnte?
ƬᴇcƬᴇιᴇ007
2
Leider haben meine Tests ergeben, dass diese Einstellung keinen Einfluss auf die Wartezeit auf nicht verfügbare Netzlaufwerke hat. Ich habe die obigen Schlüssel erstellt und ihre Werte festgelegt, aber ich warte noch immer die gleichen ~ 30 Sekunden (Windows 7), die ich vor dem Festlegen (und Neustarten) hatte.
ƬᴇcƬᴇιᴇ007
1
Es gibt auch: [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ LanmanWorkstation \ Parameters] "ReconnectTimeout" = dword: 00000005 hier zu finden: sevenforums.com/network-sharing/… Das Setzen dieses Eintrags plus der vor allem auf 1 scheint ein großer Unterschied (nach dem Neustart). Jetzt ist alles wieder schnell wie erwartet.
Kermit
1

Dies funktionierte für mich unter Windows 7 wie erwartet. Auch löst es ein langes Warten nach dem Login. Hier als .reg-Datei eingefügt:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider]
"RestoreConnection"=dword:00000000
"RestoreTimeout"=dword:00000004
"DeferConnection"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters]
"SessTimeout"=dword:0000000a
"ExtendedSessTimeout"=dword:00000000
"ReconnectTimeout"=dword:00000004
Luis Siquot
quelle
Dies funktioniert nicht auf 8.1
Midenok
0

Laut diesem Beitrag auf Windows7Hacker umfasst das Beheben dieses Problems auf der Clientseite eine Registrierungsbearbeitung.

  1. Öffnen Sie die Registrierung mit Regedit.exe
  2. Naviagate zu HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
  3. Erstellen Sie einen DWORD- Wert mit dem Namen KeepConnund stellen Sie die Zeit in Sekunden ein, um die Verbindung aufrechtzuerhalten

Zum Beispiel habe ich es auf 86400 (eines Tages) gesetzt.

deppfx
quelle
Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Ivo Flipse
Als allgemeine Erinnerung: Versuchen Sie, Ihre Antworten länger als einen Satz zu machen und fügen Sie bitte einen Kontext hinzu. Erklären Sie, wie der Link die Frage tatsächlich beantwortet - es ist möglicherweise nicht so offensichtlich.
Slhck
@ Ivoflipse: Sicher. Danke für den Vorschlag.
Deppfx
@slhck: Werde das im Hinterkopf behalten.
Deppfx
1
Dies beantwortet nicht die eigentliche Frage des OP, die ursprüngliche Anfrage wurde missverstanden, siehe OP's edit.
ƬᴇcƬᴇιᴇ007