Question Boucle Do Until

Plus d'informations
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

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

Plus d'informations
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++

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

Plus d'informations
il y a 10 ans 1 mois #21480 par Philippe
Réponse de Philippe sur le sujet Re:Boucle Do Until
bonjour Doniangel

J'ai trouvé comment faire :

bonne nouvelle ! B)

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
Propulsé par Kunena