Question A propos du script Get-Audit
- Olivier
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 182
- Remerciements reçus 0
il y a 16 ans 2 mois #5973
par Olivier
Réponse de Olivier sur le sujet Re:A propos du script Get-Audit
Une solution ...
[code:1]$PingMachines = Get-Content \"D:\Windows\PowerShell\Scripts\Working.txt\"
new-item D:\Windows\PowerShell\Scripts\PingOK.txt,D:\Windows\PowerShell\Scripts\PingKO.txt –type file -force
Clear-Content D:\Windows\PowerShell\Scripts\PingOK.txt,D:\Windows\PowerShell\Scripts\PingKO.txt
ForEach($MachineName In $PingMachines)
{$PingStatus = Test-Connection $MachineName -ErrorAction \"SilentlyContinue\" -count 1 | Select-Object statuscode
If ($PingStatus.StatusCode -eq 0)
{$MachineName + \" OK\" | Out-File -Append D:\Windows\PowerShell\Scripts\PingOK.txt}
else
{$MachineName + \" KO\" | Out-File -Append D:\Windows\PowerShell\Scripts\PingKO.txt}
}
$PingOK = Get-content D:\Windows\PowerShell\Scripts\PingOK.txt
$PingKO = Get-content D:\Windows\PowerShell\Scripts\PingKO.txt
Write-Host \"Stations hors ligne :\" $PingKO
Write-Host \"Stations en ligne :\" $PingOK[/code:1]
ça me crée les fichiers si ils existent pas et si ils existent, ça les vide et ça les remplis correctement ...
Pour la ligne qui contient :
[code:1]Test-Connection $MachineName -ErrorAction \"SilentlyContinue\" -count 1 | Select-Object statuscode[/code:1]
J'avais mis Select-Object * mais cela me renvoyait toujours une valeur \"vide\" au lieu du \"0\" et donc, mon script ne fonctionnait pas bien et les fichier ne se remplissait pas correctement. En utilisant spécifiquement \"Select-Object statuscode\" tout fonctionne bien
Si y a des suggestion ou améliorations, suis prenneur:-)
Merci déjà pour toute l'aide et à +
Olivier<br><br>Message édité par: Olivier, à: 18/01/10 13:50
[code:1]$PingMachines = Get-Content \"D:\Windows\PowerShell\Scripts\Working.txt\"
new-item D:\Windows\PowerShell\Scripts\PingOK.txt,D:\Windows\PowerShell\Scripts\PingKO.txt –type file -force
Clear-Content D:\Windows\PowerShell\Scripts\PingOK.txt,D:\Windows\PowerShell\Scripts\PingKO.txt
ForEach($MachineName In $PingMachines)
{$PingStatus = Test-Connection $MachineName -ErrorAction \"SilentlyContinue\" -count 1 | Select-Object statuscode
If ($PingStatus.StatusCode -eq 0)
{$MachineName + \" OK\" | Out-File -Append D:\Windows\PowerShell\Scripts\PingOK.txt}
else
{$MachineName + \" KO\" | Out-File -Append D:\Windows\PowerShell\Scripts\PingKO.txt}
}
$PingOK = Get-content D:\Windows\PowerShell\Scripts\PingOK.txt
$PingKO = Get-content D:\Windows\PowerShell\Scripts\PingKO.txt
Write-Host \"Stations hors ligne :\" $PingKO
Write-Host \"Stations en ligne :\" $PingOK[/code:1]
ça me crée les fichiers si ils existent pas et si ils existent, ça les vide et ça les remplis correctement ...
Pour la ligne qui contient :
[code:1]Test-Connection $MachineName -ErrorAction \"SilentlyContinue\" -count 1 | Select-Object statuscode[/code:1]
J'avais mis Select-Object * mais cela me renvoyait toujours une valeur \"vide\" au lieu du \"0\" et donc, mon script ne fonctionnait pas bien et les fichier ne se remplissait pas correctement. En utilisant spécifiquement \"Select-Object statuscode\" tout fonctionne bien
Si y a des suggestion ou améliorations, suis prenneur:-)
Merci déjà pour toute l'aide et à +
Olivier<br><br>Message édité par: Olivier, à: 18/01/10 13:50
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Auteur du sujet
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 2 mois #5974
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:A propos du script Get-Audit
Olivier écrit:
En optimisation j'aurais plutot complété une collection que j'écrirais dans un fichier en fin de boucle, mais l'avantage avec ton approche est qu'on peut mettre en place une reprise en cas de crash à l'aide de compare-object :
L'ajout des postfixes \"OK/KO\" est redondant, l'info est déjà porté par le fichier, ainsi si tu veux relancer le traitement uniquement sur les machines KO pas besoin de retraiter le nom.Si y a des suggestion ou améliorations, suis prenneur:-)
En optimisation j'aurais plutot complété une collection que j'écrirais dans un fichier en fin de boucle, mais l'avantage avec ton approche est qu'on peut mettre en place une reprise en cas de crash à l'aide de compare-object :
reste=Compare-object ArrayWorking -Array(OK+KO)
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Olivier
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 182
- Remerciements reçus 0
il y a 16 ans 2 mois #5975
par Olivier
Réponse de Olivier sur le sujet Re:A propos du script Get-Audit
J'avais mis les \"OK\" \"KO\" pour contrôler que les informations aillent bien s'écrire dans le bon fichier ...
Plus trop besoin d'elle maintenant que ça fonctionne ...
Pour ce qui concerne une potentielle reprise en cas d'echec, il faudrait ne pas effacer le contenu des fihciers mais y ajouter les stations inventoriée dans PingOK.txt mais sans pour autant les laisser lors du premier inventaire ...
Si une foi que le script est lancé, on aura de toute façon le fichier PingKO.txt à dispo pour refaire l'inventaire avec mais dans ce cas, faut pas écraser les info contenues dans PingOK ...
Une idée du comment je pourrais faire ?
Merci d'avance
Olivier
Plus trop besoin d'elle maintenant que ça fonctionne ...
Pour ce qui concerne une potentielle reprise en cas d'echec, il faudrait ne pas effacer le contenu des fihciers mais y ajouter les stations inventoriée dans PingOK.txt mais sans pour autant les laisser lors du premier inventaire ...
Si une foi que le script est lancé, on aura de toute façon le fichier PingKO.txt à dispo pour refaire l'inventaire avec mais dans ce cas, faut pas écraser les info contenues dans PingOK ...
Une idée du comment je pourrais faire ?
Merci d'avance
Olivier
Connexion ou Créer un compte pour participer à la conversation.
- Olivier
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 182
- Remerciements reçus 0
il y a 16 ans 2 mois #5976
par Olivier
Réponse de Olivier sur le sujet Re:A propos du script Get-Audit
Une solution serait de tester en premier lieu si PingKO existe ET qu'il n'est pas vide, prendre son contenu pour démarrer l'inventaire ignoré lors de la précédante tentative ...
je reviens sitot que j'ai une solution qui tienne plus ou moins la route ...
À +
Olivier
je reviens sitot que j'ai une solution qui tienne plus ou moins la route ...
À +
Olivier
Connexion ou Créer un compte pour participer à la conversation.
- Olivier
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 182
- Remerciements reçus 0
il y a 16 ans 2 mois #5982
par Olivier
Réponse de Olivier sur le sujet Re:A propos du script Get-Audit
Voilà
on doit pouvoir faire mieux
[code:1]$PingMachines = Get-Content D:\Windows\PowerShell\Scripts\Working.txt
If ((Test-Path D:\Windows\PowerShell\Scripts\PingKO.txt) -AND (Get-content D:\Windows\PowerShell\Scripts\PingKO.txt).lenght -gt 0)
{$PingMachineKO = Get-Content D:\Windows\PowerShell\Scripts\PingKO.txt
ForEach($PingKO In $PingMachineKO)
{$PingStatus = Test-Connection $MachineName -ErrorAction \"SilentlyContinue\" -count 1 | Select-Object statuscode
If ($PingStatus.StatusCode -eq 0)
{$PingOK | Out-File -Append D:\Windows\PowerShell\Scripts\PingOK.txt}
else
{$PingKO | Out-File D:\Windows\PowerShell\Scripts\PingKO.txt}
}
}
new-item D:\Windows\PowerShell\Scripts\PingOK.txt,D:\Windows\PowerShell\Scripts\PingKO.txt –type file -force > event.log
Clear-Content D:\Windows\PowerShell\Scripts\PingOK.txt,D:\Windows\PowerShell\Scripts\PingKO.txt
ForEach($MachineName In $PingMachines)
{$PingStatus = Test-Connection $MachineName -ErrorAction \"SilentlyContinue\" -count 1 | Select-Object statuscode
If ($PingStatus.StatusCode -eq 0)
{$MachineName | Out-File -Append D:\Windows\PowerShell\Scripts\PingOK.txt}
else
{$MachineName | Out-File -Append D:\Windows\PowerShell\Scripts\PingKO.txt}
}
$PingOK = Get-content D:\Windows\PowerShell\Scripts\PingOK.txt
$PingKO = Get-content D:\Windows\PowerShell\Scripts\PingKO.txt
Write-Host \"Stations hors ligne :\" $PingKO
Write-Host \"Stations en ligne :\" $PingOK[/code:1]
ok , y a des améliorations à faire mais là, c'est un peut le cafouillage pour moi ...
Olivier
Code mis en forme (sans changements !): Olivier, à: 18/01/10 17:34<br><br>Message édité par: Olivier, à: 18/01/10 17:39
[code:1]$PingMachines = Get-Content D:\Windows\PowerShell\Scripts\Working.txt
If ((Test-Path D:\Windows\PowerShell\Scripts\PingKO.txt) -AND (Get-content D:\Windows\PowerShell\Scripts\PingKO.txt).lenght -gt 0)
{$PingMachineKO = Get-Content D:\Windows\PowerShell\Scripts\PingKO.txt
ForEach($PingKO In $PingMachineKO)
{$PingStatus = Test-Connection $MachineName -ErrorAction \"SilentlyContinue\" -count 1 | Select-Object statuscode
If ($PingStatus.StatusCode -eq 0)
{$PingOK | Out-File -Append D:\Windows\PowerShell\Scripts\PingOK.txt}
else
{$PingKO | Out-File D:\Windows\PowerShell\Scripts\PingKO.txt}
}
}
new-item D:\Windows\PowerShell\Scripts\PingOK.txt,D:\Windows\PowerShell\Scripts\PingKO.txt –type file -force > event.log
Clear-Content D:\Windows\PowerShell\Scripts\PingOK.txt,D:\Windows\PowerShell\Scripts\PingKO.txt
ForEach($MachineName In $PingMachines)
{$PingStatus = Test-Connection $MachineName -ErrorAction \"SilentlyContinue\" -count 1 | Select-Object statuscode
If ($PingStatus.StatusCode -eq 0)
{$MachineName | Out-File -Append D:\Windows\PowerShell\Scripts\PingOK.txt}
else
{$MachineName | Out-File -Append D:\Windows\PowerShell\Scripts\PingKO.txt}
}
$PingOK = Get-content D:\Windows\PowerShell\Scripts\PingOK.txt
$PingKO = Get-content D:\Windows\PowerShell\Scripts\PingKO.txt
Write-Host \"Stations hors ligne :\" $PingKO
Write-Host \"Stations en ligne :\" $PingOK[/code:1]
ok , y a des améliorations à faire mais là, c'est un peut le cafouillage pour moi ...
Olivier
Code mis en forme (sans changements !): Olivier, à: 18/01/10 17:34<br><br>Message édité par: Olivier, à: 18/01/10 17:39
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Auteur du sujet
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 16 ans 2 mois #5984
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:A propos du script Get-Audit
Olivier écrit:

On peut coder ainsi mais la relecture n'est pas facile.
J'ai un début de solution, mais pour le moment j'ai un petit souci d'algo avec la reprise qui ne doit pas insérer un fichier déjà existant dans la liste des KO.
Mais ici aussi sa relecture ne sera pas aisée...
Je constate que cette fonctionnalité de reprise nécessite qq specs
Pour toi la reprise ne se concerne pas les machines indiquées KO ?<br><br>Message édité par: Laurent Dardenne, à: 18/01/10 17:38
C'est pour ça que la marche arrière existemais là, c'est un peut le cafouillage pour moi ...
On peut coder ainsi mais la relecture n'est pas facile.
J'ai un début de solution, mais pour le moment j'ai un petit souci d'algo avec la reprise qui ne doit pas insérer un fichier déjà existant dans la liste des KO.
Mais ici aussi sa relecture ne sera pas aisée...
Je constate que cette fonctionnalité de reprise nécessite qq specs
Pour toi la reprise ne se concerne pas les machines indiquées KO ?<br><br>Message édité par: Laurent Dardenne, à: 18/01/10 17:38
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.057 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Contributions à la communauté
- A propos du script Get-Audit