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

[VBS] taches planifiees

8 réponses
Avatar
Claude (F)
Bonsoir

Imaginons un script lancé à partir d'une tâche planifiée (du style
wscript d:\test\monscript.vbs), existe-t-il un moyen de connaitre le nom
de la tâche planifié qui a lancé le script?

Merci pour vos lumières

8 réponses

Avatar
Gilles LAURENT
"Claude (F)" a écrit dans le message de
news:4579dd7d$0$13492$
| Bonsoir

Bonsoir,

| Imaginons un script lancé à partir d'une tâche planifiée (du style
| wscript d:testmonscript.vbs), existe-t-il un moyen de connaitre le
| nom de la tâche planifié qui a lancé le script?

Oui aux conditions suivantes :
- La tâche est planifiée avec la commande cmd at ou avec WMI
- Le script s'exécute sur Windows 2000/XP (de préférence XP)
- Une seule tâche planifiée exécute le script 'monscript.vbs'

Si ces trois conditions sont vérifiées alors c'est possible.

J'attends votre retour pour vous donner un exemple.

Cependant, une solution de contournement consiste à spécifier le nom de
la tâche planifiée comme argument du script 'monscript.vbs'. Le script
pourra alors récupérer le nom de la tâche grâce à la lecture de ses
arguments.

--
Gilles LAURENT
http://glsft.free.fr
Avatar
Claude (F)
"Claude (F)" a écrit dans le message de
news:4579dd7d$0$13492$
| Bonsoir

Bonsoir,

| Imaginons un script lancé à partir d'une tâche planifiée (du style
| wscript d:testmonscript.vbs), existe-t-il un moyen de connaitre le
| nom de la tâche planifié qui a lancé le script?

Oui aux conditions suivantes :
- La tâche est planifiée avec la commande cmd at ou avec WMI
- Le script s'exécute sur Windows 2000/XP (de préférence XP)
- Une seule tâche planifiée exécute le script 'monscript.vbs'

Si ces trois conditions sont vérifiées alors c'est possible.

J'attends votre retour pour vous donner un exemple.

Cependant, une solution de contournement consiste à spécifier le nom de
la tâche planifiée comme argument du script 'monscript.vbs'. Le script
pourra alors récupérer le nom de la tâche grâce à la lecture de ses
arguments.

Je ne crois pas répondre à la 1ère condition car je lance le script par

wscript car il y a des arguments à envoyer.

(C'est relatif à ce petit script : http://scriptus.free.fr, possesseurs
de Freebox, il peut peut être vous interesser)

Au lieu d'utiliser des arguments dans la ligne de commande, par exemple
7 et 120, je pensais nommer ma tâche planifiée ENREG-7-120.job et ainsi
récupérer ces arguments dans le nom de tâche. C'est juste une piste que
j'essaye de creuser car mon script fonctionne bien actuellement !

En tous cas merci de t'interesser à ce cas.

Avatar
jbongran
Claude (F) wrote:
"Claude (F)" a écrit dans le message de
news:4579dd7d$0$13492$
Bonsoir


Bonsoir,

Imaginons un script lancé à partir d'une tâche planifiée (du style
wscript d:testmonscript.vbs), existe-t-il un moyen de connaitre le
nom de la tâche planifié qui a lancé le script?


Oui aux conditions suivantes :
- La tâche est planifiée avec la commande cmd at ou avec WMI
- Le script s'exécute sur Windows 2000/XP (de préférence XP)
- Une seule tâche planifiée exécute le script 'monscript.vbs'

Si ces trois conditions sont vérifiées alors c'est possible.

J'attends votre retour pour vous donner un exemple.

Cependant, une solution de contournement consiste à spécifier le nom
de la tâche planifiée comme argument du script 'monscript.vbs'. Le
script pourra alors récupérer le nom de la tâche grâce à la lecture
de ses arguments.

Je ne crois pas répondre à la 1ère condition car je lance le script

par wscript car il y a des arguments à envoyer.

(C'est relatif à ce petit script : http://scriptus.free.fr,
possesseurs de Freebox, il peut peut être vous interesser)

Au lieu d'utiliser des arguments dans la ligne de commande, par
exemple 7 et 120, je pensais nommer ma tâche planifiée
ENREG-7-120.job et ainsi récupérer ces arguments dans le nom de
tâche. C'est juste une piste que j'essaye de creuser car mon script
fonctionne bien actuellement !
En tous cas merci de t'interesser à ce cas.


Rien à voir avec le scripting, mais répond à ton besoin.
http://adsltv.free.fr/



Avatar
Claude (F)
Claude (F) wrote:
"Claude (F)" a écrit dans le message de
news:4579dd7d$0$13492$
Bonsoir
Bonsoir,


Imaginons un script lancé à partir d'une tâche planifiée (du style
wscript d:testmonscript.vbs), existe-t-il un moyen de connaitre le
nom de la tâche planifié qui a lancé le script?
Oui aux conditions suivantes :

- La tâche est planifiée avec la commande cmd at ou avec WMI
- Le script s'exécute sur Windows 2000/XP (de préférence XP)
- Une seule tâche planifiée exécute le script 'monscript.vbs'

Si ces trois conditions sont vérifiées alors c'est possible.

J'attends votre retour pour vous donner un exemple.

Cependant, une solution de contournement consiste à spécifier le nom
de la tâche planifiée comme argument du script 'monscript.vbs'. Le
script pourra alors récupérer le nom de la tâche grâce à la lecture
de ses arguments.

Je ne crois pas répondre à la 1ère condition car je lance le script

par wscript car il y a des arguments à envoyer.

(C'est relatif à ce petit script : http://scriptus.free.fr,
possesseurs de Freebox, il peut peut être vous interesser)

Au lieu d'utiliser des arguments dans la ligne de commande, par
exemple 7 et 120, je pensais nommer ma tâche planifiée
ENREG-7-120.job et ainsi récupérer ces arguments dans le nom de
tâche. C'est juste une piste que j'essaye de creuser car mon script
fonctionne bien actuellement !
En tous cas merci de t'interesser à ce cas.


Rien à voir avec le scripting, mais répond à ton besoin.
http://adsltv.free.fr/


oui, il y en a toute une flopée

(http://www.tvfreeplayer.com/?module=multi) mais je suis un
inconditionnel des tâches planifiées !




Avatar
Gilles LAURENT
"Claude (F)" a écrit dans le message de
news:457de1f6$0$17016$

[...]
| Au lieu d'utiliser des arguments dans la ligne de commande, par
| exemple 7 et 120, je pensais nommer ma tâche planifiée
| ENREG-7-120.job et ainsi récupérer ces arguments dans le nom de
| tâche. C'est juste une piste que j'essaye de creuser car mon script
| fonctionne bien actuellement !

+++ Mise en oeuvre et tests
1- Copier le script VBScript ci-dessous
2- Lui attribuer un nom quelconque avec l'extension .vbs
3- Planifier son exécution avec CScript.exe ou WScript.exe
4- Exécuter la tâche
=> Le nom de la tâche devrait apparaitre dans une msgbox ;-)

--- Couper ici ---

Option Explicit

PreProcess (WScript.Arguments)

Dim strId: strId = WScript.Arguments(0)
WScript.Sleep (500)
MsgBox "[" & GetTaskName (Hex (CInt(strId))) & "]"

'--------------------------------------
Sub PreProcess (oArgs)
Dim oSh
Dim strId

Set oSh = CreateObject ("WScript.Shell")
If oArgs.Count = 0 Then
Randomize
strId = Round (Rnd () * 32768)
oSh.Run Right (WScript.FullName, 11) & " " & _
WScript.ScriptFullName & " " & strId
WScript.Quit (strId)
End If
End Sub

'--------------------------------------
Function GetTaskName (strId)
Dim oSh, oFs, oRe, oFile
Dim strLogs

Set oSh = CreateObject ("WScript.Shell")
Set oFs = CreateObject ("Scripting.FileSystemObject")
Set oRe = New RegExp
oRe.IgnoreCase = True
oRe.Pattern="""(.*?).job""(?:.*n){2}.*((" & strId & "))."

Set oFile = oFs.OpenTextFile ( _
oSh.ExpandEnvironmentStrings ( _
oSh.RegRead ( _
"HKLMSoftwareMicrosoftSchedulingAgentLogPath" _
) _
), _
1, False, -1)
strLogs = oFile.ReadAll
If oRe.Test (strLogs) Then
GetTaskName = oRe.Replace(oRe.Execute (strLogs)(0),"$1")
End If
End Function

--- Couper ici ---

--
Gilles LAURENT
http://glsft.free.fr
Avatar
Claude (F)
"Claude (F)" a écrit dans le message de
news:457de1f6$0$17016$

[...]
| Au lieu d'utiliser des arguments dans la ligne de commande, par
| exemple 7 et 120, je pensais nommer ma tâche planifiée
| ENREG-7-120.job et ainsi récupérer ces arguments dans le nom de
| tâche. C'est juste une piste que j'essaye de creuser car mon script
| fonctionne bien actuellement !

+++ Mise en oeuvre et tests
1- Copier le script VBScript ci-dessous
2- Lui attribuer un nom quelconque avec l'extension .vbs
3- Planifier son exécution avec CScript.exe ou WScript.exe
4- Exécuter la tâche
=> Le nom de la tâche devrait apparaitre dans une msgbox ;-)

--- Couper ici ---

Option Explicit

PreProcess (WScript.Arguments)

Dim strId: strId = WScript.Arguments(0)
WScript.Sleep (500)
MsgBox "[" & GetTaskName (Hex (CInt(strId))) & "]"

'--------------------------------------
Sub PreProcess (oArgs)
Dim oSh
Dim strId

Set oSh = CreateObject ("WScript.Shell")
If oArgs.Count = 0 Then
Randomize
strId = Round (Rnd () * 32768)
oSh.Run Right (WScript.FullName, 11) & " " & _
WScript.ScriptFullName & " " & strId
WScript.Quit (strId)
End If
End Sub

'--------------------------------------
Function GetTaskName (strId)
Dim oSh, oFs, oRe, oFile
Dim strLogs

Set oSh = CreateObject ("WScript.Shell")
Set oFs = CreateObject ("Scripting.FileSystemObject")
Set oRe = New RegExp
oRe.IgnoreCase = True
oRe.Pattern="""(.*?).job""(?:.*n){2}.*((" & strId & "))."

Set oFile = oFs.OpenTextFile ( _
oSh.ExpandEnvironmentStrings ( _
oSh.RegRead ( _
"HKLMSoftwareMicrosoftSchedulingAgentLogPath" _
) _
), _
1, False, -1)
strLogs = oFile.ReadAll
If oRe.Test (strLogs) Then
GetTaskName = oRe.Replace(oRe.Execute (strLogs)(0),"$1")
End If
End Function

--- Couper ici ---

merci, c'est génial (même si je n'ai pas tout compris)! cela va m'ouvrir

de nouvelles perspéctives !

Avatar
c.feuvrier
Bonjour

J'ai intégré ton script ci-dessous au mien, et ça fonctionne à
merveille, merci encore !!

http://scriptus.free.fr/MiniEnreg/


"Claude (F)" a écrit dans le message de
news:457de1f6$0$17016$

[...]
| Au lieu d'utiliser des arguments dans la ligne de commande, par
| exemple 7 et 120, je pensais nommer ma tâche planifiée
| ENREG-7-120.job et ainsi récupérer ces arguments dans le nom de
| tâche. C'est juste une piste que j'essaye de creuser car mon script
| fonctionne bien actuellement !

+++ Mise en oeuvre et tests
1- Copier le script VBScript ci-dessous
2- Lui attribuer un nom quelconque avec l'extension .vbs
3- Planifier son exécution avec CScript.exe ou WScript.exe
4- Exécuter la tâche
=> Le nom de la tâche devrait apparaitre dans une msgbox ;-)

--- Couper ici ---

Option Explicit

PreProcess (WScript.Arguments)

Dim strId: strId = WScript.Arguments(0)
WScript.Sleep (500)
MsgBox "[" & GetTaskName (Hex (CInt(strId))) & "]"

'--------------------------------------
Sub PreProcess (oArgs)
Dim oSh
Dim strId

Set oSh = CreateObject ("WScript.Shell")
If oArgs.Count = 0 Then
Randomize
strId = Round (Rnd () * 32768)
oSh.Run Right (WScript.FullName, 11) & " " & _
WScript.ScriptFullName & " " & strId
WScript.Quit (strId)
End If
End Sub

'--------------------------------------
Function GetTaskName (strId)
Dim oSh, oFs, oRe, oFile
Dim strLogs

Set oSh = CreateObject ("WScript.Shell")
Set oFs = CreateObject ("Scripting.FileSystemObject")
Set oRe = New RegExp
oRe.IgnoreCase = True
oRe.Pattern="""(.*?).job""(?:.*n){2}.*((" & strId & "))."

Set oFile = oFs.OpenTextFile ( _
oSh.ExpandEnvironmentStrings ( _
oSh.RegRead ( _
"HKLMSoftwareMicrosoftSchedulingAgentLogPath" _
) _
), _
1, False, -1)
strLogs = oFile.ReadAll
If oRe.Test (strLogs) Then
GetTaskName = oRe.Replace(oRe.Execute (strLogs)(0),"$1")
End If
End Function

--- Couper ici ---

--
Gilles LAURENT
http://glsft.free.fr


Avatar
Gilles LAURENT
a écrit dans le message de
news:
| Bonjour

Bonjour,

| J'ai intégré ton script ci-dessous au mien, et ça fonctionne à
| merveille, merci encore !!
|
| http://scriptus.free.fr/MiniEnreg/

Merci pour ce retour ;-)

--
Gilles LAURENT
http://glsft.free.fr