WMI : vérifier l'existance d'un répertoire

Résolu
krishou Messages postés 60 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 21 août 2008 - 3 avril 2006 à 14:09
krishou Messages postés 60 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 21 août 2008 - 3 avril 2006 à 16:24
Voilà le bout de code que j'ai écrit afin de savoir si un répertoire existe sur la machine distante.
La connexion WMI fonctionne nickel. La requête par contre semble être éronnée.
Le message de l'exception est : "Demande non valide". Quelqu'un aurait une idée pour remédier à ce problème?

Merci d'avance

try{



ConnectionOptions CO =
new
ConnectionOptions();
CO.Username =
"administrateur";
CO.Password =
"********";

ManagementPath MP =
new
ManagementPath(
\\\\machine\\root\\cimv2);

ManagementScope MS =
new
ManagementScope(MP, CO);
MS.Connect();

ObjectQuery OQ =
new
ObjectQuery(
@"SELECT * FROM Win32_Directory where Caption like 'c:\temp'");

ManagementObjectSearcher MOS =
new
ManagementObjectSearcher(MS, OQ);

Console.WriteLine(MOS.Get().Count.ToString());

foreach (
ManagementObject MO
in MOS.Get()) {

Console.WriteLine(MO[
"Name"].ToString()); }



Console.ReadKey(
false);


}



catch (
Exception ext) {
Console.WriteLine(
"WMI Connection Failed"+ext.Message);
Console.ReadKey(
false); }

2 réponses

krishou Messages postés 60 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 21 août 2008 1
3 avril 2006 à 16:24
Le problème c'est que je récupère le path complet depuis un bdd.
Normalement, les propriétés Name et Caption des objets Directory devraient correspondre au path complet selon msnd. Après test, lorsque je fais un "where name like 'c:%'", il me sort bien tout les répertoires du disque C.... J'ai donc chercher un peu...

Le problème vient des "" qu'il faut doubler...

Merci quand même de ta réponse....
3
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
3 avril 2006 à 14:43
Peut être que ceci marchera mieux.

WHERE drive='c:' and Name LIKE 'temp'

::|The S@ib|:: MVP C#.NET
0
Rejoignez-nous