Question
Boucle Do Until
- Doni
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 25
- Remerciements reçus 0
il y a 10 ans 1 mois #21476
par Doni
Boucle Do Until a été créé par Doni
Bonjour,
Débutant en powershell j'ai fait un début de script pour vérifier un service :
$JobTry = 0
$Service = Get-Service -Name \"AudioSrv\"
do {
If ($Service.Status -eq \"Stopped\"){
Start-Sleep 3
$JobTry++
Write-Host \"Error $JobTry\"
(Get-Service -Name \"AudioSrv\").Status
}
ELSE {}
}
until ($JobTry -ge 15 -or $Service.Status -eq \"Running\")
Clear-Variable JobTry
Mon probléme est que lorsque je relance le service et qu'il passe en Running le script continu jusqu'au 15iéme boucle.
Si quelqu'un peux m'aider ça serait bien sympa.
Merci d'avance
Débutant en powershell j'ai fait un début de script pour vérifier un service :
$JobTry = 0
$Service = Get-Service -Name \"AudioSrv\"
do {
If ($Service.Status -eq \"Stopped\"){
Start-Sleep 3
$JobTry++
Write-Host \"Error $JobTry\"
(Get-Service -Name \"AudioSrv\").Status
}
ELSE {}
}
until ($JobTry -ge 15 -or $Service.Status -eq \"Running\")
Clear-Variable JobTry
Mon probléme est que lorsque je relance le service et qu'il passe en Running le script continu jusqu'au 15iéme boucle.
Si quelqu'un peux m'aider ça serait bien sympa.
Merci d'avance
Connexion ou Créer un compte pour participer à la conversation.
- Doni
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 25
- Remerciements reçus 0
il y a 10 ans 1 mois #21477
par Doni
Réponse de Doni sur le sujet Re:Boucle Do Until
J'ai trouvé comment faire :
$JobTry = 0
$Service = Get-Service -Name \"AudioSrv\"
If ($Service.Status -eq \"Stopped\"){
do {
If ($Service.Status -eq \"Stopped\"){
#Début de mon script
Wait-Event -Timeout 3
$JobTry++
Write-Host \"Error $JobTry\"
$StatusinLoop = (Get-Service -Name \"AudioSrv\").Status
$StatusinLoop
#Fin de mon script
#$JobTryResult = $JobTry + $error.count
}
ELSE {}
}
until ($StatusinLoop -eq \"Running\"-or $JobTry -eq 15)
If ($StatusinLoop -eq \"Running\") {
Write-Host \"Running\" }
ELSE{Write-Host \"Retry \"$JobTry }
Clear-Variable JobTry
}
ElSE{}
Si cela peux aider.
A++
$JobTry = 0
$Service = Get-Service -Name \"AudioSrv\"
If ($Service.Status -eq \"Stopped\"){
do {
If ($Service.Status -eq \"Stopped\"){
#Début de mon script
Wait-Event -Timeout 3
$JobTry++
Write-Host \"Error $JobTry\"
$StatusinLoop = (Get-Service -Name \"AudioSrv\").Status
$StatusinLoop
#Fin de mon script
#$JobTryResult = $JobTry + $error.count
}
ELSE {}
}
until ($StatusinLoop -eq \"Running\"-or $JobTry -eq 15)
If ($StatusinLoop -eq \"Running\") {
Write-Host \"Running\" }
ELSE{Write-Host \"Retry \"$JobTry }
Clear-Variable JobTry
}
ElSE{}
Si cela peux aider.
A++
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 10 ans 1 mois #21480
par Philippe
Réponse de Philippe sur le sujet Re:Boucle Do Until
bonjour Doniangel

sur ton premiere script tu avais deux erreurs :
tu avais oublié l'affectation à la variable $Service de l'etat du service (sous la ligne write-host) :
[code:1](Get-Service -Name \"AudioSrv\"«»).Status[/code:1]
tu coup sur la ligne suivante $Service.Status avais toujours la même valeur [code:1]until ($JobTry -ge 15 -or $Service.Status -eq \"Running\"«») [/code:1]
de plus $Service.Status sur le until ne renvoie rien, il fallait mettre $Service seul
sur ton nouveaux script tu a remplacé le $service du until par $StatusinLoop et ta su ou corrigé ton erreur !!
la prochaine fois j'essaierais d'arrivé plus tôt !!<br><br>Message édité par: 6ratgus, à: 4/02/16 18:02
bonne nouvelle !J'ai trouvé comment faire :
sur ton premiere script tu avais deux erreurs :
tu avais oublié l'affectation à la variable $Service de l'etat du service (sous la ligne write-host) :
[code:1](Get-Service -Name \"AudioSrv\"«»).Status[/code:1]
tu coup sur la ligne suivante $Service.Status avais toujours la même valeur [code:1]until ($JobTry -ge 15 -or $Service.Status -eq \"Running\"«») [/code:1]
de plus $Service.Status sur le until ne renvoie rien, il fallait mettre $Service seul
sur ton nouveaux script tu a remplacé le $service du until par $StatusinLoop et ta su ou corrigé ton erreur !!
la prochaine fois j'essaierais d'arrivé plus tôt !!<br><br>Message édité par: 6ratgus, à: 4/02/16 18:02
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.074 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Boucle Do Until