web-dev-qa-db-fra.com

Comment définir le délai d'expiration du réseau Windows pour un lecteur mappé physiquement déconnecté?

Lorsqu'un lecteur réseau ( Net Use ) est physiquement déconnecté, l'Explorateur Windows (et d'autres programmes) continue d'essayer de l'énumérer et/ou de l'utiliser pendant environ 60 secondes.

Est-il possible de réduire ce délai à peut-être 5 secondes?

Juste pour clarifier, je ne parle pas des lecteurs réseau qui sont automatiquement déconnectés par Windows après un certain temps, ni des reconnexions automatiques lors de la connexion.

La question est à ce sujet:

Connectez un lecteur réseau à un autre ordinateur. Puis éteignez cet autre ordinateur. Essayez ensuite de reconnecter le lecteur réseau, par exemple en double-cliquant dans l'explorateur Windows → très long délai d'attente. Comment puis-je réduire ce délai?

25
Andreas Haferburg

Sous Windows 7 et Vista, les lecteurs réseau mappés se déconnectent après un certain temps et affichent une croix rouge sur l'icône du lecteur. Vous pourrez toujours cliquer sur le lecteur et voir/utiliser le contenu, mais les applications nécessitant un lecteur réseau les verront comme déconnectées et ne verront pas les fichiers. Si vous essayez de déconnecter le lecteur, le message "Disque réseau déconnecté" reste affiché. La seule solution consiste à redémarrer l'ordinateur. En effet, il existe une heure de déconnexion par défaut pour les connexions réseau inactives. Pour corriger cela et désactiver la déconnexion automatique, procédez comme suit:

  1. Ouvrez l'invite de commande en tant qu'administrateur. Pour ce faire, soit:

    • cliquez sur Démarrer → Tous les programmes → Accessoires, cliquez avec le bouton droit de la souris sur "Invite de commandes", puis sélectionnez "Démarrer en tant qu'administrateur".

    • tapez cmd dans le champ de recherche et appuyez sur Ctrl+Shift+Enter

  2. Dans l'invite de commande, tapez ce qui suit:

    net config server /autodisconnect:-1
    
  3. Presse Enter

  4. Redémarrer l'ordinateur

Vos lecteurs réseau mappés devraient maintenant rester connectés. Il s'agit d'un correctif permanent.

5
Krishna

J'avais le même problème, mais au début, ce n'était qu'environ 30 secondes. Mais quand ça a sauté à environ 2 minutes (pour une raison inconnue), ça a été tellement énervant que j'ai dû trouver un moyen de le résoudre.

J'ai créé un script batch qui teste le réseau en vérifiant s'il peut envoyer un ping à la machine cible. S'il le peut, il mappe les lecteurs (s'il n'est pas mappé), sinon il supprime le mappage.

@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

Ce script est ensuite appelé par une tâche planifiée, qui l'exécute toutes les 10 minutes, avec une durée de tâche maximale de 10 minutes. Bien que la fenêtre de la console reste ouverte pendant ce temps, j’examine actuellement le Network Conditions dans les paramètres du planificateur, ce qui pourrait être défini pour créer les partages lorsqu’il est connecté au réseau. Je sais que le partage est activé (ce qui définirait un indicateur). et un second script, qui s’exécutait une fois toutes les 5 minutes environ, et qui, si l’indicateur était plus ancien qu’au moins longtemps, effacerait les partages, ce qui réduirait la durée de la fenêtre de console.

2
topherg

Votre solution est ci-dessous;

Kill the long "restauration des connexions réseau" à l'ouverture de session (différer = connexions fantômes)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider]

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

"RestoreTimeout"=dword:00000005

Ghost la connexion si elle ne répond pas dans RestoreTimeout

"DeferConnection"=dword:00000001
1
William Topping

Basé sur http://blogs.msdn.com/b/openspecification/archive/2013/03/27/smb-2-x-and-smb-3-0-timeouts-in -windows.aspx , on dirait que le délai d'expiration du partage Windows est contrôlé par l'entrée de registre "Request Expiration Timer".

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

Il a également mentionné cette valeur réduite à 20 secondes dans Windows 8 SMB 3.0 pour un basculement rapide.

1
Eric Leung

Selon ce message sur Windows7Hacker , la résolution de ce problème côté client implique une modification du registre.

  1. Ouvrez le registre avec Regedit.exe
  2. Naviagate to HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
  3. Créez une valeur DWORD nommée KeepConn et définissez-la sur time en secondes pour maintenir la connexion active

Par exemple, je le fixe à 86400 (un jour).

0
deppfx

Cela a fonctionné pour moi sur Windows 7 comme prévu. En outre, cela résout une longue attente après la connexion. Collé ici en tant que fichier .reg:

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
0
Luis Siquot