Question A propos du script Get-Audit

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

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

Plus d'informations
il y a 16 ans 2 mois #5974 par Laurent Dardenne
Olivier écrit:

Si y a des suggestion ou améliorations, suis prenneur:-)

L'ajout des postfixes \&quot;OK/KO\&quot; 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.
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.

Plus d'informations
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 \&quot;OK\&quot; \&quot;KO\&quot; 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

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

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

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

Plus d'informations
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à :unsure: 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 \&quot;SilentlyContinue\&quot; -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 &gt; 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 \&quot;SilentlyContinue\&quot; -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 \&quot;Stations hors ligne :\&quot; $PingKO
Write-Host \&quot;Stations en ligne :\&quot; $PingOK[/code:1]

ok , y a des améliorations à faire mais là, c'est un peut le cafouillage pour moi ... :blink:

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.

Plus d'informations
il y a 16 ans 2 mois #5984 par Laurent Dardenne
Olivier écrit:

mais là, c'est un peut le cafouillage pour moi ...

C'est pour ça que la marche arrière existe ;)
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 :lol:
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
Propulsé par Kunena