Question
Lancer un PS sans attendre le retour
- ANTRI Mohamed
- Hors Ligne
- Membre premium
-
- Messages : 124
- Remerciements reçus 0
Avez-vous regardez au niveau du [code:1]Threading[/code:1] ?
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Le paramètre -NoNewWindow exécute le nouveau process en tant que process fils, son absence exécute un process 'autonome' (la mort du process père ne tue pas le process fils).Etant donné que le premier script est lancé par un service avec session fermé, je n'ai pas de visibilité sur les fenêtres.
Pour créer ce nouveau process essaie avec le paramètre -WindowStyle hidden. N'ayant pas de service 'launcher', je ne peux pour le moment faire ce test.
bvivi57 écrit:
Pour WMI la classe Win32_Process permet de créer des process en spécifiant le mode de création désiré, mais pour le moment je penche plus pour un pb de contexte dû au service.Concernant \"WMI DETACHED_PROCESS\", je suis un peu perdu.
WMI étant un autre service on simule une 'délégation', ensuite des pb de droits peuvnet se greffer sur cette approche.
Une autre piste, en mode bricole, exécuter le script dans une PSsession puis s'en déconnecter, ou encore utiliser un ScheduledJob (qui a une limite : le script ne pourra faire de SendMessage, une tâche planifié n'a pas de pompe de message).
ANTRI Mohamed écrit:
C'est à dire ?Avez-vous regardez au niveau du [code:1]Threading[/code:1] ?
Le pb est au niveau du process, il me semble que de descendre d'un niveau ne changera pas la donne.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Burgun
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 40
- Remerciements reçus 0
Voici ce que j'ai pu observer :
1 ) Avec ce code :
[code:1]$ScriptPath = split-path $SCRIPT:MyInvocation.MyCommand.Path -parent
Set-Location -Path $ScriptPath
\"$ScriptPath\SecondScript.ps1\" -WorkingDirectory $ScriptPath -WindowStyle hidden[/code:1]
- Lancement depuis une console PS :
Fonctionne parfaitement, le premier script n'attend pas le retour du second.
- Lancement depuis le service :
Pas d'erreur, le premier script se termine immédiatement mais le second script n'est jamais lancé....le contenu du premier script est déroulé, mais le second script ne semble jamais se lancer.
2) Avec ce code:
[code:1]
$ScriptPath = split-path $SCRIPT:MyInvocation.MyCommand.Path -parent
Set-Location -Path $ScriptPath
start-process powershell.exe \"$ScriptPath\secondscript.ps1\" -WorkingDirectory $ScriptPath -WindowStyle hidden -LoadUserProfile[/code:1]
- Lancement depuis une console PS :
Fonctionne parfaitement, le premier script n'attend pas le retour du second.
- Lancement depuis le service :
Le second script est bien lancé, mais le premier script ne rend pas la main avant la fin du second....
A savoir qu'un lancement par le service exécute la commande suivante :
[code:1]%systemroot%\system32\windowspowershell\v1.0\powershell.exe -nologo -file \"D:\Scripts\test\Securite\PremierScriptps1\"[/code:1]
Et pour le mode bricole : c'est avec une tache plannifiée que je tourne actuellement pour contourner le problème.
Je configure une tache plannifiée sur le serveur qui exécute le second script, mais je parametre pas d'options pour les conditions d'exécution. Je met simplement dans mon premier script les commandes necessaires pour lancer la tache plannifiée....
Message édité par: bvivi57, à: 2/04/14 19:25<br><br>Message édité par: bvivi57, à: 2/04/14 19:29
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Reste à essayer avec WMI.- Lancement depuis le service :
Le second script est bien lancé, mais le premier script ne rend pas la main avant la fin du second....
A moins de forcer, dans le premier script, la sortie via :
[code:1]
$host.SetShouldExit($exitcode)
[/code:1]
bvivi57 écrit:
Un simple {start-sleep -S 10} suffit.A savoir qu'un lancement par le service exécute la commande suivante :
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Lancer un PS sans attendre le retour