Question [résolu]pause entre 2 installations

Plus d'informations
il y a 4 ans 7 mois #29173 par Riblito
Bonjour,

J'ai un problème que j'arrive pas à résoudre depuis plusieurs semaines.

J'essaye de faire un script pour installer plusieurs logiciels mais par sélection :
www.noelshack.com/2019-32-4-1565254675-eeeeeee.png

Si je coche que 2 cases, l'installation des 2 logiciels coché uniquement se lance.

J'ai réussi et ça fonctionne, sauf qu'ils se lancent en même temps. J'essaye de faire une pause entre chaque installation.

Sauf que .... ça freeze et ça reste comme ça pendant longtemps, et au bout de 15mn ça lance la 2eme installation( voir jamais ), et si y'a plus d'installation à faire ça freeze totalement et je dois faire un fin de tâches.

note : j'ai essayé avec le proc de Notepad et ça fonctionne très bien, c'est uniquement quand je le fais avec des installations .... trop lourd ? pas opti ?

[code:1]$ButInstall.Add_Click(
{
if ($Chckzip.Checked){
\\sefbs-data\informatique$\PW_script_logiciel\script\7-Zip.ps1
$pzip = get-process 7z1900-x64
$pzip.WaitForExit()
}



if ($ChckAdobeRDC.Checked){
\\sefbs-data\informatique$\PW_script_logiciel\script\Adobe_Acrobat_Reader_DC.ps1
$pair = get-process armsvc
$pair.WaitForExit()
}




if ($ChckAdobeAirRun.Checked){
\\sefbs-data\informatique$\PW_script_logiciel\script\Adobe_Air_Runtime_32.00.ps1
$prun = get-process AdobeAIRInstaller
$prun.WaitForExit()

.... etc ...

}[/code:1]

Pouvez vous m'aider svp ?

Message édité par: elemremy, à: 8/08/19 10:25<br><br>Message édité par: elemremy, à: 12/08/19 14:47

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

Plus d'informations
il y a 4 ans 7 mois #29174 par Quentin
Réponse de Quentin sur le sujet Re:pause entre 2 installations
Bonjour,

Pour temporiser entre deux scripts, utilise Start-Sleep.
Concernant les scripts que tu appelles dans chacun de tes If,
essaie de forcer dans chaque script l'état de fin de script.

Par exemple, tu mets en fonction de l'état de l'instalaltion d'un soft :

Exit 0 (installation OK)
Exit 1 (installation OK mais avec erreurs)
Exit 2 (Installation Non-OK)

Ensuite dans ton script global, récupère l'information de $LastExitCode et traite ce code de retour pour savoir ce que tu veux faire (continuer les installations / stopper / informer etc...)
A partir de là, tu mets ta temporisation et tu stop le process s'il reste ouvert.

Je ne sais pas si c'est compréhensible et si ça te parait être une solution. Tiens nous au courant.

Whitatrax

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

Plus d'informations
il y a 4 ans 7 mois #29176 par Riblito
Réponse de Riblito sur le sujet Re:pause entre 2 installations
Merci pour ta réponse :)

Je vais essayer ça, je vous tiens au courant au plus vite

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

Plus d'informations
il y a 4 ans 7 mois #29177 par Riblito
Réponse de Riblito sur le sujet Re:pause entre 2 installations
j'ai chercher sur le net du coup pour ta solution, c'est un peu trop avancé pour moi, je suis débutant encore sur le powershell, j'y suis pas souvent dessus.


start-sleep ça se base que sur un timer ? ...

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

Plus d'informations
il y a 4 ans 7 mois #29178 par Riblito
Réponse de Riblito sur le sujet Re:pause entre 2 installations
j'ai chercher sur le net du coup pour ta solution, c'est un peu trop avancé pour moi, je suis débutant encore sur le powershell, j'y suis pas souvent dessus.


start-sleep ça se base que sur un timer ? ...

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

Plus d'informations
il y a 4 ans 7 mois #29179 par Quentin
Réponse de Quentin sur le sujet Re:pause entre 2 installations
Oui Start-Sleep se base sur un timer.

C'est pour ça que, quand ton script d'installation se fini, tu force une valeur via Exit (0,1,2 par exemple) et ensuite tu récupère $LastExitCode

Cette valeur représente le dernier code de retour d'une commande. Lorsque tu la forces en fin d'exécution d'un script ça te permet de réutiliser cette variable pour poursuivre la suite.

Par exemple lorsque tu supervise tes serveurs windows avec un nagios qui interroge du powershell, nagios se base sur $LastExitCode pour connaître l'état du test lancé.

Ce code de retour peut facilement être interprêté par des boucles if, pour par exemple mettre une temporisation entre deux parties.

Whitatrax<br><br>Message édité par: Whitatrax, à: 8/08/19 14:53

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

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