Question Terminer un process avant de continuer une boucle

Plus d'informations
il y a 15 ans 1 mois #8883 par vlb
Bonjour,

Je cherche depuis un bout de temps la façon de lancer un process avec les contraintes suivantes
    Windows 2003 SP2 R2
    powershell v1
    .NET 3.5 SP1
    à partir d'un batch, lancer un ps1
    lancer une installation de SQL et terminer ce process avant de continuer la boucle

Je m'explique :

[code:1]
[...]
#
# SQL Server Installation
#

&($sourcesDir+\"setup.exe\"«») /qb ADDLOCAL=All SQLACCOUNT=$SQLACCOUNT SQLPASSWORD=$SQLPASSWORD AGTACCOUNT=$AGTACCOUNT AGTPASSWORD=$AGTPASSWORD SQLBROWSERACCOUNT=$SQLBROWSERACCOUNT SQLBROWSERPASSWORD=$SQLBROWSERPASSWORD /settings ($sourcesDir+\"setup.ini\"«»)


Write-Host \"$scriptName Complete\"
}


.$path\FLEXSQL-End.ps1
[/code:1]

Dans une boucle if, je demande à installer SQL Server 2005 Express. La commande se lance très bien mais malheureusement, la fin du script continue, et mon FLEXSQL-End.ps1 reboot le serveur (c'est son travail avec un shutdown).

Sur les exemples de msdn ou technet, on me dit de faire un start /w [path]setup.exe, mais la commande est lancée à partir de powershell, donc \"Start\" n'est pas reconnue comme un cmdlet.

J'ai voulu utiliser start-process, mais powershell v1... pas disponible

j'ai testé une ligne de commande du type

[code:1]
$setup = ($sourcesDir+\"setup.exe\"«»)
$args = \"/qb SQLACCOUNT=$SQLACCOUNT SQLPASSWORD=$SQLPASSWORD AGTACCOUNT=$AGTACCOUNT AGTPASSWORD=$AGTPASSWORD SQLBROWSERACCOUNT=$SQLBROWSERACCOUNT SQLBROWSERPASSWORD=$SQLBROWSERPASSWORD\"
$settings =\"/settings\"+($sourcesDir+\"setup.ini\"«»)
$InstSQL = $setup+\" \"+$args+\" \"+$settings
$process = [system.diagnostics.process]::«»start($InstSQL)
[/code:1]

$process ne se lance pas :

[code:1]
Exception calling \"Start\" with \"1\" argument(s): \"The system cannot find the file specified\"
At line:1 char:36
+ [system.diagnostics.process]::«»start( <<<< $c)
[/code:1]

Si je mets $setup à la place de $InstSQL, ça fonctionne, sauf qu'il me manque tous les paramètres de la commande...

S'il n'y a pas de solution en ces termes, dois-je installer PS v2 ou créer une fonction compatbible avec le .NET 3.5 ?

Merci pour votre aide.

Vincent

Dans le doute, reboot...

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

Plus d'informations
il y a 15 ans 1 mois #8892 par vlb
Après vérification de la classe j'ai trouvé quelque chose :

msdn.microsoft.com/en-us/libr...ess.start.aspx

En fait, je dois passer mes arguments de la sorte :

[code:1]$process = [system.diagnostics.process]::«»start($setup, $settings)[/code:1]

L'installation fonctionne, maintenant reste à savoir si le script est en attente de fin d'exécution du process...

Vincent

Vincent

Dans le doute, reboot...

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

Plus d'informations
il y a 15 ans 1 mois #8895 par Jacques Barathon
Si tu lis ma réponse à ton premier message, tu verras que je te suggérais cette syntaxe, et que j'y donne également le moyen d'attendre la fin de l'installation avant de poursuivre le script.

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

Plus d'informations
il y a 15 ans 1 mois #8916 par vlb
janel écrit:

Si tu lis ma réponse à ton premier message, tu verras que je te suggérais cette syntaxe, et que j'y donne également le moyen d'attendre la fin de l'installation avant de poursuivre le script.


Bonjour Janel,

Merci pour ton retour.

Cependant ce n'est pas très urbain de ne pas laisser le doute entre 2 réponses qui se croisent, car ce n'est pas parce que je poste que j'arrête de chercher, et le fait que l'on puisse être plusieurs à trouver une réponse...

Et en plus ça marche !

Merci à toi Janel

Vincent

Dans le doute, reboot...

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

Plus d'informations
il y a 15 ans 1 mois #8920 par Jacques Barathon
Non, je ne suis pas très urbain. Sans doute mes origines paysannes. ;)

Le principal c'est que ça marche !

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

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