optimiser un script VB

Le
Jérôme
Bonjour,

Je viens de me mettre au script Windows, mon but est de récupérer rapidement
tous les noms des utilisateurs présents sur le réseau. Pour ce faire
j'utilise ce code (extrait) :

Set objWMIService = GetObject("winmgmts:\" & strComputer & "ootcimv2")
if err.number=0 then
Set colComputer = objWMIService.ExecQuery ("Select UserName from
Win32_ComputerSystem")
For Each objComputer in colComputer
s=s & strComputer & "=>" & objComputer.UserName & VbCrLf
Next
end if

Avec cette méthode je mets 3 à 4 minutes pour récupérer les noms de login
sur 30 machines Pas très efficace vous en conviendrez. Comment pourrais
je faire pour optimiser les 2 premières lignes, c'est à dire tester si une
machine est on-line ? Peut on mettre un timeout sur la réponse du GetObject
?

Jérôme
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
---
Le #55603
<Ceci est une formulation automatique générée par MesNews>
Ce mercredi 26/01/2005, Jérôme est intervenu dans
<Ceci est un message automatique généré par MesNews>

Bonjour,

Je viens de me mettre au script Windows, mon but est de récupérer rapidement
tous les noms des utilisateurs présents sur le réseau. Pour ce faire
j'utilise ce code (extrait) :
------------------------------
Set objWMIService = GetObject("winmgmts:\" & strComputer & "rootcimv2")
if err.number=0 then
Set colComputer = objWMIService.ExecQuery ("Select UserName from
Win32_ComputerSystem")
For Each objComputer in colComputer
s=s & strComputer & "=>" & objComputer.UserName & VbCrLf
Next
end if
------------------------------
Avec cette méthode je mets 3 à 4 minutes pour récupérer les noms de login sur
30 machines... Pas très efficace vous en conviendrez. Comment pourrais je
faire pour optimiser les 2 premières lignes, c'est à dire tester si une
machine est on-line ? Peut on mettre un timeout sur la réponse du GetObject ?

Jérôme


En affinant votre requête WQL sans doute (consulter la doc de la classe
que vous utilisez).

--
888
AJOUT DE FICHIER
AJOUT DE FICHIER

Jean
Le #55602
Bonjour,

En affinant votre requête WQL sans doute (consulter la doc de la classe que vous utilisez).

Amicalement,

Jean - JMST
Belgium

"Jérôme"
Bonjour,

Je viens de me mettre au script Windows, mon but est de récupérer rapidement tous les noms des utilisateurs présents sur le
réseau. Pour ce faire j'utilise ce code (extrait) :
------------------------------
Set objWMIService = GetObject("winmgmts:\" & strComputer & "rootcimv2")
if err.number=0 then
Set colComputer = objWMIService.ExecQuery ("Select UserName from Win32_ComputerSystem")
For Each objComputer in colComputer
s=s & strComputer & "=>" & objComputer.UserName & VbCrLf
Next
end if
------------------------------
Avec cette méthode je mets 3 à 4 minutes pour récupérer les noms de login sur 30 machines... Pas très efficace vous en
conviendrez. Comment pourrais je faire pour optimiser les 2 premières lignes, c'est à dire tester si une machine est on-line ?
Peut on mettre un timeout sur la réponse du GetObject ?

Jérôme



Poster une réponse
Anonyme