Question Boucle Ping

Plus d'informations
il y a 1 semaine 3 heures - il y a 1 semaine 3 heures #30007 par brunod
Boucle Ping a été créé par brunod
Bonjour,

Merci par avance pour votre aide, mais je n'arrive pas à finaliser une boucle assez simple...
J'ai des serveurs de fichiers que je voudrais pinguer et lancer une exécution si le ping repond.
Ces serveurs de fichier se finissent par le chiffres 01 02 03 04 ...etc

Ma boucle teste tous les serveurs entre 01 et 10.
Si ping OK, alors exécute alors un code.
Si Ping KO, alors écrit "Ping KO"

La ou je bloque c'est, si tous les Ping sont KO, je voudrais pouvoir écrire "Quel est le nom du serveur de fichier ?" et le mettre en variable pour l’exécution du même code que PING OK.

Voila c'est que j'ai pu déjà faire :
$tri = ($env:computername).substring(0,3)
$computername = $FNP
$FNP = $tri+"CENTSQL0"

for ($i = 1; $i -lt 10; $i++) {
$ping = Test-Connection -ComputerName ($FNP+$i) -count 1 -quiet
if($ping -eq "$true")
{$computername=$FNP+$i
write-host -ForegroundColor Green "Ping $computername OK"}
elseif($ping -eq "$false")
{Write-Host -ForegroundColor Red "Ping $computername KO"}

}


En vous remerciant et vous souhaitant une bonne journée.
Dernière édition: il y a 1 semaine 3 heures par brunod.

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

Plus d'informations
il y a 6 jours 14 heures #30009 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Boucle Ping
Salut
"si tous les Ping sont KO, je voudrais pouvoir écrire "Quel est le nom du serveur de fichier ?" "
Il te faut mémoriser l'information. Reste à savoir si tu comptes avoir en résultat le nom de la machine et son état.

"et le mettre en variable pour l’exécution du même code que PING OK."
Pas compris.

En passant ceci est à éviter :
if($ping -eq "$true")
A remplacer par
if (Test-Connection -ComputerName ($FNP+$i) -count 1 -quiet)
{fait qq chose}
else
{fait autre chose}

Une solution pour tester une collection de 'résultat' :
 $resultat=@($true,$false)
[array]::TrueForAll($Resultat,[System.Predicate[boolean]]{param($Ping) $Ping -eq $true})
#False

#Valeur identique pour tous les éléments
 $resultat=@($true,$true)
[array]::TrueForAll($Resultat,[System.Predicate[boolean]]{param($Ping) $Ping -eq $true})
#True

Tutoriels PowerShell

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

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