Question Execution asynchrone (Résolu)

Plus d'informations
il y a 13 ans 11 mois #331 par pav
Execution asynchrone (Résolu) a été créé par pav
Bonjour tout le monde,

Je débute en powershell, et j'ai un petit problème de conception...
J'ai crée un ptit script de supervision wmi de serveurs : c'est une interface windows.form qui toutes les minutes, lancent une fonction de vérification de l'état des serveurs, et actualise ses infos à la fin de l'exécution.
Le hic, c'est que la fonction de vérification est assez longue (30 sec. environ) et que pendant ce temps, je n'ai plus accès aux controles sur ma form.
D'où ma question : est-il possible de lancer ma fonction de vérif en asynchrone afin de récupérer le contrôle de ma fenêtre ?
J'ai une solution de contournement, à savoir mettre la fonction de vérification dans un autre fichier ; dans ce la, connaissez vous un moyen \"propre\" de retourner des variables au script appelant ?

Message édité par: pav, à: 11/05/07 19:42<br><br>Message édité par: Arnaud, à: 17/07/07 17:32

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 11 mois #332 par Robin Lemesle
Réponse de Robin Lemesle sur le sujet Re:Execution asynchrone
Salut pav et bienvenue sur le forum ;)

J'ai crée un ptit script de supervision wmi de serveurs : c'est une interface windows.form qui toutes les minutes, lancent une fonction de vérification de l'état des serveurs, et actualise ses infos à la fin de l'exécution.


Pourrais tu nous en faire profiter ?

D'où ma question : est-il possible de lancer ma fonction de vérif en asynchrone afin de récupérer le contrôle de ma fenêtre ?


Pourquoi ne pas lancer une nouvelle instance de PowerShell avec ta fonction ?
explication : tu fais tourner ton script principal et puis au moment de la verif, imaginons qu'elle soit activée par l'appui sur un boutton et bien tu lances un autre script.

dans ce la, connaissez vous un moyen \&quot;propre\&quot; de retourner des variables au script appelant ?


Deux solutions :

- la première, pas très correcte, tu enregistres tes valeurs dans un fichier et tu vas le récupérer après. Mais je ne te le conseille pas.

- la seconde est beaucoup plus propre.
Il suffit de placer un point et un espace devant le nom du script quand tu le lancera depuis ton script principal.

explication :

PowerShell définit de base que, sauf spécification contraire explicite de ta part, une variable ne peut être lue ou modifiée que dans la portée où elle a été créée, et une variable ne peut être lue dans une autre portée que si cette autre portée a été créée dans la portée où la variable ou fonction a été créée.
A chaque fois que tu exécutes une fonction, un script ou une nouvelle instance de Windows PowerShell, une nouvelle portée locale est créée, on parle de portées parent et enfant.

Si tu veux pouvoir utiliser ces variables même apres la fin de ton script tu dois donc mettre le libellé [code:1]$global:&lt;var&gt;[/code:1] pour toutes tes variables, ou alors tu places un point et un espace avant le nom du script lorsque tu l'exécutes et PowerShell traitera les variables comme si tu avais défini le type de portée globale.
Donc dans ce cas tu n'as pas besoin d’utiliser le libellé global dans le script pour modifier les valeurs de la portée parent.

j'espère avoir été assez clair.

Tiens nous au courant ou dis le moi si tu n'as pas compris.

Rob<br><br>Message édité par: Arnaud, à: 11/05/07 23:53

Robin MVP PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 11 mois #343 par pav
Réponse de pav sur le sujet Re:Execution asynchrone
Merci Robin pour ta réponse, c'est exactement ce que je cherchais :)

robin écrit:

Pourrais tu nous en faire profiter ?


Malheureusement non, c'est pour le boulot, donc confidentiel et très spécifique à nos environnements.
Mais dès que j'ai des scripts à partager, je n'hésite pas

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 11 mois #344 par Robin Lemesle
Réponse de Robin Lemesle sur le sujet Re:Execution asynchrone
De rien et bon scripting B)

Rob

Robin MVP PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.131 secondes
Propulsé par Kunena