OVH Cloud OVH Cloud

WMI Comptage

4 réponses
Avatar
Christophe Charron
Bonsoir,
j'aimerais savoir si en WQL une syntaxe du genre

objWMIService.ExecQuery("SELECT count(*) FROM
Win32_InstalledSoftwareElement", "WQL",
wbemFlagReturnImmediately + wbemFlagForwardOnly)

est supportée ?
--
Cordialement
Christophe Charron

4 réponses

Avatar
Christophe Charron
Bonsoir,
j'aimerais savoir si en WQL une syntaxe du genre

objWMIService.ExecQuery("SELECT count(*) FROM
Win32_InstalledSoftwareElement", "WQL",
wbemFlagReturnImmediately + wbemFlagForwardOnly)

est supportée ?
--
Cordialement
Christophe Charron
Bonsoir,

je retente d'attirer l'attention sur ma demande. Encore une fois,
serais-je le seul et premier à vouloir compter des éléments via WQL ? Si
personne ne connait la réponse, quelqu'un sait-il s'il existe un
groupe plus particulièrement dédié au WMI ?

--
Cordialement
Christophe Charron

Avatar
Georges MAUREL
Bonjour,
Je répond à votre appel désespéré.... ; )

En fait les ExecQuery renvoi un collection d'objets donc il n'est pas
possible de mettre des instructions du style "count(*)" dans la requete
Par contre ceci fonctionne :
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!"
& strComputer & "rootcimv2")
set SoftwareSet=objWMIService.ExecQuery("SELECT * FROM
Win32_InstalledSoftwareElement", "WQL", wbemFlagReturnImmediately +
wbemFlagForwardOnly)
wscript.echo SoftwareSet.Count

Il est a noter que l'on peut aussi écrire
set SoftwareSet=objWMIService.ExecQuery("SELECT * FROM
Win32_InstalledSoftwareElement")

Je ne sais pas si la classe Win32_InstalledSoftwareElement répondra vraiment
à ce que vous souhaitez faire
Sinon, vous trouverez de bons exemples sur le site de microsoft
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_tasks__computer_software.asp
et une description de toutes les classes win32 sur
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_product.asp


Cordialement
Georges MAUREL




"Christophe Charron" a écrit dans le
message de news:
Bonsoir,
j'aimerais savoir si en WQL une syntaxe du genre

objWMIService.ExecQuery("SELECT count(*) FROM
Win32_InstalledSoftwareElement", "WQL",
wbemFlagReturnImmediately + wbemFlagForwardOnly)

est supportée ?
--
Cordialement
Christophe Charron
Bonsoir,

je retente d'attirer l'attention sur ma demande. Encore une fois,
serais-je le seul et premier à vouloir compter des éléments via WQL ? Si
personne ne connait la réponse, quelqu'un sait-il s'il existe un
groupe plus particulièrement dédié au WMI ?

--
Cordialement
Christophe Charron



Avatar
Christophe Charron
Bonsoir et merci beaucoup; cela marche parfaitement.

concernant votre remarque, j'ai lu sur l'excellentissime dicdactitiel
http://www.microsoft.com/France/msdn/technologies/technos/scripting/info/info.asp?mar=/france/msdn/technologies/technos/scripting/info/20021028_wmi-scripting_1.html
que de positionner les flags "wbemFlagReturnImmediately +
wbemFlagForwardOnly" permettait, si l'on n'avait besoin de parcourir
qu'une seule fois, d'être plus performant, tant en mémoire qu'en vitesse
, comme les curseurs des BD classiques.

Et pour finir, en effet cette classe ne m'apporte pas grand chose, heu
si plus de 15000 occurrences !!! C'est justement pour cela que je veux
compter avant, pour prevenir l'utilisateur qu'il risque de s'en prendre
plein les dents pour je ne sais quel bénéfice (je le vois mal analyser
le résultat complet).

Merci encore.

--
Cordialement
Christophe Charron

Bonjour,
Je répond à votre appel désespéré.... ; )

En fait les ExecQuery renvoi un collection d'objets donc il n'est pas
possible de mettre des instructions du style "count(*)" dans la requete
Par contre ceci fonctionne :
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!"
& strComputer & "rootcimv2")
set SoftwareSet=objWMIService.ExecQuery("SELECT * FROM
Win32_InstalledSoftwareElement", "WQL", wbemFlagReturnImmediately +
wbemFlagForwardOnly)
wscript.echo SoftwareSet.Count

Il est a noter que l'on peut aussi écrire
set SoftwareSet=objWMIService.ExecQuery("SELECT * FROM
Win32_InstalledSoftwareElement")

Je ne sais pas si la classe Win32_InstalledSoftwareElement répondra vraiment
à ce que vous souhaitez faire
Sinon, vous trouverez de bons exemples sur le site de microsoft
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_tasks__computer_software.asp
et une description de toutes les classes win32 sur
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_product.asp


Cordialement
Georges MAUREL




"Christophe Charron" a écrit dans le
message de news:


Bonsoir,
j'aimerais savoir si en WQL une syntaxe du genre

objWMIService.ExecQuery("SELECT count(*) FROM
Win32_InstalledSoftwareElement", "WQL",
wbemFlagReturnImmediately + wbemFlagForwardOnly)

est supportée ?
--
Cordialement
Christophe Charron


Bonsoir,
je retente d'attirer l'attention sur ma demande. Encore une fois,
serais-je le seul et premier à vouloir compter des éléments via WQL ? Si
personne ne connait la réponse, quelqu'un sait-il s'il existe un
groupe plus particulièrement dédié au WMI ?

--
Cordialement
Christophe Charron








Avatar
Georges MAUREL
Bonjour Christophe,
Je suis heureux d'avoir pu vous faire avancer dans vos recherches
Et merci pour votre précisions sur les paramètres supplémentaires
utilisables dans ExecQuery.
Cordialement
Georges MAUREL


"Christophe Charron" a écrit dans le
message de news:
Bonsoir et merci beaucoup; cela marche parfaitement.

concernant votre remarque, j'ai lu sur l'excellentissime dicdactitiel

http://www.microsoft.com/France/msdn/technologies/technos/scripting/info/info.asp?mar=/france/msdn/technologies/technos/scripting/info/20021028_wmi-scripting_1.html

que de positionner les flags "wbemFlagReturnImmediately +
wbemFlagForwardOnly" permettait, si l'on n'avait besoin de parcourir
qu'une seule fois, d'être plus performant, tant en mémoire qu'en vitesse
, comme les curseurs des BD classiques.

Et pour finir, en effet cette classe ne m'apporte pas grand chose, heu
si plus de 15000 occurrences !!! C'est justement pour cela que je veux
compter avant, pour prevenir l'utilisateur qu'il risque de s'en prendre
plein les dents pour je ne sais quel bénéfice (je le vois mal analyser
le résultat complet).

Merci encore.

--
Cordialement
Christophe Charron

Bonjour,
Je répond à votre appel désespéré.... ; )

En fait les ExecQuery renvoi un collection d'objets donc il n'est pas
possible de mettre des instructions du style "count(*)" dans la requete
Par contre ceci fonctionne :
strComputer = "."
Set objWMIService GetObject("winmgmts:{impersonationLevel=impersonate}!"
& strComputer & "rootcimv2")
set SoftwareSet=objWMIService.ExecQuery("SELECT * FROM
Win32_InstalledSoftwareElement", "WQL", wbemFlagReturnImmediately +
wbemFlagForwardOnly)
wscript.echo SoftwareSet.Count

Il est a noter que l'on peut aussi écrire
set SoftwareSet=objWMIService.ExecQuery("SELECT * FROM
Win32_InstalledSoftwareElement")

Je ne sais pas si la classe Win32_InstalledSoftwareElement répondra
vraiment


à ce que vous souhaitez faire
Sinon, vous trouverez de bons exemples sur le site de microsoft

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_tasks__computer_software.asp


et une description de toutes les classes win32 sur

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_product.asp




Cordialement
Georges MAUREL




"Christophe Charron" a écrit dans
le


message de news:


Bonsoir,
j'aimerais savoir si en WQL une syntaxe du genre

objWMIService.ExecQuery("SELECT count(*) FROM
Win32_InstalledSoftwareElement", "WQL",
wbemFlagReturnImmediately + wbemFlagForwardOnly)

est supportée ?
--
Cordialement
Christophe Charron


Bonsoir,
je retente d'attirer l'attention sur ma demande. Encore une fois,
serais-je le seul et premier à vouloir compter des éléments via WQL ? Si
personne ne connait la réponse, quelqu'un sait-il s'il existe un
groupe plus particulièrement dédié au WMI ?

--
Cordialement
Christophe Charron