OVH Cloud OVH Cloud

on error resume next.

3 réponses
Avatar
olivier
Bonjour,

J'ai un soucis avec la commande on error resume next.

J'ai ecrit ce script qui me liste les users du groupe local administrateur
d' un micro par :

Set oGroupe = GetObject("WinNT://"&oComputercorr &"/Administrateurs")

For Each oMembre In oGroupe.Members

wscript.echo "" & oMembre.Name

next

Cette partie de script fait également partie d'une boucle ou oComputercorr
varie.

Le script fonctionne sauf quand le Pc appellé par le Winnt:// est eteint.

J'ai alors une erreur (null) : le chemin réseau n'a pas été trouvé et le
script S 'ARRETE

Quand je lui colle un ON ERROR RESUME NEXT, il ne s'arrête plus . Mais il me
donne alors le contenu du micro d'avant pour le pc éteint.

Ce sera plus parlant avec le résultat visuel :

http://oprhardy.free.fr/go2.jpg

M355084 est eteint c onbtrairement aux autre machines. Quand je ne précise
pas "on error resume next" le script s'arrete sur un message d'erreur.

Quand je précise, il continue et me donne une info, je pense que les
variables sont restées à la valeur précédente.



Le script entier :

on error resume next

set oOU = getobject
("LDAP://c463caefr01/ou=mag,ou=cti-cae,dc=adtinet,dc=com")

for each oComputer in oOU

oComputercorr = replace(oComputer.name, "CN=", "")

wscript.echo "utilisateur du groupe administrateur: " & oComputercorr

Set oGroupe = GetObject("WinNT://"&oComputercorr &"/Administrateurs")

For Each oMembre In oGroupe.Members

wscript.echo "" & oMembre.Name

next

wscript.echo " "

next







Voilà j'ai essayé de voir avec les if err.number<>0 mais ca ne me donne
rien. Si quelqu'un peut m'aider. En fait je souhaiterais que mon script
m'indique : " Micro non joignable" quand la commande echoue et non pas me
donner des valeurs fantaisiste probablement du micro précédent.

Merci

Olivier Hardy

3 réponses

Avatar
Martin CLAVREUIL
bonjour,

vous pouvez par exemple faire :
on error resume next
[...]
set oGroupe=nothing
set oGroupe="GetObj([...])
if not(oGroupe is nothing) then
'connecté -> enumération
else
'pas connecté ->rien ou msg d'erreur
end if

"olivier" a écrit dans le message de news:
4249c500$0$11790$
Bonjour,

J'ai un soucis avec la commande on error resume next.

J'ai ecrit ce script qui me liste les users du groupe local administrateur
d' un micro par :

Set oGroupe = GetObject("WinNT://"&oComputercorr &"/Administrateurs")

For Each oMembre In oGroupe.Members

wscript.echo "" & oMembre.Name

next

Cette partie de script fait également partie d'une boucle ou oComputercorr
varie.

Le script fonctionne sauf quand le Pc appellé par le Winnt:// est eteint.

J'ai alors une erreur (null) : le chemin réseau n'a pas été trouvé et le
script S 'ARRETE

Quand je lui colle un ON ERROR RESUME NEXT, il ne s'arrête plus . Mais il
me donne alors le contenu du micro d'avant pour le pc éteint.

Ce sera plus parlant avec le résultat visuel :

http://oprhardy.free.fr/go2.jpg

M355084 est eteint c onbtrairement aux autre machines. Quand je ne précise
pas "on error resume next" le script s'arrete sur un message d'erreur.

Quand je précise, il continue et me donne une info, je pense que les
variables sont restées à la valeur précédente.



Le script entier :

on error resume next

set oOU = getobject
("LDAP://c463caefr01/ou=mag,ou=cti-cae,dc­tinet,dc=com")

for each oComputer in oOU

oComputercorr = replace(oComputer.name, "CN=", "")

wscript.echo "utilisateur du groupe administrateur: " & oComputercorr

Set oGroupe = GetObject("WinNT://"&oComputercorr &"/Administrateurs")

For Each oMembre In oGroupe.Members

wscript.echo "" & oMembre.Name

next

wscript.echo " "

next







Voilà j'ai essayé de voir avec les if err.number<>0 mais ca ne me donne
rien. Si quelqu'un peut m'aider. En fait je souhaiterais que mon script
m'indique : " Micro non joignable" quand la commande echoue et non pas me
donner des valeurs fantaisiste probablement du micro précédent.

Merci

Olivier Hardy




Avatar
olivier
Merci Beaucoup !

Ca résoud bien mon problème.

Encore une petite chose d'un ordre, j'ai une trentaine d' O.U à traiter par
mon :

set oOU = getobject
("LDAP://c463caefr01/ou=mag,ou=cti-cae,dc­dcnet,dc=com")
[...]


Plutôt que de faire 30 copier-coller du script en remplaçant l' ou=... par
le bon nom.

Y'a t'il possibilité de définir une sorte de variable XXX qui aurait comme
valeur possible toutes les noms contenus dans une déclaration genre:
DATA mag, machin, tartenpion, tutu, titi

Et faire boucler mon script a chaque valeur de XXX .

set oOU = getobject
("LDAP://c463caefr01/ou=XXX,ou=cti-cae,dc­dcnet,dc=com")

Merci

Olivier
Avatar
Fred
Dans son message 424afff1$0$13220$
olivier nous dit :

Merci Beaucoup !

Ca résoud bien mon problème.

Encore une petite chose d'un ordre, j'ai une trentaine d' O.U à
traiter par mon :

set oOU = getobject
("LDAP://c463caefr01/ou=mag,ou=cti-cae,dc­dcnet,dc=com")
[...]


Plutôt que de faire 30 copier-coller du script en remplaçant l'
ou=... par le bon nom.

Y'a t'il possibilité de définir une sorte de variable XXX qui aurait
comme valeur possible toutes les noms contenus dans une déclaration
genre: DATA mag, machin, tartenpion, tutu, titi

Et faire boucler mon script a chaque valeur de XXX .

set oOU = getobject
("LDAP://c463caefr01/ou=XXX,ou=cti-cae,dc­dcnet,dc=com")

Merci

Olivier


Bonsoir,
La fonction Array semble toute indiquée, exemple :
Dim a
a=Array("lundi", "mardi", "mercredi")
For i=0 to 2
MsgBox a(i)
Next

(à compléter jusqu'à dimanche)

Dans ton cas :
Dim ou
ou=Array("OU1", "OU2", "OU3", .........
For Index=0 To N-1
Path = "LDAP://c463caefr01/ou=" & ou(Index) &
",ou=cti-cae,dc­dcnet,dc=com"
Set oOU=GetObject(Path)
etc ...
Next
--
Fred