Question if else : même résultat ...

Plus d'informations
il y a 13 ans 7 mois #12762 par ZOKI
if else : même résultat ... a été créé par ZOKI
Bonjour.
je ne comprends pas pourquoi cela ne fonctionne pas.

mon fichier c:\serv.ini contient le nom des services que je souhaite arrêter.

au départ ils sont tous lancés.
donc première exécution :
AVERTISSEMENT:Arrêt du service
AVERTISSEMENT:Arrêt du service
AVERTISSEMENT:Arrêt du service

je me dis \"cool\".

mais après l’arrêt si je relance le script, même résultat !!!
AVERTISSEMENT:Arrêt du service
AVERTISSEMENT:Arrêt du service
AVERTISSEMENT:Arrêt du service

je me dis \"pas cool\" ....

voici le code


$list = get-content c:\serv.ini
foreach ($name in $list)
{
if ($name.status -eq \"running\")
{
Write-Warning \"Le service $name est déjà arrêté\"
}
else
{
Write-Warning \"Arrêt du service $service\"
Stop-Service $list -Force
}
}

je ne vois pas, si vous pouvez éclairer mon chemin de vos lumières. Par avance, merci.

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

Plus d'informations
il y a 13 ans 7 mois #12763 par Richard Lazaro
Bonjour pourais tu fournir un exemple de ton fichier ?

lors de ton stop service, tu utilise la varaible $liste au lieu du $name.

Par ailleurs, tu fais un Get-Content sur ton C:\serv.ini mais derrière tu utilise le modèle objet dans le foreach $name.status.

Il faudrait impérativement un exemple de ton fichier d'ini.

Bien Cordialement,
Richard Lazaro.

Think-MS : (Get-Life).Days | %{ Learn-More }

\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein

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

Plus d'informations
il y a 13 ans 7 mois #12764 par ZOKI
Réponse de ZOKI sur le sujet Re:if else : même résultat ...
bonjour
le fichier ini ne contient que les services que je souhaite arrêter mais voici son contenu
axidbsafe
axilognotifier
firebird2.5

merci

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

Plus d'informations
il y a 13 ans 7 mois #12765 par SiSMik
Réponse de SiSMik sur le sujet Re:if else : même résultat ...
Bonjour,

Dans ta boucle, au niveau de la condition if, tu fais un test sur le status du service, et déclenches une action en conséquence, il faudrait peut $etre dans ce cas récupérer en amont un objet qui contient ces propriétés.

De plus dans ton if, tu conditionnes ta première action en vérifiant si le statut est à Running et en retour tu dis que le service est bien arrêté... :evil:

Y'a un bug là :p

Exemple:


[code:1]$ListService = Get-Content c:\serv.ini
Foreach ($Service in $ListService {
$Serv = Get-Service | Where { $_.name -eq $Service }
if ($Serv.status -ne \"running\"«») {
Write-Warning \"Le service $name est déjà arrêté\"
}
else {
Write-Warning \"Arrêt du service $service\"
Stop-Service $Service -Force
}
}
[/code:1]

Une idée de départ :)<br><br>Message édité par: benduru, à: 25/09/12 09:51

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

Plus d'informations
il y a 13 ans 7 mois #12769 par ZOKI
Merci Benduru pour ces explications.:blush: Cela parait si facile mais face à la page blanche... :blink:

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

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