[VBS] taches planifiees

Le
Claude (F)
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?

Merci pour vos lumières
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Gilles LAURENT
Le #626053
"Claude (F)" 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
Claude (F)
Le #626049
"Claude (F)" 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.

jbongran
Le #625802
Claude (F) wrote:
"Claude (F)" 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/



Claude (F)
Le #625799
Claude (F) wrote:
"Claude (F)" 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 !




Gilles LAURENT
Le #625537
"Claude (F)" 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
Claude (F)
Le #631730
"Claude (F)" 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 !

c.feuvrier
Le #638067
Bonjour

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

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


"Claude (F)" 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


Gilles LAURENT
Le #638065
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
Poster une réponse
Anonyme