Problème de compatiblité avec un vbs sous Windows 2000

Le
titoubc
Bonjour,

J'ai un script vbs qui me renvoie le chemin d'où est lancé une
application.
Voilà le code:



Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\.ootcimv2")

Set colProcesses = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name = 'monApplication.exe'")

If colProcesses.Count = 0 Then
Wscript.Echo "No scripts are running."
Else

for each objProcess in colProcesses
if not isnull(objProcess.CommandLine) then
Wscript.Echo Right(Left(objProcess.CommandLine,
InStrRev(objProcess.CommandLine, "") - 1),
Len(Left(objProcess.CommandLine, InStrRev(objProcess.CommandLine, "")
- 1)) - 1)
exit for
end if
next


End If


Le script me renvoit par exemple "C:MonApplication" que j'utilise
ensuite dans un batch.
Le script fonctionne très bien sous XP, Vista et 2003 Serveur mais
impossible de la faire tourner sous du 2000

L'erreur:
Ligne 12 Cara 9
Cet objet ne gère pas cette propriété ou cette méthode
objProcess.CommandLine


Je m'y connais bien en batch mais pas du tout en Vbscript

J'imagine que celà n'est pas géré par Windows 2000 tout simplement.


Ma question est donc de savoir si il est possible, (via un script
compatible 2000) de récupérer le chemin physique d'une application
lancée ?

Merci d'avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacques Barathon [MS]
Le #687849
La doc en ligne pour Win32_Process indique bien que la propriété CommandLine
est apparue avec XP:
http://msdn2.microsoft.com/en-us/library/aa394372.aspx

La même doc indique la propriété ExecutablePath comme devant retourner le
chemin de l'application. Cette information semble être exactement ce que tu
cherches, non?

Jacques

news:
Bonjour,

J'ai un script vbs qui me renvoie le chemin d'où est lancé une
application.
Voilà le code:



Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\.rootcimv2")

Set colProcesses = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name = 'monApplication.exe'")

If colProcesses.Count = 0 Then
Wscript.Echo "No scripts are running."
Else

for each objProcess in colProcesses
if not isnull(objProcess.CommandLine) then
Wscript.Echo Right(Left(objProcess.CommandLine,
InStrRev(objProcess.CommandLine, "") - 1),
Len(Left(objProcess.CommandLine, InStrRev(objProcess.CommandLine, "")
- 1)) - 1)
exit for
end if
next


End If


Le script me renvoit par exemple "C:MonApplication" que j'utilise
ensuite dans un batch.
Le script fonctionne très bien sous XP, Vista et 2003 Serveur mais
impossible de la faire tourner sous du 2000...

L'erreur:
Ligne 12 Cara 9
Cet objet ne gère pas cette propriété ou cette méthode
objProcess.CommandLine


Je m'y connais bien en batch mais pas du tout en Vbscript...

J'imagine que celà n'est pas géré par Windows 2000 tout simplement.


Ma question est donc de savoir si il est possible, (via un script
compatible 2000) de récupérer le chemin physique d'une application
lancée ?

Merci d'avance.
Gilles LAURENT [MVP]
Le #687847
"" news:
| Bonjour,

Bonjour,

| Ma question est donc de savoir si il est possible, (via un script
| compatible 2000) de récupérer le chemin physique d'une application
| lancée ?

A l'aide de la propriété ExecutablePath de la classe Win32_Process comme
justement indiqué par Jacques. Cette propriété contient le chemin
complet de l'exécutable en plus de son nom. Pour extraire uniquement le
dossier de démarrage :

Set oRe=New RegExp:oRe.Pattern="(.*)\" ' greedy
WScript.Echo oRe.Execute(objProcess.ExecutablePath)(0).SubMatches(0)

Pour connaitre la ligne de commande (propriété WMI CommandLine) sur les
versions précédentes de Windows, il est nécessaire de s'appuyer sur un
outil tiers, tel que l'outil CmdLine.exe :
http://www.bearcanyon.com/tools/cmdline.zip

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
titoubc
Le #687587
A l'aide de la propriété ExecutablePath de la classe Win32_Process co mme
justement indiqué par Jacques. Cette propriété contient le chemin
complet de l'exécutable en plus de son nom. Pour extraire uniquement le
dossier de démarrage :

Set oRe=New RegExp:oRe.Pattern="(.*)\" ' greedy
WScript.Echo oRe.Execute(objProcess.ExecutablePath)(0).SubMatches(0)

Pour connaitre la ligne de commande (propriété WMI CommandLine) sur l es
versions précédentes de Windows, il est nécessaire de s'appuyer sur un
outil tiers, tel que l'outil CmdLine.exe :http://www.bearcanyon.com/tools /cmdline.zip

--
Gilles LAURENT
MVP Windows Server - Admin Frameworkshttp://glsft.free.fr


Bonjour,

Je n'ai qu'une chose à dire.... MERCI MERCI MERCI c'est exactement ce
que je voulais.

A bientôt

Publicité
Poster une réponse
Anonyme