-
VBS et selfPID
Bonjour,
je cherche a récupérer le PID d'un script VBS.
La difficulté n'est pas de récupérer "un" PID où il existe moultes exemples, mais de récupérer "le" PID dans le script du script lui même, sachant qu'il y a plusieurs script de lancer (donc impossible de se baser sur le nom de l'exe)
D'avance Merci,
OLG.
-
Désolé, je ne trouve pas de propriété permettant de retrouver le PID du script courant.
Les seules infos que je trouve à propos du script courant sont ScriptName et ScriptFullname.
On pourrait imaginer un truc tordu d'un script qui lance les autres (il peut connaître le PID des scripts - ou, plus exactement, des instances de Wscript - qu'il a lancés), qui écrit ce PID dans la registry, par exemple, et que le script lancé va lire et effacer cette donnée.
Ca me paraît jouable pour autant que tu aies un réel besoin qu'un script connaisse son propre PID...
Tu pourrais nous en dire plus sur la raison de ta recherche???
-
Tout d'abord merci.
Effectivement les diverses solutions que tu me proposes auraient pu être envisageable, mais j'ai des contraintes de developpement qui m'empeche de m'orienter vers ces solutions.
Il y a effectivement des normes à respecter, qui m'empechent d'avoir un script tiers lancant les 2 premiers. (pour info ces scripts seront lancés indépendamment via un ordonnanceur)
Ces 2 scripts ne sont en fait qu'un seul script lancé 2 fois (voire x fois).
Ce script fait un accés à une ressource externe (Objets COM), cela tournait bien jusqu'à ce que je constate des plantages brut sans aucun messages. En analisant mes logs j'ai rapidement soupçonné un conflit d'accés à cette ressource. J'ai donc choisi de mettre en place un MUTEX afin d'empecher ces conflit (encore que cela ne reste pas sûr à 100% étant donné que je n'ai pas trouvé - et je ne pense pas que cela soit possible - comment déclarer un bloc de code ininterruptible en VBS, mais cela limitera trés fortement la probabilité de tomber dans ce cas car il faudrait que le second script lise la valeur de la variable commune après que le premier l'ai lu et avant que ce dernier l'ai modifiée).
Ce MUTEX est implémenté via une variable d'environnement à laquelle je souhaite attibuer la valeur du PID du processus l'ayant réservé. Je peux aisaiment envisager de trouver un autre ID unique pour chacune des instances de ce script.
Me baser sur un random ou l'heure ne me plait pas car les scripts étant lancés en même temps en automatique par l'ordonnanceur il se peut que je tombe sur le même ID.
Voilà en espérant ne pas avoir été trop brouillon dans mon explication.
Merci de votre aide,
OLG.
PS : j'aurais pu baser mon MUTEX sur la création d'un fichier mais cela ne rentre pas dans les normes, je ne peux donc envisager cette solution.