Question Get-Service Status colorier

Plus d'informations
il y a 17 ans 4 mois #3258 par exca
Get-Service Status colorier a été créé par exca
Bonjour

J'essai de faire un truc tout bête mais je vois pas trop

Je voudrais afficher le status d'un service mais d'une certaine couleur en fonction de sa valeur

Ca donnnerait un truc du genre :
[code:1]Get-Service('machine1') IISADMIN |if ( $_.status -eq \"stopped\"«») {Write-Host $_.name $_.status -ForegroundColor red} elseif ( $_.status -eq \"running\"«») {Write-Host $_.name $_.status -ForegroundColor green}[/code:1]

Bon le \"if\" apres le \"|\" ca passe pas mais y doit bien exister un truc non ?


Merci

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

Plus d'informations
il y a 17 ans 4 mois #3259 par exca
Réponse de exca sur le sujet Re:Get-Service Status colorier
Ah visiblement il faudrait aussi \"invoke-expression \" devant la commande pour check le status d'un service sur une machine distante, c'est bien ca ?

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

Plus d'informations
il y a 17 ans 4 mois #3260 par Laurent Dardenne
Salut,
exca écrit:

Bon le \"if\" apres le \"|\" ca passe pas mais y doit bien exister un truc non ?

Le truc est que le pipeline ne peut pas exécuter des instructions directement, il faut les inclure dans un scriptbloc, un foreach par exemple :
[code:1]Get-Service |% {if ( $_.status -eq \"stopped\"«») {Write-Host $_.name $_.status -ForegroundColor red} elseif ( $_.status -eq \"running\"«») {Write-Host $_.name $_.status -ForegroundColor green} }[/code:1]
ou dans un filtre :
[code:1]
filter Coloriser{
Write-Host (\"{0} \"-F $_.name) -noNewLine
Switch ($_.status){
\"stopped\" { $color=[System.ConsoleColor]::Red}
\"running\" { $color=[System.ConsoleColor]::Green }
#Default {$color=[System.ConsoleColor]::«»Gray}
}
Write-Host $_.status -ForegroundColor $Color
}
get-service -computername Server01 -inc \"IISADMIN\" |Coloriser
[/code:1]
Verifie si en utilisant WMI ce n'est pas plus rapide.

Voir aussi :
laurent-dardenne.developpez.com/articles...werShell/Pipelining/

Message édité par: Laurent Dardenne, à: 18/11/08 17:39

Tutoriels PowerShell

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

Plus d'informations
il y a 17 ans 4 mois #3261 par Laurent Dardenne
Ensuite si tu veux généraliser le principe voir ce post
scriptolog.blogspot.com/2007/09/colorize...put-in-pipeline.html

Tutoriels PowerShell

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

Plus d'informations
il y a 17 ans 4 mois #3262 par exca
Réponse de exca sur le sujet Re:Get-Service Status colorier
Yahaaaa
Merci ca marche
[code:1]Get-Service IISADMIN |% {if ( $_.status -eq \"stopped\"«») {Write-Host $_.name $_.status -ForegroundColor red} elseif ( $_.status -eq \"running\"«») {Write-Host -NoNewLine $_.name\"`t\" ; Write-host $_.status -ForegroundColor green} }[/code:1]

Enfin me reste a voir pour le -computername qui n'est pas correct, je vais garder l'astuce du filtre ca me semble pas mal du tout

MERCI

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

Plus d'informations
il y a 17 ans 4 mois #3264 par exca
Réponse de exca sur le sujet Re:Get-Service Status colorier
[code:1]
Get-WmiObject -Class Win32_Service -ComputerName server01 -f \"name='IISADMIN'\" |% {if ( $_.state -eq \"stopped\"«») {Write-Host -NoNewLine $_.name\"`t\"; Write-Host $_.state -ForegroundColor red} elseif ( $_.state -eq \"running\"«») {Write-Host -NoNewLine $_.name\"`t`t\" ; Write-host $_.status -ForegroundColor green} }
[/code:1]

HOURA \o/<br><br>Message édité par: exca, à: 18/11/08 18:20

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

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