- forum
- PowerShell
- Entraide pour les débutants
- Gros problème de "prompts" avec script à faire tourner sous linux
Question
Gros problème de "prompts" avec script à faire tourner sous linux
- Ced
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
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é.
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.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 2 ans 7 mois #31262
par Arnaud Petitjean
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 ?
Réponse de Arnaud Petitjean sur le sujet Gros problème de "prompts" avec script à faire tourner sous linux
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 ?
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.
- Ced
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 2 ans 7 mois - il y a 2 ans 7 mois #31266
par Ced
Réponse de Ced sur le sujet Gros problème de "prompts" avec script à faire tourner sous linux
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"
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6300
- Remerciements reçus 68
il y a 2 ans 7 mois #31267
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Gros problème de "prompts" avec script à faire tourner sous linux
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."
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.
- forum
- PowerShell
- Entraide pour les débutants
- Gros problème de "prompts" avec script à faire tourner sous linux
Temps de génération de la page : 0.073 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Gros problème de "prompts" avec script à faire tourner sous linux