Question Gros problème de "prompts" avec script à faire tourner sous linux

Plus d'informations
il y a 2 ans 7 mois #31260 par Ced
Bonsoir,
Ayant réalisé un script afin d'effectuer des renouvellements automatiques de certificats SSL, j'ai un gros problème avec mon script qui fonctionne à merveille sous pwsh Windows mais qui ne tourne pas comme souhaité dans un container docker linux. Les "prompts" sont purement et simplement ignorés et le script tourne à toute vitesse en répondant par défaut aux questions posés et aux requêtes token qui demandent un peu de temps. Cela génère naturellement des erreurs car tout semble ignoré. 

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

Plus d'informations
il y a 2 ans 7 mois #31262 par Arnaud Petitjean
Bonjour Ced,

Je n'ai personnellement pas d'expérience avec Docker et PowerShell Linux mais c'est intéressant de découvrir ce cas d'usage.

Les prompts sont faits comment ? Via la commande Read-Host ?
Est-ce que le même script dans un container Windows a un autre comportement ?

Quelle version de PowerShell utilises-tu ?

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 ?
Les utilisateur(s) suivant ont remercié: Ced

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

Plus d'informations
il y a 2 ans 7 mois - il y a 2 ans 7 mois #31266 par Ced
Hello Arnaud et merci pour ta réponse,

En fait c'est un Powershell Core qui est de fait un container de docker qui est installé sur mon NAS Synology. Le principe est d'exécuter du Powershell où l'on veut et d'en faire un outil universel. C'est d'ailleurs officiellement supporté par Microsoft  (hub.docker.com/_/microsoft-powershell)  et le gros avantage est de ne pas installer tout un windows pour faire tourner un pwsh dans un environnement totalement différent.

Voilà le bout de code qui est censé générer un prompt (attente de réponse Y or N) qui fonctionne très bien sur pwsh windows 10 mais qui est bypassé sur mon pwsh linux.
D'autre part lorsqu'un module doit être installé, le script prend automatiquement la valeur par défaut sans me demander mon avis. En gros le pwsh ne prend pas la peine de s'arrêter, ce qui est un peu ennuyeux. Sinon ma version de PowerShell Core est 7.1.4

If (($CheckSLL.AllSANs) -eq $CommonName -and (Get-Date) -gt ($CheckSLL.NotBefore) -and ($CheckSLL.NotAfter)) {
    While ($Question -notmatch '^(Yes|No|Y|N)$') {
        $Question = 
        Read-Host "Previously generated certificate found, would you like to reuse it? (Yes / No)"
    }
}
else {
    $Question = "No"



 
Dernière édition: il y a 2 ans 7 mois par Ced.

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

Plus d'informations
il y a 2 ans 7 mois #31267 par Laurent Dardenne
Salut,
essaie un script avec uniquement un appel à Read-Host.

Selon la doc "This cmdlet only reads from the stdin stream of the host process. Usually, the stdin stream is connected to the keyboard of the host console."

Tutoriels PowerShell

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

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