Invité Invité
| Sujet: gestion de disques Mer 30 Sep 2009 - 23:14 | |
| Avec l'utilisation de différentes clés USB qui peuvent changer de lettre, ou de portabilité des programmes sur un autre ordi, est-ce qu'il est prévu dans la to-liste une commande qui permette de savoir les noms des lecteurs de disque présents. ça serait bien utile. Merci A+ |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: gestion de disques Mer 30 Sep 2009 - 23:49 | |
| C'est vrai que ça manque une commande pour savoir quels sont les volumes qui sont montés, et sur quoi (disques externes, clés usb, cartes mémoire, etc), mais ce n'est pas très facile apparemment. Personnellement je m'en sors en utilisant un script vbs que j'appelle avec Execute, qui me donne le résultat dans un fichier que j'exploite ensuite dans Panoramic. Si tu es pressé et que tu ne peux pas attendre la commande hypothétique de Panoramic, je pourrai te le passer. En attendant, je vais me coucher, bonne nuit ! | |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: gestion de disques Jeu 1 Oct 2009 - 11:10 | |
| A la demande générale (!), voici le script vbs: - Code:
-
' ---------------------------------------------------------- ' Script donnant les caractéristiques des disques de l'ordinateur ' -> Z:\Volumes.txt ' ---------------------------------------------------------- typeD=Array("Inconnu","Amovible","Fixe","Réseau","CD-ROM","RAM Disk") Dim net, shell, computer, fso, WMISet,oWinnt
Dim fst, fichier Set fst = CreateObject("Scripting.FileSystemObject") Set fichier = fst.CreateTextFile("Z:\Volumes.txt")
Set net = Wscript.CreateObject("WScript.Network") Set shell = WScript.CreateObject("WScript.Shell") Set fso = WScript.CreateObject("Scripting.FileSystemObject")
computer=net.ComputerName InfosDisques Computer wscript.quit
'-------------------------------------------------------------------- Sub InfosDisques(computer) set WMISet = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & Computer).ExecQuery _ ("SELECT * FROM Win32_LogicalDisk") Message=VBCRLF Message=Message & " | " & FormatStrL("Nom",11) & " | " & FormatStrL("Type",8) Message=Message & " | " & FormatStrL("Système",8) Message=Message & " | " & FormatStrL(" Taille (Mo) ",17) Message=Message & " | " & FormatStrL(" % ",3) Message=Message & " | " & FormatStrL("N°série",8) Message=Message & VBCRLF Message=Message & " | " & FormatStrL("",11) & " | " & FormatStrL("",8) Message=Message & " | " & FormatStrL("",8) Message=Message & " | " & FormatStrR("Maxi",7) & " | " & FormatStrR("Libre",7) Message=Message & " | " & FormatStrL("lib",3) Message=Message & " | " Message=Message & VBCRLF Message=Message & "---+-------------+----------+----------+---------+---------+-----+---------" Message=Message & VBCRLF CumulTotal=0 CumulAvail=0 Mega=1048576 For each Disk in WMISet Capa=Disk.Size Desc=TypeD(Disk.DriveType-1) If Capa<>"" Then Name=Disk.VolumeName Serial=Disk.VolumeSerialNumber TT=int(cdbl(Capa)/mega) TL=int(cdbl(Disk.FreeSpace)/mega) Syst=Disk.FileSystem If TT>0 Then pc=int(TL*100/TT) Else pc="" End If If Disk.DriveType=3 Then CumulTotal=CumulTotal+TT CumulAvail=CumulAvail+TL End If Else Name="" Serial="" TT="" TL="" Syst="non prêt" pc="" End If Message=Message & Disk.Name & " | " & FormatStrL(name,11) & " | " & FormatStrL(Desc,8) Message=Message & " | " & FormatStrL(syst,8) Message=Message & " | " & FormatStrR(TT,7) & " | " & FormatStrR(TL,7) Message=Message & " | " & FormatStrR(pc,3)& " | " & Serial Message=Message & VBCRLF Next Message=Message & "---+-------------+----------+----------+---------+---------+-----+---------" Message=Message & VBCRLF Message=Message & " | " & FormatStrL("TOTAL fixes",11) & " | " & FormatStrL("",8) Message=Message & " | " & FormatStrL("",8) Message=Message & " | " & FormatStrR(CumulTotal,7) & " | " & FormatStrR(CumulAvail,7) Message=Message & " | " & FormatStrR(int(CumulAvail*100/CumulTotal),3) Message=Message & " | " & VBCRLF
fichier.WriteLine (Message) fichier.Close End Sub '-------------------------------------------------------------------- Function FormatStrL(ch,lmax) l=len(ch) If l<lmax Then For k = l+1 To lmax ch=ch & " " Next End If FormatStrL=ch End Function '-------------------------------------------------------------------- Function FormatStrR(ch,lmax) l=len(ch) If l<lmax Then For k = l+1 To lmax ch=" " & ch Next End If FormatStrR=ch End Function '-------------------------------------------------------------------- Mode d'emploi: Enregistrer le texte ci-dessus dans un fichier avec l'extension .vbs Chez moi il est avec mes utilitaires dans C:\Util\vol.vbs Il suffit de taper "vol.vbs" en ligne de commande, ou de lancer le vol.vbs à partir d'une commande Execute. le résultat sera à récupérer dans un fichier, pour moi ici "Z:\Volumes.txt" mais on peut mettre ce qu'on veut, il suffit de modifier la ligne 10 'Set fichier = ..." Exemple de résultat (contenu du fichier): - Code:
-
| Nom | Type | Système | Taille (Mo) | % | N°série | | | | Maxi | Libre | lib | ---+-------------+----------+----------+---------+---------+-----+--------- C: | ACER_JEAN | Fixe | NTFS | 147756 | 109784 | 74 | D8E5A4CE D: | DATA | Fixe | NTFS | 147492 | 141830 | 96 | C4B632A1 E: | | CD-ROM | non prêt | | | | F: | | Amovible | non prêt | | | | G: | CFLASH-64 | Amovible | FAT | 61 | 54 | 88 | H: | | Amovible | non prêt | | | | I: | | Amovible | non prêt | | | | J: | SANDISK8G | Amovible | FAT32 | 7654 | 7570 | 98 | 08543ED0 K: | | CD-ROM | non prêt | | | | L: | LaCie_500G | Fixe | NTFS | 476937 | 300774 | 63 | 38950BD0 Z: | MS-RAMDRIVE | RAM Disk | FAT | 30 | 30 | 100 | 12345678 ---+-------------+----------+----------+---------+---------+-----+--------- | TOTAL fixes | | | 772185 | 552388 | 71 | ici on voit les deux partitions de mon disque dur (C: et D:), une carte mémoire compact flash montée (G:), une clé usb de 8G (J:), un disque dur externe (L:) et le disque virtuel de 32M créé en mémoire (Z:). Il suffit donc de lire ensuite ce fichier par programme et d'en extraire les infos intéressantes, puis de le détruire éventuellement. Exemple d'utilisation avec Panoramic: - Code:
-
Dim a$
Execute "C:\Util\vol.vbs" Wait 800 File_Open_Read 1, "Z:\Volumes.txt" While File_Eof(1) = 0 File_ReadLn 1, a$ Print a$ End_While File_Delete "Z:\Volumes.txt" -> affichage à l'écran de tous les volumes montés avec leurs caractéristiques. Le 'wait' semble indispensable parce que l'Execute rend la main alors que le fichier n'est pas encore créé physiquement. | |
|
Invité Invité
| Sujet: Re: gestion de disques Jeu 1 Oct 2009 - 14:12 | |
| Merci beaucoup, c'est très sympa de ta part. A+ |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: gestion de disques Jeu 1 Oct 2009 - 16:24 | |
| Y'a pas de quoi, c'est un plaisir | |
|
Contenu sponsorisé
| Sujet: Re: gestion de disques | |
| |
|