OVH Cloud OVH Cloud

Supervision de PC en VBS / WSH

7 réponses
Avatar
GOWAP
Bonjour,

je voudrais supperviser mes serveurs et postes du réseau WAN. J'avais pensé
au début a du VBA sous Excel, mais un script en VBScript me semple
préférable pour une execution planifié.

Quelqu'un aurait-il du code VBS / WSH pour faire des résolutions de nom (DNS
HostByName / HostByIp) et des Ping.

Dans un seconde temps, je regarderais comment obtenir la charge CPU, l'état
de service comme le "spooler" (qui passe parfois a 100% a cause du LPR).

Cordialement,
GOWAP

7 réponses

Avatar
Jacques Barathon [MS]
"GOWAP" wrote in message
news:44b8e4ed$0$18118$
Bonjour,

je voudrais supperviser mes serveurs et postes du réseau WAN. J'avais
pensé au début a du VBA sous Excel, mais un script en VBScript me semple
préférable pour une execution planifié.

Quelqu'un aurait-il du code VBS / WSH pour faire des résolutions de nom
(DNS HostByName / HostByIp) et des Ping.


Tu peux jeter un oeil à l'exemple que j'ai publié sur mon blog il y a
plusieurs semaines:
http://janel.spaces.msn.com/blog/cns!9B5AA3F6FA0088C2!180.entry

Il s'agit d'un script en PowerShell, mais les classes .NET utilisées peuvent
être adaptées dans un script VBScript ou autre.

Dans un seconde temps, je regarderais comment obtenir la charge CPU,
l'état de service comme le "spooler" (qui passe parfois a 100% a cause du
LPR).


Bon courage. Tiens-nous au courant de tes progrès.

Jacques

Avatar
GOWAP
Il n'y a rien chez les développer VB qui eux utilise autre chose. C'est du
script que j'ai besoin ! du VBA, VBS, WSH et non pas un EXE.
Si quelqu'un a une solution pour avoir les IP, les Nom DNS, avec les
nouvelles fonction ActiveX .Net accessible en VBA/VBS et surtout un exemple
de code, qu'il n'hésite pas a le publier ici.

Merci
GOWAP


"Jacques Barathon [MS]" a écrit dans le
message de news:
"GOWAP" wrote in message
news:44b8e4ed$0$18118$
Bonjour,

je voudrais supperviser mes serveurs et postes du réseau WAN. J'avais
pensé au début a du VBA sous Excel, mais un script en VBScript me semple
préférable pour une execution planifié.

Quelqu'un aurait-il du code VBS / WSH pour faire des résolutions de nom
(DNS HostByName / HostByIp) et des Ping.


Tu peux jeter un oeil à l'exemple que j'ai publié sur mon blog il y a
plusieurs semaines:
http://janel.spaces.msn.com/blog/cns!9B5AA3F6FA0088C2!180.entry

Il s'agit d'un script en PowerShell, mais les classes .NET utilisées
peuvent être adaptées dans un script VBScript ou autre.

Dans un seconde temps, je regarderais comment obtenir la charge CPU,
l'état de service comme le "spooler" (qui passe parfois a 100% a cause du
LPR).


Bon courage. Tiens-nous au courant de tes progrès.

Jacques





Avatar
Jacques Barathon [MS]
"GOWAP" <gowap@@@fr.fm> a écrit dans le message de news:
OSBx$
Il n'y a rien chez les développer VB qui eux utilise autre chose. C'est du
script que j'ai besoin ! du VBA, VBS, WSH et non pas un EXE.
Si quelqu'un a une solution pour avoir les IP, les Nom DNS, avec les
nouvelles fonction ActiveX .Net accessible en VBA/VBS et surtout un
exemple de code, qu'il n'hésite pas a le publier ici.


As-tu regardé le code que j'ai fourni en exemple dans ma réponse? Tu peux
reprendre en VBScript les classes .NET utilisées.

Jacques

Avatar
GOWAP
Hum, ton code est un ping.exe appelé par le Shell. Donc ca ne réponde pas a
la question (gestion des multi-cartes, problème de cache DNS sur la machine,
IP multiple liée au nom DNS (cluster), etc.)
Et je ne connais pas du tous PowerShell.

Le WSH / VBScript ne peut (semble-t-il) pas atteindre de DLL directement
(j'ai pas trouvé de contre exemple).
Il faudrait donc passer par les WMI.

Pour l'accès en DLL, le VBA fonctionne, mais depuis l'XPsp2, la wsock32.dll
(remplacé par la ws2_32.dll) ne fonctionne plus. J'ai fais un message sur ce
problème, mais personne ne semble avoir de solution (l'exemple consiste a
ouvrir un socket avec la méthode WSAStartup et de regarder le contenu de
szDescription, wHighVersion et wVersion : elle reste vide - la méthode
n'existe plus !).

Je ne parle pas de VB : merci de ne pas répondre avec des codes qui ne
fonctionne pas en Script ! Je précis cela, car je ne trouve sur le Net que
du code VB en réponse au problème soulevé aussi par d'autre administrateur.

Merci dans tous les cas de l'aide et des propositions autour de ce problème.

GOWAP


"Jacques Barathon [MS]" a écrit dans le
message de news:
"GOWAP" wrote in message
news:44b8e4ed$0$18118$
Bonjour,

je voudrais supperviser mes serveurs et postes du réseau WAN. J'avais
pensé au début a du VBA sous Excel, mais un script en VBScript me semple
préférable pour une execution planifié.

Quelqu'un aurait-il du code VBS / WSH pour faire des résolutions de nom
(DNS HostByName / HostByIp) et des Ping.


Tu peux jeter un oeil à l'exemple que j'ai publié sur mon blog il y a
plusieurs semaines:
http://janel.spaces.msn.com/blog/cns!9B5AA3F6FA0088C2!180.entry

Il s'agit d'un script en PowerShell, mais les classes .NET utilisées
peuvent être adaptées dans un script VBScript ou autre.

Dans un seconde temps, je regarderais comment obtenir la charge CPU,
l'état de service comme le "spooler" (qui passe parfois a 100% a cause du
LPR).


Bon courage. Tiens-nous au courant de tes progrès.

Jacques





Avatar
Jacques Barathon [MS]
"GOWAP" <gowap@@@fr.fm> a écrit dans le message de news:
%
Hum, ton code est un ping.exe appelé par le Shell. Donc ca ne réponde pas
a la question (gestion des multi-cartes, problème de cache DNS sur la
machine, IP multiple liée au nom DNS (cluster), etc.)


???

Je n'appelle pas du tout ping.exe. Il s'agit d'un appel à des méthodes de
classes réseau du framework .NET, notamment la méthode GetHostEntry() de la
classe System.Net.DNS pour la résolution d'adresse ou de nom. Cette méthode
remplace les méthodes GetHostByName et GetHostByIP que tu citais, signalées
dans la doc du framework comme obsolètes. Pour le ping, j'utilise la classe
System.Net.NetworkInformation.Ping.

Quant à la gestion des multi-cartes, problèmes de cache DNS, etc, je t'ai
fourni une base de recherche, à toi de décider de ce que tu fais des
résultats en fonction de ton besoin. Si tu veux une réponse plus précise,
fournis une description plus précise! Je te rappelle l'expression de ton
besoin au départ (le 15/07):

--- début de citation ---
je voudrais supperviser mes serveurs et postes du réseau WAN. J'avais pensé
au début a du VBA sous Excel, mais un script en VBScript me semple
préférable pour une execution planifié.

Quelqu'un aurait-il du code VBS / WSH pour faire des résolutions de nom (DNS
HostByName / HostByIp) et des Ping.
--- fin de citation ---

Et je ne connais pas du tous PowerShell.


C'est peut-être l'occasion de t'y mettre? :-)

Le WSH / VBScript ne peut (semble-t-il) pas atteindre de DLL directement
(j'ai pas trouvé de contre exemple).
Il faudrait donc passer par les WMI.


Le modèle des DLL n'est pas conçu au départ pour être utilisé dans des
scripts, pas très étonnant que tu ne puisses pas faire grand chose de
performant en la matière (même s'il existe des moyens d'appeler des DLL,
notamment via des ActiveX, je n'ai pas testé).

C'est sûr que WMI est l'interface privilégiée pour accéder aux informations
d'un système Windows. Si je reprends ton "cahier des charges" du début (voir
plus haut), tu devrais pouvoir obtenir toutes tes infos avec WMI.

Pour l'accès en DLL, le VBA fonctionne, mais depuis l'XPsp2, la
wsock32.dll (remplacé par la ws2_32.dll) ne fonctionne plus. J'ai fais un
message sur ce problème, mais personne ne semble avoir de solution
(l'exemple consiste a ouvrir un socket avec la méthode WSAStartup et de
regarder le contenu de szDescription, wHighVersion et wVersion : elle
reste vide - la méthode n'existe plus !).


Curieux, MSDN mentionne toujours cette méthode comme faisant partie de
ws2_32.dll:
http://windowssdk.msdn.microsoft.com/en-us/library/ms742213.aspx

Jacques

Avatar
Fred
dans : news:,
Jacques Barathon [MS] écrivait :

Il s'agit d'un script en PowerShell, mais les classes .NET utilisées
peuvent être adaptées dans un script VBScript ou autre.


Bonjour Jacques,

Ne faut-il pas écrire des wrappers pour les rendre visibles par com ?
Va vraiment falloir que je me mette au PowerShell :-D

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT

Avatar
Jacques Barathon [MS]
"Fred" a écrit dans le message de news:

dans : news:,
Jacques Barathon [MS] écrivait :

Il s'agit d'un script en PowerShell, mais les classes .NET utilisées
peuvent être adaptées dans un script VBScript ou autre.


Bonjour Jacques,

Ne faut-il pas écrire des wrappers pour les rendre visibles par com ?


En effet. J'avais à l'esprit que l'utilisation de ces classes était possible
en direct dans vbscript, mais ce n'est apparemment pas le cas.

Va vraiment falloir que je me mette au PowerShell :-D


Hé oui ! D'autant que la RC2 (prévue dans quelques semaines) devrait avoir
une version française, une bonne raison supplémentaire de s'y mettre. ;-)

Jacques