Existe-t-il un moyen de «déconnecter» un lecteur réseau mappé, mais PAS de supprimer le mappage?

12

Par exemple, lorsque je tape, net useje peux voir quelque chose comme:

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

Lorsque cela se produit, l'Explorateur Windows a des retards de 10 à 20 secondes lorsqu'il fait quelque chose d'aussi simple que de créer un nouveau dossier sur mon lecteur C :. Après un certain temps, le lecteur K: changera pour dire "Déconnecté".

Ce que je veux faire, c'est en quelque sorte forcer le lecteur K: à être déconnecté ou indisponible, mais sans perdre le mappage authentifié.

Glen Little
la source
2
Par curiosité, pourquoi pensez-vous en avoir besoin?
Zoredache
2
Je me connecte à un VPN, utilise le lecteur K:, puis déconnecte le VPN. Après cela, mon explorateur est souvent lent, jusqu'à ce qu'il marque finalement K: comme déconnecté. Il s'agit d'une simplification, car j'ai plus de 3 mappages de lecteurs nécessaires à divers scripts et je peux me connecter / déconnecter du VPN plusieurs fois par jour.
Glen Little
1
@GlenLittle Avez-vous essayé de décocher l'option "reconnecter à l'ouverture de session" lorsque vous mappez le lecteur?
Moïse
4
Pourquoi ne pas créer un script pour connecter et déconnecter les disques (y compris la suppression du mappage). Comme ici, vous pouvez même créer un script qui se connecte automatiquement au VPN et un script pour se déconnecter (y compris tous les trucs de mappage de lecteur)
Rik
4
Un net use \\serverB\share2 /deletedevrait faire l'affaire (il déconnecte le lecteur mais n'affecte pas le mappage)
Paolo Gibellini

Réponses:

1

Microsoft semble essayer de déplacer des tâches administratives comme celle-ci vers PowerShell.

Dans votre cas spécifique, l'applet de commande à utiliser est Remove-PSDrive. Remove-PSDrive fera exactement ce que vous demandez: déconnectez un lecteur réseau mappé. La syntaxe de votre scénario serait:

Remove-PSDrive -Name K

Pour accéder à une ligne de commande powershell où vous pouvez exécuter cette applet de commande, ouvrez le menu Démarrer et dans la zone de recherche, tapez simplement powershell. Si vous ne disposez pas de la zone de recherche, dans le menu Démarrer, sélectionnez Exécuter et dans la zone Exécuter, tapez PowerShell et appuyez sur Entrée.

Pour plus de détails sur l'utilisation de cette applet de commande, y compris toutes ses options, consultez l'article de Microsoft sur le technet:
http://technet.microsoft.com/en-us/library/hh849760.aspx

Matrix Mole
la source
Cela semblait très prometteur, mais ne fonctionne pas pour moi. Si je le fais net use y: ...., démarrez PowerShell et faites-le get-psdrive, je le vois Y. Faire le remove-psdrive -Name Ysupprime. Mais alors un net usemontre toujours, et je peux toujours utiliser le lecteur Y :. (Cela utilisait PS v2. Fonctionne apparemment avec v4.)
Glen Little
Powershell 4.0 a été publié il y a quelques semaines ... technet.microsoft.com/en-us/library/hh847820.aspx
Glen Little
@GlenLittle Mais est-ce que cela supprime la lettre de lecteur ou la déconnecte tout en conservant la lettre? S'il le supprime, n'est-ce pas la même chose que net use Y: /delete?
Rik
Enfin capable de l'essayer. Malheureusement, cela semble imiter Net use /deletecomme l'a deviné @Rik. Je ne vois pas de différence en ce qui concerne les lecteurs réseau.
Glen Little
1

D'accord. J'aurais peut-être une solution. J'ai essayé d'examiner le /savecredparamètre de net usemais je n'ai pas pu le faire fonctionner correctement, voici donc une autre approche:

Votre problème était le retard avec Explorer après la déconnexion avec le VPN.
Alors pourquoi ne pas masquer les disques de l'Explorateur après la déconnexion pour qu'il n'essaye pas d'y accéder.

Il existe une clé de registre pour masquer les lecteurs de l'Explorateur:

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

et HKEY_xxx peut être à la fois HKEY_LOCAL_MACHINEet HKEY_CURRENT_USER.

Sous ce post, il y a un résumé de la valeur à NoDrivesconserver.
(ajoutez les numéros des disques).


J'ai créé un petit fichier batch où vous n'avez pas à faire les calculs vous-même.
Il s'agit d'un fichier batch à bascule.

Exécutez-le une fois pour vous connecter à votre "Mon VPN".
Exécutez à nouveau pour déconnecter et cacher les disques I, J et K .

Vous pouvez facilement diviser cela en deux fichiers batch, mais vous obtenez le point ... Vous pouvez également simplifier ce fichier batch si vous définissez le nombre de NoDrivesvous - même au lieu de laisser le lot faire le calcul.

Cela doit être exécuté en tant qu'administrateur. (il est possible d'élever automatiquement mais c'est très avancé)

Si vous vous accordez l'autorisation sur la clé, NoDrivesvous n'avez pas besoin de l'exécuter en tant qu'administrateur. Il suffit d'ouvrir regedit.exe, accédez à cette clé et cliquez sur "Modifier> Autorisations" et accordez-vous "Contrôle total" sur cette clé.

@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

Remarque: l'
Explorateur Windows doit être fermé et rouvert avant que les lecteurs ne soient masqués (ou visibles à nouveau).


Paramètres pour 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
la source
Ça a l'air intéressant ... Je vais devoir essayer ça. J'adore l'utilisation des mathématiques au niveau du bit dans le fichier de commandes!
Glen Little
0

Je ne sais pas comment faire cela, mais ferais un script pour ajouter le lecteur mappé pour vous faciliter la vie.

  1. Créez un fichier avec l'extension .bat (Ex. Map_drives.bat)
  2. Dans le fichier, ajoutez une ligne comme celle-ci net use J: \\server\folder
  3. Double-cliquez sur ce fichier et il cartographiera votre lecteur
mvndaai
la source
Merci d'avoir répondu. Je le ferais, mais certains disques nécessitent des authentifications id / pw différentes, et je ne veux pas les mettre dans un script.
Glen Little