Identifier les connections aux lecteurs réseaux (mapped drives)
Il peut être utile pour tout admin système de connaître les lecteurs réseaux de ses utilisateurs et les logins utilisés pour connecter ceux-ci.
A partir de la machine client, il est très simple d’identifier les lecteurs réseaux grâce à la commande net use qui fournit un résultat du type:
C:\Users\Utilisateur\Desktop>net use Les nouvelles connexions seront mémorisées. État Local Distant Réseau ------------------------------------------------------------------------------- OK Z: \\192.168.1.100\mapped_drive Microsoft Windows Network OK \\192.168.1.100\share1 Microsoft Windows Network OK \\192.168.1.100\share2 Microsoft Windows Network La commande s'est terminée correctement.
Le premier représente un lecteur connecté (mapped drive), les autres sont des accès vers des partages non mappés.
Les différentes connections aux dossiers partagés d’un même serveur ne peuvent se faire qu’avec un seul identifiant. Il est impossible sous Windows de connecter par exemple le share1 avec le user1 et le share2 avec le user2 si share1 et share2 se trouvent sur le même serveur.
La commande net use, bien que très pratique ne nous indique pas les identifiants utilisés pour les connections. Pour celà, nous devons faire appel à un autre outil intégré à Windows: le gestionnaire d’identification:
control keymgr.dll
Il est également possible d’utiliser un script, à insérer dans le login script des utilisateurs ou à utiliser avec les PsTools, pour identifier les lecteurs réseaux.
@echo off Set destinationfile="\\192.168.1.xxx\share\%username%.txt" :dateparts (%year% and %month% and %day%) set year=%date:~11,4% set month=%date:~5,2% set day=%date:~8,2% set ttime=%time:~0,5% SetLocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION Set "userfolder=%userprofile%" Set "flagP=NetUse-%username%.flag" Set "nwflag=%userfolder%\%year%%month%%day%-%flagP%" (add_or_remove dateparts to filename, see post) IF NOT EXIST "%nwflag%" ( For /f "tokens=*" %%* in ('dir /B "%userfolder%\*%flagP%" 2^>nul') Do ( Del /F "%userfolder%\%%*" ) For /f "tokens=1*" %%i in ('net.exe use^|Find "\\"^|Find ":"') Do ( If /i "!firstline!" NEQ "done" ( > "%nwflag%" echo.%year%-%month%-%day% %ttime% %userdomain%\%username% [on %computername%] >>"%nwflag%" echo.---------------------------------------------------------------- ) Set "firstline=done" >>"%nwflag%" echo.%%i %%j ) IF NOT EXIST "%destinationfile%" echo.>>"%destinationfile%" >>"%nwflag%" echo.& >>"%nwflag%" echo. IF EXIST "%destinationfile%" ( Copy "%destinationfile%"/b + "%nwflag%"/b "%destinationfile%" ) ) del "%nwflag%" EndLocal
Ce script permet de créer un fichier par utilisateur, contenant les lecteurs réseaux, et qui est ensuite envoyé vers un share.
Pour savoir plus précisément avec quel utilisateur ils sont connectés, ce share doit se situer sur le même serveur que les share auxquels ils ont accès. Et dans ce cas, il suffit de regarder dans les permissions du fichier, et d’identifier le propriétaire du fichier, qui est dans notre cas: « sebecam2000 » sur le serveur et « Utilisateur » sur la machine client
Tags: command, drive, mapped, net use, user, Windows
Trackback from your site.