Question remplacement de fichier puis lancement de service qui ne fonctionne plus!!!

Plus d'informations
il y a 3 mois 1 semaine - il y a 3 mois 6 jours #33640 par Scirop
Bonjour,

Nous avons un script qui parcours un serveur, mets en place des fichiers de configuration et lance des services en fonction de ces fichiers de configuration.
Ce script est utilisé depuis des années sans souci
Depuis quelques temps (entre le 22/10 et le 29/10) le script a arrêté de fonctionner.

Il s'agit des lignes suivantes:
 

Que j'ai traduit dans une version allégée:
 
Copy-Item -Path ("D:\Common\0000\lbr\startup_\") ("D:\Common\0000\lbr\startup\") -Recurse
Copy-Item -Path ("D:\Common\0000\lbr\orthopv5_MAJ_PROD.ini") ("D:\Common\0000\lbr\orthopv5.ini") -Force
write-host "pause apres changement de INI avant lancement service"
Start-Sleep -Seconds 15
# Lancement du service de mise à jour automatique
Start-Service -Name "MustG5_Maj_0000"
Copy-Item -Path ("D:\Common\0000\lbr\orthopv5_ORIGINAL.ini") ("D:\Common\0000\lbr\orthopv5.ini")
Remove-Item -Path ("D:\Common\0000\lbr\startup\")

La pause (start-sleep) avant de lancer le service a été ajoutée depuis l'apparition du problème
Le problème se produit aussi bien dans le powershell du serveur 5.1.17763.4974, qu'en powershell 7
Pour que ça fonctionne on peut mettre en place le fichier ini avant de lancer le script ou bien arréter le script pendant le start-sleep et lancer le service à la main.

C'est donc que lors du lancement de service, le fichier ini n'est pas mis à jour, ou n'est pas lu malgrès la pause qui a été ajoutée.
Qu'est -ce qui peut bien justifier ça??? Qu'est-ce que je peux tenter pour corriger/contourner le problème?


 
Pièces jointes :
Dernière édition: il y a 3 mois 6 jours par Scirop. Raison: correction de la mise en page de l'extrait de code

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

Plus d'informations
il y a 3 mois 1 semaine #33655 par Arnaud Petitjean
Bonjour Scirop,

Pour que nous puissions t'aider au mieux, pourrais-tu nous partager le message d'erreur complet s'il y en a un ? 
En général ça aide énormément car les messages d'erreur de PowerShell sont très clairs.

Merci
Arnaud
PS : merci de bien vouloir te présenter dans le forum adhoc ;-)

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 3 mois 6 jours #33661 par Scirop
Bonjour,
Merci de te pencher sur mon problème qui est tellement incroyable à mes yeux...
Je n'ai pas de message d'erreur.
La copie du fichier ini se fait bien (puisque si je l'ouvre pendant le start-sleep, le orthopv5.ini est bien remplacé par le orthopv5_MAJ_prod.ini)
Le service se lance bien, mais il ne tient pas compte du remplacement de fichier; il se comporte comme avec le orthopv5_original.ini.

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

Plus d'informations
il y a 3 mois 6 jours #33666 par Arnaud Petitjean
C'est curieux que ce soit arrêté subitement de marcher.
As tu regardé ce qu'il y a dans tes logs ?

Par ailleurs, pourquoi ne pas arrêter le service ou faire un Restart-Service au lieu d'un Start-Service ?

As-tu essayé de faire l'action manuellement pour voir s'il n'y a pas un message d'erreur qui serait passé inaperçu ?

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 3 mois 6 jours #33671 par Scirop
Je suis bien d'accord. ça fonctionnait parfaitement depuis plusieurs années (2-3 ans) il y a eu quelques évolutions importantes (gestion de plusieurs serveurs, système de mise à jour différentiés...), mais les dernières évolutions datent d'il y a quelques mois et cela fonctionnait encore.
Mais du jour au lendemain. Plus moyen de faire fonctionner le système.

Le service ne tourne pas en général.
Le dossier est en générale organisé pour lancer l'application en mode manuel.
Mais lors de mises à jour le script de mise à jour dont est extrait le système ci-dessus est lancé.

Oh purée, j'ai trouvé!!!
Après avoir lancé le service on remet le fichier ini dans son état initial...
Soit le serveur est plus lent pour lancer le service, soit il est plus rapide pour re-remplacer le fichier!
en mettant une pause de 1s après le lancement du service ça passe.

Merci.
Le fait d'avoir creusé en en parlant m'a aidé à retrouver la voie!

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

Plus d'informations
il y a 3 mois 6 jours #33673 par Arnaud Petitjean
Super ! Je suis content que tu aies pu résoudre ton problème (même si je n'ai rien fait  ).

Cela étant dit, je n'aime pas trop les solutions à base de temporisation car c'est en général pas très fiable. La preuve... 

Il serait mieux de faire une boucle qui attends l'arrêt ou le redémarrage du service certainement. Non ? (désolé si je n'ai pas saisi tout le contexte)

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

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