Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

CScript et nom du vbs dans le planificateur de tâches

6 réponses
Avatar
Fred
Bonjour,

J'ai plusieurs tâches planifiées qui lancent des fichiers vbs via une
commande cscript.

Il arrive de temps en temps que l'un de ces scripts plante ou tourne en
boucle.

Dans le gestionnaire des tâches, j'ai juste une ligne cscript.exe mais
sans avoir le détail précis du fichier vbs appelé.

Comment puis-connaître le ficher vbs correspondant ?

Merci pour votre aide,

@+

Fred

6 réponses

Avatar
Christophe Pin
Bonjour,

Il suffit d'utiliser le tres bon Process Explorer de SysInternals disponible
gratuitement sur le site Microsoft.
Tu connaitras alors la ligne de commande complete (avec tous les parametres)
de ton processus.

--
_________________________________________
Now, you know the truth, Space Invaders are Back
http://www.joachimgarraud.com
L'invasion ne fait QUE commencer...



"Fred" a écrit dans le message de news:

Bonjour,

J'ai plusieurs tâches planifiées qui lancent des fichiers vbs via une
commande cscript.

Il arrive de temps en temps que l'un de ces scripts plante ou tourne en
boucle.

Dans le gestionnaire des tâches, j'ai juste une ligne cscript.exe mais
sans avoir le détail précis du fichier vbs appelé.

Comment puis-connaître le ficher vbs correspondant ?

Merci pour votre aide,

@+

Fred


Avatar
Fred
Christophe Pin a écrit :
Bonjour,

Il suffit d'utiliser le tres bon Process Explorer de SysInternals disponible
gratuitement sur le site Microsoft.
Tu connaitras alors la ligne de commande complete (avec tous les parametres)
de ton processus.



Ah oui, tiens, je n'y avais pas pensé à celui-là. ;-)

Merci pour ton aide,

@+

Fred
Avatar
Gilles LAURENT [MVP]
"Fred" a écrit dans le message de
news:
| Bonjour,

Bonjour,

| J'ai plusieurs tâches planifiées qui lancent des fichiers vbs via une
| commande cscript.
|
| Il arrive de temps en temps que l'un de ces scripts plante ou tourne
| en boucle.
|
| Dans le gestionnaire des tâches, j'ai juste une ligne cscript.exe mais
| sans avoir le détail précis du fichier vbs appelé.
|
| Comment puis-connaître le ficher vbs correspondant ?

En complément des réponses précédentes, ci-dessous le script VBScript
getProcessCommandLine.vbs permettant d'obtenir la ligne de commande d'un
processus identifié par son PID.

Usage :
getProcessCommandLine <pid>

Exemple :
CScript //nologo getProcessCommandLine.vbs 3812

--- Coupez ici : getProcessCommandLine.vbs ---
On Error Resume Next
strPid=WScript.Arguments(0)
Set oProc=GetObject( _
"winmgmts:/root/cimv2:" & _
"Win32_Process.Handle='" & strPid & "'")
If Err.Number=0 Then
WScript.Echo oProc.CommandLine
Else
WScript.Echo "Unknown PID (" & strPid & ")"
End If
--- Coupez ici : getProcessCommandLine.vbs ---

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
Fred
Gilles LAURENT [MVP] a écrit :

| Comment puis-connaître le ficher vbs correspondant ?

En complément des réponses précédentes, ci-dessous le script VBScript
getProcessCommandLine.vbs permettant d'obtenir la ligne de commande d'un
processus identifié par son PID.




Salut et merci pour ce script qui est plus rapide à utiliser que Process
Explorer quand on a plusieurs fichiers de bloquer.

J'ai modifié le script pour l'adapter à mes besoins et lister tous les
processus wscript et cscript en cours.

Voila le résultat :

On Error Resume Next

' Liste des process
Set oWMIService = GetObject("winmgmts:" _
{impersonationLevel=impersonate}!.rootcimv2")
Set colProcessList = oWMIService.ExecQuery -
("Select * from Win32_Process")

For Each oProcess in colProcessList
If (oProcess.Name = "wscript.exe" _
Or oProcess.Name = "cscript.exe") _
And Instr(oProcess.CommandLine, Wscript.ScriptName) = 0 Then
lst = lst & oProcess.Handle & " => " & oProcess.Name _
& " - " & oProcess.CommandLine & vbCrLf
End If
Next


If lst = "" Then lst = "Aucun wscript en cours d'exécution..."
msgbox lst

@+

Fred
Avatar
Gilles LAURENT [MVP]
"Fred" a écrit dans le message de
news:
| Gilles LAURENT [MVP] a écrit :
|
||| Comment puis-connaître le ficher vbs correspondant ?
||
|| En complément des réponses précédentes, ci-dessous le script VBScript
|| getProcessCommandLine.vbs permettant d'obtenir la ligne de commande
|| d'un processus identifié par son PID.
||
||
| Salut et merci pour ce script qui est plus rapide à utiliser que
| Process Explorer quand on a plusieurs fichiers de bloquer.
|
| J'ai modifié le script pour l'adapter à mes besoins et lister tous les
| processus wscript et cscript en cours.
[...]

Merci pour ce retour ;-)

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
moi
Bonjour,

J'ai plusieurs tâches planifiées qui lancent des fichiers vbs via
une
commande cscript.
Il arrive de temps en temps que l'un de ces scripts plante ou tourne
en boucle.
Dans le gestionnaire des tâches, j'ai juste une ligne cscript.exe
mais
sans avoir le détail précis du fichier vbs appelé.
Comment puis-connaître le ficher vbs correspondant ?



En complément des réponses techniques,
je me permet de revenir à ce qui motiva cette requête
et non à la requête elle même :

Pour ma part, pour ce type de truc
je trouve plus simple d'installer des "drapeaux"
dans un répertoire dédié...

Méthode du type :

La première chose que fait un script,
c'est de créer un petit fichier <NomDeLaTâche>.txt

La dernière chose que fait le script
c'est d'effacer le fichier précédemment cité ;o)

Ainsi à tout moment sans avoir à interroger WMI ou autre,
tu peut voir (avec les yeux ou avec un autre script...)
quelles sont, parmi ces tâches, celles qui tournent encore.
( en rond ?)

J'utilise ce type d'astuce bête ,
avec des tâche planifiées zossi,
pour éviter de lancer des tâches incompatibles...

Par exemple :

La sauvegarde du répertoire D:Machin dans F:truc
ne se fera que si la défragmentation de D: est fini... (il vaut
mieux !)

Normalement, les horaires choisis
évitent ce type de choses
mais il faut prévoir l'imprévu ;o)

Dans de tels cas, le script de chaque tâche peut vérifier
que le lancement d'icelle est possible...

L'avantage c'est que, en *.cmd ou *.vbs (ou autres)
on peut toujours créer un fichier bidon
( non vide pour que if exist fonctionne)
ou bien effacer le fichier sus-nommé.

A+


Cordialement,

HB