OVH Cloud OVH Cloud

Pb script WMI

2 réponses
Avatar
Patrick Tamaya
Bonjour,

je lance un script WMI qui s'arrête à la ligne suivante :

set oWMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" &
strComputer & "\root\cimv2")

avec l'erreur : (null): Syntace incorrecte

Ce script fonctionnait pourtant parfaitement avant que je fasse des
installations/désinstallations de nouveaux softs (dont un outil de gestion
WMI).

J'ai déjà vérifié avec un script que j'avais les bonnes versions de
vbscript...:

WSH version : 5.6
VBScript Version : 5.6
ADSI Version : 5.0.00.0

Y-a-t-il un moyen de refaire fonstionner le WMI correctement (j'ai déjà
ré-installé le SP4 sans succès) ?

2 réponses

Avatar
Jean-Claude BELLAMY
Dans le message news:424bdc5f$0$1238$ ,
Patrick Tamaya <ptamaya[NOSPAM]@wanadoo.fr> s'est ainsi exprimé:

Bonjour,

je lance un script WMI qui s'arrête à la ligne suivante :

set oWMI = GetObject("winmgmts:" &
"{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")

avec l'erreur : (null): Syntace incorrecte


Bizarre, car la syntaxe est parfaitement correcte ...

Ce script fonctionnait pourtant parfaitement avant que je fasse des
installations/désinstallations de nouveaux softs (dont un outil de
gestion WMI).

J'ai déjà vérifié avec un script que j'avais les bonnes versions de
vbscript...:

WSH version : 5.6
VBScript Version : 5.6
ADSI Version : 5.0.00.0

Y-a-t-il un moyen de refaire fonstionner le WMI correctement (j'ai
déjà ré-installé le SP4 sans succès) ?


Pour commencer tu peux vérifier que WMI fonctionne (ou pas!)

Pour cela, il existe un programme de test :
%systemroot%system32wbemwbemtest.exe

Comme son nom l'indique, c'est un testeur WMI
Il provoque l'ouverture d'une fenêtre avec plein de boutons (au départ
grisés pour la plupart)

Cliquer sur "Connexion"

Dans la nouvelle boite qui s'affiche, remplacer le champ "rootdefault" par
"rootcimv2"
Laisser le reste tel quel.
Appuyer sur "Connexion"

Si tout est conforme, on revient alors sur la 1ère fenêtre, avec cette fois
boutons non grisés.


Ensuite on peut naviguer.

P.ex.
Appuyer sur "Enumérer les classes"

Comme nom de super classe, laisser en blanc (on les aura toutes) ou en taper
une (p.ex. "CIM_setting")
Cocher "récursive" si on veut voir toute l'arborescence, ou "immédiate" pour
seulement le 1er niveau.

Ensuite, dans la liste, on peut double-cliquer sur une classe.
P.ex "Win32_Desktop"

Une boite de dialogue affiche alors toutes les propriétés et méthodes de
cette classe.
P.ex. "Wallpaper", "ScreenSaverExecutable", ....

Dans le cas de la classe "Win32_NetworkAdapterConfiguration", on peut lire
la liste des méthodes, très utiles dans des scripts de config réseau telles
que "EnableDHCP", "SetDNSDomain", ...

-------------------------------------

Si rien de tout çà ne fonctionne, il va falloir réinstaller WMI
Cela consiste à effacer puis recréer le dossier "Repository" de WMI

La méthode (MSDN) est la suivante :

1) Arrêter le service WMI (s'il tourne!)
Commande :
net stop winmgmt

Attention : sous XP SP2, cela va entrainer l'arrêt du centre de sécurité
et du pare-feu
(sauf si on les a volontairement arrêtés)
On peut donc prévoir ces arrêts auparavant par les commandes :

net stop wscsvc
net stop SharedAccess


2) Supprimer le dossier "WMI repository"
Commande :
RD %systemroot%system32wbemRepository /S /Q

3) Redémarrer le service WMI :
Commande :
net start winmgmt
Le dossier Repository est alors recréé.

Sous XP SP2, redémarrer centre de sécurité et du pare-feu
net start wscsvc
net start SharedAccess


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

Avatar
Patrick Tamaya
Si rien de tout çà ne fonctionne, il va falloir réinstaller WMI


tout fonctionne !!

j'ai donc supprimer le repository, mais ça ne change rien, le script
s'arrête toujours au même endroit...

merci pour votre aide quand même, et si d'aventure vous aviez une autre
piste n'hésitez pas à me l'envoyer ;-)

"Jean-Claude BELLAMY" a écrit dans le
message de news:
Dans le message news:424bdc5f$0$1238$ ,
Patrick Tamaya <ptamaya[NOSPAM]@wanadoo.fr> s'est ainsi exprimé:

Bonjour,

je lance un script WMI qui s'arrête à la ligne suivante :

set oWMI = GetObject("winmgmts:" &
"{impersonationLevel=impersonate}!" & strComputer & "rootcimv2")

avec l'erreur : (null): Syntace incorrecte


Bizarre, car la syntaxe est parfaitement correcte ...

Ce script fonctionnait pourtant parfaitement avant que je fasse des
installations/désinstallations de nouveaux softs (dont un outil de
gestion WMI).

J'ai déjà vérifié avec un script que j'avais les bonnes versions de
vbscript...:

WSH version : 5.6
VBScript Version : 5.6
ADSI Version : 5.0.00.0

Y-a-t-il un moyen de refaire fonstionner le WMI correctement (j'ai
déjà ré-installé le SP4 sans succès) ?


Pour commencer tu peux vérifier que WMI fonctionne (ou pas!)

Pour cela, il existe un programme de test :
%systemroot%system32wbemwbemtest.exe

Comme son nom l'indique, c'est un testeur WMI
Il provoque l'ouverture d'une fenêtre avec plein de boutons (au départ
grisés pour la plupart)

Cliquer sur "Connexion"

Dans la nouvelle boite qui s'affiche, remplacer le champ "rootdefault"
par

"rootcimv2"
Laisser le reste tel quel.
Appuyer sur "Connexion"

Si tout est conforme, on revient alors sur la 1ère fenêtre, avec cette
fois

boutons non grisés.


Ensuite on peut naviguer.

P.ex.
Appuyer sur "Enumérer les classes"

Comme nom de super classe, laisser en blanc (on les aura toutes) ou en
taper

une (p.ex. "CIM_setting")
Cocher "récursive" si on veut voir toute l'arborescence, ou "immédiate"
pour

seulement le 1er niveau.

Ensuite, dans la liste, on peut double-cliquer sur une classe.
P.ex "Win32_Desktop"

Une boite de dialogue affiche alors toutes les propriétés et méthodes de
cette classe.
P.ex. "Wallpaper", "ScreenSaverExecutable", ....

Dans le cas de la classe "Win32_NetworkAdapterConfiguration", on peut lire
la liste des méthodes, très utiles dans des scripts de config réseau
telles

que "EnableDHCP", "SetDNSDomain", ...

-------------------------------------

Si rien de tout çà ne fonctionne, il va falloir réinstaller WMI
Cela consiste à effacer puis recréer le dossier "Repository" de WMI

La méthode (MSDN) est la suivante :

1) Arrêter le service WMI (s'il tourne!)
Commande :
net stop winmgmt

Attention : sous XP SP2, cela va entrainer l'arrêt du centre de
sécurité

et du pare-feu
(sauf si on les a volontairement arrêtés)
On peut donc prévoir ces arrêts auparavant par les commandes :

net stop wscsvc
net stop SharedAccess


2) Supprimer le dossier "WMI repository"
Commande :
RD %systemroot%system32wbemRepository /S /Q

3) Redémarrer le service WMI :
Commande :
net start winmgmt
Le dossier Repository est alors recréé.

Sous XP SP2, redémarrer centre de sécurité et du pare-feu
net start wscsvc
net start SharedAccess


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