IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

[WMI] répertorier les disques d'une machine


Sujet :

Windows

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 61
    Points : 43
    Points
    43
    Par défaut [WMI] répertorier les disques d'une machine
    Bonjour,

    Dans le cadre de mon application, je dois répertorier les disques de ma machine. Par exemple, j'aimerais savoir si le lecteur de disquette contient une disquette. En fait, mon but est de récupérer tous les systèmes de fichier de ma machine.

    J'arrive déjà à récupérer les lecteurs de disque de ma machine mais pas à récupérer uniquement les lecteurs contenant des données. L'instruction que j'utilise est la requête WQL:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from Win32_LogicalDisk
    C'est la première fois que j'utilise WMI et je suis un peu perdu dans la doc. Si quelqu'un pouvait m'éclairer, je suis un peu en galère!!!

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    alors le WMI ne lit pas les disquettes, de 1
    de 2, il ne donne pas à ma connaissance le systeme de fichiers.

    une fois que tu as fait ta requete WQL, il est très facile de connaitre le type de disque logique que c'est.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * From Win32_LogicalDisk where DriveType=3
    disque dur

    type 5 pour cdrom
    type 2 pour disquette
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 61
    Points : 43
    Points
    43
    Par défaut
    Il me semble que le WMI peut déteminer le système de fichier. En tout cas, j'ai pu le tester pour NTFS.

    De plus, je ne cherche pas à lire ma disquette mais à voir si elle est dans le lecteur.

    J'ai trouvé une classe WMI qui permet de récupérer les disques possèdant un système de fichier:
    Win32_LogicalDiskRootDirectory
    C'est exactement ce que je voulais.

    Par contre, j'arrive à récupérer la propriété GroupComponent qui est une instance de la classe Win32_LogicalDisk. Maintenant, je souhaite récupérer la propriété "Name" de la classe Win32_LogicalDisk et là, je n'y arrive pas.

    Précision: Je développe en C#. Voilà, l'instruction pour récupérer mon GroupComponent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    requete=new ObjectQuery("select * from Win32_LogicalDiskRootDirectory");
    			test_lecteur.Query=requete;
    			collect=test_lecteur.Get();	
    			foreach (ManagementObject drive in collect) 
    			{ 
    				disques.Add(drive["GroupComponent"].ToString()); 
    			}
    J'ai essayé GroupComponent.Name mais ça ne marche pas. Pour résumé, j'aimerais accéder à la proprité d'un objet qui est déjà une propriété d'une classe.

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Excusez-moi de ré-aviver cette ancienne discussion mais peut-être trouverai-je ici des réponses éclairées à mon(mes) problème(s)

    1- Je cherche à connaître la localisation physique de mes disques.
    J'ai utilisé "GetDriveType" mais cette fonction retourne"DRIVE_FIXED"
    que se soit un disque dur interne au PC ou un disque dur externe USB
    situation que je cherche à pouvoir résoudre.
    2- Connaître sur quel disque physique ( Interne, USB, Réseau, ...) se situe
    une unité logique
    donnée. En particulier savoir si le répertoire de travail
    d'une application est localisé sur un des disques internes du PC ou si
    elle elle localisée sur un disque USB, sur un disque réseau, sur une clef
    USB, ..

    Pour info : Je programme avec Borland C++ 6.0 OS: XP SP2 et 3

    J'avais posé un post en se sens dans le forum 'Borland C' mais j'y ai pas récolté les réponses escomptées.
    Peut-être le forum API Window est-il mieux ciblé!!

    Note: Je n'ai pas vu que WMI / Win32_LogicalDisk et/ou Win32_DiskDrive permettait de résoudre de façon sure la situation qui me préoccupe

    MERCI pour vos réponses!

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    En ce qui concerne le point 2

    il me semble avoir trouvé un élément de solution avec

    WMI / "Win32_LogicalDiskToPartition"

    qui retourne le Numéro d'un disque sous forme #0, #1, ... avec le N° de la partition sous forme #0, #1, ... ceci pour chaque lecteur logique.

    Il me faut encore vérifier le liee entre x de 'disque #x' et le x de
    Name = PHYSICALDDRIVEx reçu pour la requête
    WMI / "Win32_DiskDrive"

    Je pourrais de plus tester ces valeurs avec lecteurs réseau et HD USB Externe que demain.

    Mon intérogation N° 1 reste encore sans solution

  6. #6
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    regarde les associations à l'aide des outils WMI. Et sur le forum "Associator OF".

Discussions similaires

  1. Lister les fichiers sur une machine réseau
    Par WerKa dans le forum Général Java
    Réponses: 2
    Dernier message: 12/05/2008, 14h24
  2. Réponses: 2
    Dernier message: 11/04/2008, 10h53
  3. Lister les processus d'une machine sur un réseau local
    Par Grosbenji dans le forum Windows
    Réponses: 2
    Dernier message: 29/11/2007, 17h59
  4. [D6] Lister les lecteurs d'une machine
    Par Lucien dans le forum Delphi
    Réponses: 3
    Dernier message: 19/09/2006, 15h49
  5. [reseaux] Lister les processus sur une machine donnée
    Par BEAUJAULT dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 29/07/2004, 15h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo