Question
[Resolu] Garder les valeurs d'un trap
- FLORENT
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 12
- Remerciements reçus 0
il y a 14 ans 10 mois #9556
par FLORENT
[Resolu] Garder les valeurs d'un trap a été créé par FLORENT
Bonjour a tous,
Je tourne sous Powershell v1, je souhaite faire un script qui envoi un ping a une liste de PC, le souci c'est que des fois j'ai une erreur. Erreur que je traite avec un trap mais voila le souci : Les variables modifiees dans le trap ne sont pas gardees en memoire.
Voici mon code :
[code:1]#Computer for which the ping don't work
$textFail = @()
$textFail += \"Liste d'ordinateurs\"
#Computer for which the ping work
$textSuccess = @()
$textSuccess += \"Liste d'ordinateurs\"
#Computer List Export
$listePC = @()
$listePC += Get-content ListePC.txt
$erreure = \"false\"
#for each computer
foreach($pc in $listePC)
{
#we try a ping
$ping = New-Object Net.NetworkInformation.Ping
$PingResult = $ping.send($pc)
trap
{
$erreure = \"true\"
continue
}
if ($erreure -ne \"true\"«»)
{
#If ping works, the pc is send to success list
$pc.Tostring()
if ($PingResult.Status.Tostring() -eq \"success\"«»)
{
$textSuccess += $pc
}
#If ping doesn't work, the pc is send to fail list
else
{
$textFail += $pc
}
}
else
{
$textFail += \"Unfounded PC\"
$textFail += $pc
$erreure = \"false\"
}
$pc
}
$textSuccess > sucess.txt
$textFail > fail.txt[/code:1]
Quand je regarde avec un debogueur lorsque l'on rentre dans le trap, $erreure passe bien en true mais repasse en false aussitot sortit du trap.
Please Help !!!!!
Message édité par: toaster, à: 4/05/11 03:53<br><br>Message édité par: toaster, à: 10/05/11 04:27
Je tourne sous Powershell v1, je souhaite faire un script qui envoi un ping a une liste de PC, le souci c'est que des fois j'ai une erreur. Erreur que je traite avec un trap mais voila le souci : Les variables modifiees dans le trap ne sont pas gardees en memoire.
Voici mon code :
[code:1]#Computer for which the ping don't work
$textFail = @()
$textFail += \"Liste d'ordinateurs\"
#Computer for which the ping work
$textSuccess = @()
$textSuccess += \"Liste d'ordinateurs\"
#Computer List Export
$listePC = @()
$listePC += Get-content ListePC.txt
$erreure = \"false\"
#for each computer
foreach($pc in $listePC)
{
#we try a ping
$ping = New-Object Net.NetworkInformation.Ping
$PingResult = $ping.send($pc)
trap
{
$erreure = \"true\"
continue
}
if ($erreure -ne \"true\"«»)
{
#If ping works, the pc is send to success list
$pc.Tostring()
if ($PingResult.Status.Tostring() -eq \"success\"«»)
{
$textSuccess += $pc
}
#If ping doesn't work, the pc is send to fail list
else
{
$textFail += $pc
}
}
else
{
$textFail += \"Unfounded PC\"
$textFail += $pc
$erreure = \"false\"
}
$pc
}
$textSuccess > sucess.txt
$textFail > fail.txt[/code:1]
Quand je regarde avec un debogueur lorsque l'on rentre dans le trap, $erreure passe bien en true mais repasse en false aussitot sortit du trap.
Please Help !!!!!
Message édité par: toaster, à: 4/05/11 03:53<br><br>Message édité par: toaster, à: 10/05/11 04:27
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 14 ans 10 mois #9558
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Garder les valeurs d'un trap
Salut,
soit tu utilises un appel à get-variable en précisant le scope, soit utilises une globale ( peut être péréférable dans cette construction).
Sinon il existe les valeurs booléenne $true et $false...
soit tu utilises un appel à get-variable en précisant le scope, soit utilises une globale ( peut être péréférable dans cette construction).
Sinon il existe les valeurs booléenne $true et $false...
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- FLORENT
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 12
- Remerciements reçus 0
il y a 14 ans 10 mois #9562
par FLORENT
Réponse de FLORENT sur le sujet Re:Garder les valeurs d'un trap
Merci pour ta reponse, j'avais regle le probleme un peu plus tot en utilisant une technique un peu moche mais qui a marche : J'ai stocke le true/false dans un fichier texte 
Ca donne ca :
[code:1]#Computer for which the ping don't work
$textFail = @()
$textFail += \"Computer List\"
#Computer for which the ping work
$textSuccess = @()
$textSuccess += \"Computer List\"
#Computer for which the ping don't work
$textFailAccess = @()
$textFailAccess += \"Unfounded Computer\"
#Computer List Export
$listePC = @()
$listePC += Get-content ListePC2.txt
\"false\" > erreur.txt
#for each computer
foreach($pc in $listePC)
{
#we try a ping
$ping = New-Object Net.NetworkInformation.Ping
$PingResult = $ping.send($pc)
trap
{
\"true\" > erreur.txt
continue
}
if ((Get-Content erreur.txt) -ne \"true\"«»)
{
#If ping works, the pc is send to success list
if ($PingResult.Status.Tostring() -eq \"success\"«»)
{
$textSuccess += $pc
}
#If ping doesn't work, the pc is send to fail list
else
{
$textFail += $pc
}
}
else
{
$textFailAccess += $pc
}
\"false\" > erreur.txt
$pc
}
$textSuccess > sucess.txt
$textFail > fail.txt
$textFailAccess > failAccess.txt[/code:1]
Ca donne ca :
[code:1]#Computer for which the ping don't work
$textFail = @()
$textFail += \"Computer List\"
#Computer for which the ping work
$textSuccess = @()
$textSuccess += \"Computer List\"
#Computer for which the ping don't work
$textFailAccess = @()
$textFailAccess += \"Unfounded Computer\"
#Computer List Export
$listePC = @()
$listePC += Get-content ListePC2.txt
\"false\" > erreur.txt
#for each computer
foreach($pc in $listePC)
{
#we try a ping
$ping = New-Object Net.NetworkInformation.Ping
$PingResult = $ping.send($pc)
trap
{
\"true\" > erreur.txt
continue
}
if ((Get-Content erreur.txt) -ne \"true\"«»)
{
#If ping works, the pc is send to success list
if ($PingResult.Status.Tostring() -eq \"success\"«»)
{
$textSuccess += $pc
}
#If ping doesn't work, the pc is send to fail list
else
{
$textFail += $pc
}
}
else
{
$textFailAccess += $pc
}
\"false\" > erreur.txt
$pc
}
$textSuccess > sucess.txt
$textFail > fail.txt
$textFailAccess > failAccess.txt[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.037 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Resolu] Garder les valeurs d'un trap