Flash info

"Si vous vivez chaque jour comme si c'était le dernier, un jour vous aurez probablement raison."

Steve Jobs (1955-2011)

 
Accueil arrow Forum

Bienvenue sur le forum PowerShell-Scripting.com

 
pav
Utilisateur

PowerShelleur Débutant
Messages: 2
graphgraph
Karma: 0  
Execution asynchrone (Résolu) - 11/05/07 18:38 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

Message édité par: Arnaud, à: 17/07/07 17:32
  | | L'administrateur a désactivé l'accés public en écriture.
Robin
Admin

Administrateur
Messages: 262
graphgraph
Karma: 8  
Re:Execution asynchrone - 11/05/07 21:57 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 "propre" 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:

 $global:<var>

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

Message édité par: Arnaud, à: 11/05/07 23:53
Robin MVP PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
pav
Utilisateur

PowerShelleur Débutant
Messages: 2
graphgraph
Karma: 0  
Re:Execution asynchrone - 12/05/07 12:19 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
  | | L'administrateur a désactivé l'accés public en écriture.
Robin
Admin

Administrateur
Messages: 262
graphgraph
Karma: 8  
Re:Execution asynchrone - 12/05/07 17:46 De rien et bon scripting

Rob
Robin MVP PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
© 2020 PowerShell-Scripting.com