Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

wmisu

7 réponses
Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
Bonsoir !

J'ai l'immense, et grandiloquent, plaisir de vous annoncer WMISU.EXE
Il s'agit d'un (tout) petit utilitaire permettant de récupérer une
information de WMI, en invite de commande. Avec une utilisation facile
dans un Batch.

Certes, il existe déjà WMIC, en standard dans Windows, depuis longtemps.
Mais WMIC, bien que puissant, est affreusement complexe.

Pour WMISU, j'ai simplifié à mort. Je suis parti du principe que WMI
sert le plus souvent sur le poste local, et pour voir des informations.
Donc, exit les accès distants, les affectations de valeurs, ou la
personnification (on travaille avec l'utilisateur courant). WMISU sert à
visualiser (d'ailleurs, le nom est la contraction de WMI + VISU).

Le résultat est un utilitaire de 10 ko, téléchargeable ici :
http://mclaveau.com/gvrac


Quelques exemples d'utilisation:
wmisu Win32_Process CommandLine "Name='iexplore.exe'"
donne la ligne de commande qui a servi à lancer
Internet-Explorer (qui doit être lancé)

wmisu Win32_DiskDrive SerialNumber
donne le n° de série des disques durs

wmisu Win32_BIOS Caption
donne le nom du Bios

wmisu Win32_BIOS Manufacturer
donne le nom du constructeur

wmisu Win32_ComputerSystem
donne la liste des propriétés de la classe
Win32_ComputerSystem

wmisu
donne la liste des classes



@-salutations
--
Michel Claveau

7 réponses

Avatar
Jean-Claude BELLAMY
"MCI (ex do ré Mi chel la si do) [MVP]" a
écrit dans le message de news:
Bonsoir !

J'ai l'immense, et grandiloquent, plaisir de vous annoncer WMISU.EXE
Il s'agit d'un (tout) petit utilitaire permettant de récupérer une
information de WMI, en invite de commande. Avec une utilisation facile
dans un Batch.



Très sympa tout çà, mon petit Michel, merci, mais .. euh ... excuse-moi de
te demander pardon, quand je le lance sans paramètre ou avec "/?" ,
j'obtiens cette injure :

Exception non gérée : System.Runtime.InteropServices.COMException
(0x80041021):
Exception de HRESULT : 0x80041021
à Microsoft.JScript.LateBinding.Call(Object[] arguments, Boolean
construct, Boolean brackets, VsaEngine engine)
à JScript 0.Global Code()
à JScript Main.Main(String[] )

Avoue que çà la fout mal, surtout un Vendredi 13 veille de la St Valentin
!!!! ;-)
(Ne cherche pas, çà n'a aucun rapport! ;-))

Mais heureusement, quand on est plus "conforme au bon goût", cela
fonctionne bien ! :-)

En exécutant :
wmisu Win32_AccountSID Element
j'ai bien obtenu la liste de tous les comptes et groupes de ma babasse

En exécutant :
wmisu Win32_AccountSID Setting
j'ai bien obtenu la liste de tous les SID


MAIS en exécutant :
wmisu Win32_AccountSID setting element (j'espérais bêtement un panachage
des 2 commandes précédentes, ce que je fais dans mon script "name2sid.wsf"),
je me suis goinfré une injure analogue à la précédente, mais avec le code
0x80041017 cette fois-ci !
Exception non gérée : System.Runtime.InteropServices.COMException
(0x80041017):
Exception de HRESULT : 0x80041017
...

Bon, c'est tout, tu en fais ce que tu veux, moi ce que j'en dis, hein , ...
En tout cas, il est bien pratique ton utilitaire !
Et faire tenir çà en 10 ko ...

Une taille aussi réduite, çà m'évoque une apprentie danseuse à l'Opéra de
Paris !
Ben oui, c'est un ... "p'tit rat, wmisu" !

OK, ..., je sors ! ;-)


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
Avatar
Lognoul Marc [MVP]
J'imagine que si vous n'appréciez que modérément WMIC, PouvoirCoquille ne
vous intéressera pas: gwmi -class Win32_AccountSID| Select setting,element

--
Marc [MCSE, MCTS, MVP]
[Heureux celui qui a pu pénétrer les causes secrètes des choses]
[Blog: http://www.marc-antho-etc.net/blog/]

"Jean-Claude BELLAMY" wrote in message
news:
"MCI (ex do ré Mi chel la si do) [MVP]"
a écrit dans le message de news:
Bonsoir !

J'ai l'immense, et grandiloquent, plaisir de vous annoncer WMISU.EXE
Il s'agit d'un (tout) petit utilitaire permettant de récupérer une
information de WMI, en invite de commande. Avec une utilisation facile
dans un Batch.



Très sympa tout çà, mon petit Michel, merci, mais .. euh ... excuse-moi de
te demander pardon, quand je le lance sans paramètre ou avec "/?" ,
j'obtiens cette injure :

Exception non gérée : System.Runtime.InteropServices.COMException
(0x80041021):
Exception de HRESULT : 0x80041021
à Microsoft.JScript.LateBinding.Call(Object[] arguments, Boolean
construct, Boolean brackets, VsaEngine engine)
à JScript 0.Global Code()
à JScript Main.Main(String[] )

Avoue que çà la fout mal, surtout un Vendredi 13 veille de la St Valentin
!!!! ;-)
(Ne cherche pas, çà n'a aucun rapport! ;-))

Mais heureusement, quand on est plus "conforme au bon goût", cela
fonctionne bien ! :-)

En exécutant :
wmisu Win32_AccountSID Element
j'ai bien obtenu la liste de tous les comptes et groupes de ma babasse

En exécutant :
wmisu Win32_AccountSID Setting
j'ai bien obtenu la liste de tous les SID


MAIS en exécutant :
wmisu Win32_AccountSID setting element (j'espérais bêtement un
panachage des 2 commandes précédentes, ce que je fais dans mon script
"name2sid.wsf"), je me suis goinfré une injure analogue à la précédente,
mais avec le code 0x80041017 cette fois-ci !
Exception non gérée : System.Runtime.InteropServices.COMException
(0x80041017):
Exception de HRESULT : 0x80041017
...

Bon, c'est tout, tu en fais ce que tu veux, moi ce que j'en dis, hein ,
...
En tout cas, il est bien pratique ton utilitaire !
Et faire tenir çà en 10 ko ...

Une taille aussi réduite, çà m'évoque une apprentie danseuse à l'Opéra de
Paris !
Ben oui, c'est un ... "p'tit rat, wmisu" !

OK, ..., je sors ! ;-)


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org



Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
Re !

si vous n'appréciez que modérément WMIC



En fait, 9 fois sur 10, il s'agit juste de gérer une information. Et,
après avoir galéré pour trouver la syntaxe WMIC, il faut encore jongler
avec les FOR, TOKENS, FIND, pour extraire juste ce que l'on veut.

C'est pour cela que j'ai fait WMISU. Sachant que, pour les (rares) cas
plus complexes, WMIC est toujours là.


PouvoirCoquille



Voilà un surnom bien trouvé.
En fait, je n'arrive pas à accrocher avec PS. Certes, c'est un langage
puissant, et relativement bien conçu. Mais :
- Il est trop statique. Par exemple, on ne peut pas utiliser les
objets COM dynamiques, chose immédiate avec VBscript ou JScript (même
si j'ai trouvé un moyen, tordu, de le faire avec PS).
- Il est assez difficile à utiliser depuis un autre langage/logiciel.
Alors que les batchs ne posent aucun problème.
- Il n'est pas utilisable pour créer des objets (serveurs) COM. Il
n'est pas, non plus, utilisable comme langage ActiveScripting (comme
VBScript, JScript, Python, etc. dans un HTA, par exemple).
- Il n'est pas aussi facile que batch pour lancer des applications
externes.

Finalement, PS est plus puissant que batch, moins qu'un vrai langage,
mais beaucoup moins souple que Batch, VBScript, Python...


--
@-salutations
--
Michel Claveau
Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
Bonsoir !

Tu as tout à fait raison, sur tous les points.

En effet :
- Au départ, j'ai fait cet outil pour moi, uniquement pour récupérer
facilement et rapidement des informations dans des batchs. Donc il n'y a
ni message d'aide, ni contrôle des paramètres, ni gestion des erreurs
(je n'en ai pas besoin).
- Ce n'est qu'ensuite que je me suis dit que cela pourrait intéresser
d'autres utilisateurs.


un ... "p'tit rat, wmisu"



Celle là, il fallait la trouver ! Et avant le repas et le floc, en
plus...

@+
--
Michel Claveau
Avatar
Lognoul Marc [MVP]
Salut,

En fait, 9 fois sur 10, il s'agit juste de gérer une information. Et,
après avoir galéré pour trouver la syntaxe WMIC, il faut encore jongler
avec les FOR, TOKENS, FIND, pour extraire juste ce que l'on veut.

C'est pour cela que j'ai fait WMISU. Sachant que, pour les (rares) cas
plus complexes, WMIC est toujours là.


Oui, c'est exact, WMI reste un EXE à intégrer la plupart du temps dans du
batch. Mais malgré sa complexité de premier abord, il est en fait très
simple à l'usage.

En fait, je n'arrive pas à accrocher avec PS. Certes, c'est un langage
puissant, et relativement bien conçu. Mais :
- Il est trop statique. Par exemple, on ne peut pas utiliser les objets
COM dynamiques, chose immédiate avec VBscript ou JScript (même si j'ai
trouvé un moyen, tordu, de le faire avec PS).


Tu aurais qq exemples? il y a peu de choses impossibles en .Net au niveau de
l'interopérabilité avec COM

- Il est assez difficile à utiliser depuis un autre langage/logiciel.


Tu veux dire à lancer via une ligne de commande? tout le monde disait ça de
WSH au début aussi. Je trouve Posh à la limite plus facile, surtout que l'on
peut éxécuter une commande unique à partir d'un batch, chose impossible en
WSH
Alors que les batchs ne posent aucun problème.
- Il n'est pas utilisable pour créer des objets (serveurs) COM. Il n'est
pas, non plus, utilisable comme langage ActiveScripting (comme VBScript,
JScript, Python, etc. dans un HTA, par exemple).


Par contre, c'est vrai que cela serait simpa d'avoir un interpreteur Posh
dans IE, pour les HTA et les gadgets ;)

- Il n'est pas aussi facile que batch pour lancer des applications
externes.


Là encore une fois, c'est une affaire d'habitude, que de galères au début
avec WSH...

As tu déjà joué avec ça? http://powershelltoys.com/

--
Marc [MCSE, MCTS, MVP]
[Heureux celui qui a pu pénétrer les causes secrètes des choses]
[Blog: http://www.marc-antho-etc.net/blog/]
Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
Bonsoir !


on ne peut pas utiliser les objets COM dynamiques,


Tu aurais qq exemples ? il y a peu de choses impossibles en .Net au
niveau de l'interopérabilité avec COM



Ponx, qui le principal outil que j'ai développé ces dernières années.
http://ponx.org/ponx (le site n'est pas à jour, sauf l'installation en
ligne qui fonctionne bien).

En fait, PowerShell utilise les TLB (TypeLiBrary) qui décrivent les
fonctions (publiques) de certains serveurs COM. Or, les serveur COM
dynamiques ne peuvent avoir de TLB, car les fonctions peuvent être (re-)
définies durant l'exécution.
Dans ces cas là, en C#, on utilise le "Late-Binding". Mais cette techno
n'existe pas pour PS.
La solution que j'ai trouvée, c'est de piloter ScriptControl depuis PS,
qui va programmer l'accès à l'objet cOM dynamique en VBScript ou
JScript.


Il est assez difficile à utiliser depuis un autre langage/logiciel.


Tu veux dire à lancer via une ligne de commande ?



En fait, dans certains logiciels, je "enveloppe" (wrappe) des batchs,
des commandes, des logiciels console. En récupérant les résultats sur
STDOUT, et, dans certains cas, en envoyant la suite sur STDIN.
Le peu d'essais que j'ai tentés avec PS n'a pas abouti.
Juste un exemple pour le fun : j'ai remarqué que, avec beaucoup de
langage, il était plus rapide de récupérer le résultat d'un DIR *.JPG
/B /S que de faire la même choses nativement avec le langage.

Par contre, c'est vrai que cela serait simpa d'avoir un interpreteur
Posh dans IE, pour les HTA et les gadgets ;)



Pour les gagdets, il existe un truc, payant (gratuit pour les PVP),
Power-Gadget.
Pour HTA et IE, il y a une technologie toute prête, chez MS :
Active-Scripting. Mais, je soupçonne Microsoft de vouloir la laisser
tomber. Car ça fait plusieurs années qu'il n'y a pas eu d'évolutions
(autres que des restrictions).


As tu déjà joué avec ça? http://powershelltoys.com/



Non. Pas essayé. Et, j'ai tellement de choses en cours, que je ne suis
pas près de m'y intéresser...


@-salutations
--
Michel Claveau
Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
Bonsoir !

Juste pour préciser que Gilles Laurent vient de sortir un utilitaire qui
fait la même chose que wmisu, mais en mieux.
Les coordonnées :
GetWMIProperty :
http://glsft.free.fr/index.php?option=com_content&task=view&idp&Itemid( Claveau