IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Ping liste serveurs rapport HTML [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2017
    Messages : 18
    Par défaut Ping liste serveurs rapport HTML
    Bonjour à tous et à toutes,

    Je cherche à effectuer un rapport de ping au format HTML à partir d'une liste de serveurs.

    J'ai un peut de mal à faire quelque chose de simple, exemple un simple tableau avec en rouge les serveurs Offline.

    Pour le moment j'arrive a obtenir le résultat pour un serveur seulement je ne sais pas comment faire pour obtenir le résultat avec une boucle style "foreach"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    # Variables de travail
    $srv = "PC_Name"
    $html = "C:\Rapport\Rapport.html"
    
    # En-tête HTML
    $head = @"
    <Title>Ping Serveurs</Title>
    <style>
    body { background-color:#FFFFFF;
           font-family:Tahoma;
           font-size:12pt; }
    td, th { border:1px solid black; 
             border-collapse:collapse; }
    th { color:white;
         background-color:black; }
    table, tr, td, th { padding: 2px; margin: 0px }
    tr:nth-child(odd) {background-color: lightgray}
    table { width:95%;margin-left:5px; margin-bottom:20px;}
    </style>
    <br>
    <H1>Ping Serveurs</H1>
    "@
    
    #Ping du serveur
    $ping = new-object System.Net.Networkinformation.Ping 
    $data = $ping.send("$srv") | select Address,Status
    
    # Fichier de sortie au format HTML
    $data | ConvertTo-Html -Head $head | Out-File $html
    Car j'ai trouver plusieurs script sur internet mais je ne les comprends pas du coup aucun intérêt..

    Merci par avance,
    Cordialement,

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Par défaut
    salut PierreG16

    pour commencer, le top serait que tu lise quelques tuto voir livre sur PowerShell

    il te faire une boucle sur le ping et peut etre sur le convertto-html

    pour le ping seulement ça peut donner ceci : (je n'ai pas mis tous le code)
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $listesrv = "PC_Name1", "PC_Name2", "PC_Name3"
     
    $ping = new-object System.Net.NetworkInformation.Ping
    $data = @()
    #Ping des serveurs
    foreach ($srv in $listesrv) {
        $data += $ping.send("$srv") | select @{n="nom";e={$srv}}, Address,Status
     
        }
    $ping.Dispose()
     
    # Fichier de sortie au format HTML
    $data | ConvertTo-Html -Head $head | Out-File $html

    si tu veux mettre des couleurs ça va etre plus difficile
    de suite je n'est pas la solution mais je regarde ce que je trouve !

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2017
    Messages : 18
    Par défaut
    Bonjour,

    Merci beaucoup pour ton aide, je vais lire attentivement le lien qui tu as mis.

    j'ai fais le test avec le code que tu as mis, j'ai deux petite questions a quoi sert dans le cas présent la ligne :
    Dans mon tableau, quand les serveurs son joignable je n'ai pas de problème, par contre quand les serveurs ne le sont pas en "Adress" j'ai l'ip du serveur sur lequel j'exécute mon powershell

    Exemple ici le Serveur sur le quelle j'exécute mon Powershell est le SrvPowershell avec l'ip :126.1.1.50

    listes des Serveurs
    Srv1 126.1.1.10
    Srv2 126.1.1.20
    SrvPowershell(Serveur d'exécution) 126.1.1.50

    Résultat du rapport html
    nom Adress Status
    Srv1 126.1.1.10 Success
    Srv2 126.1.1.50 DestinationHostUnreachable

    Merci par avance,

    Cordialement,

  4. #4
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Par défaut
    alors dispose sert a libéré (rendre a os/powershell) la mémoire pris par l'objet (le new-object)

    j'avais rajouter la colonne nom pour compensé certain problème avec l'affichage de l'adresse (par exemple pour des nom de serveur inexistant ne renvoie pas d'IP)
    mais je t'avoue que ton résultat me laisse perplexe
    il semble que tu est modifier quelque chose dans le select

    peut tu me montrer cette partie de code pour que je comprenne ?!

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2017
    Messages : 18
    Par défaut
    D'accord, je comprend mieux

    voici mon code powershell complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    # Variables de travail
    $listsrv = Get-Content -path "C:\rapport\Srv.txt"
    $html = "C:\rapport\rapport.html"
    
    #####################################################################################################
    # En-tête HTML
    $head = @"
    <Title>Caisse d'Epargne - Ping Serveurs VMWare</Title>
    <style>
    body { background-color:#FFFFFF;
    font-family:Tahoma;
    font-size:12pt; }
    td, th { border:1px solid black;
    border-collapse:collapse; }
    th { color:white;
    background-color:black; }
    table, tr, td, th { padding: 2px; margin: 0px }
    table { width:95%;margin-left:5px; margin-bottom:20px;}
    </style>
    <br>
    <img src="http://zupimages.net/viewer.php?id=18/09/6bp1.png" align="middle" alt="LogoF">
    "@
    #####################################################################################################
    
    #Ping des serveurs
    $ping = new-object System.Net.Networkinformation.Ping
    $data = @()
    foreach ($srv in $listsrv ) { 
        $data += $ping.send($srv) | select @{n="nom";e={$srv}},Address,Status
    }
     $ping.Dispose()
    
    # Fichier de sortie au format HTML
    $data | ConvertTo-Html -Head $head -PostContent "<h6>Créé le $(Get-Date)</h6>"| Out-File $html
    
    
    #####################################################################################################
    #Paramètre d'envoie de mail
    
    #Encodage UTF8
    $encodingMail = [System.Text.Encoding]::UTF8 
    #Destinataire de l'email
    $To = "test@*****"
    #L’émetteur de l'email
    $From  = "Rapport<noreply@ServeurPowershell>"
    #Le Sujet de l'email
    $Subject = "Ping des Serveurs VMware"
    #Le serveur SMTP (ex : votre serveur Exchange)
    $SmtpServer = "SrvMail"
    #Le corps de votre message
    $body = Get-Content "$html" -Raw
    #Commande d'envoi
    Send-MailMessage -to $to -From $from -Subject $Subject -SmtpServer $SmtpServer -BodyAsHtml $body -Encoding $encodingMail
    #####################################################################################################

    ps: Question bête mais comment fait-on pour rendre le texte de code au format Powershell ?

  6. #6
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Par défaut
    ps: Question bête mais comment fait-on pour rendre le texte de code au format Powershell ?
    dans la balise code tu rajoute =PowerShell : "CODE=PowerShell]$listsrv=...[/CODE"

    pour ton code je vois pas d'où viens le problème

    sur mes tests j'ai pas ce résultat !

    sur l'affichage de la variable $data sur la console tu a bien les bonnes infos ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Dependance d'une liste par rapport à une autre
    Par jojo57 dans le forum JDBC
    Réponses: 1
    Dernier message: 01/12/2006, 22h18
  2. Réponses: 2
    Dernier message: 05/06/2006, 18h51
  3. Réponses: 2
    Dernier message: 04/06/2006, 21h11
  4. [InetAdress] isReachable : pb ping avec serveurs linux
    Par tck-lt dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 23/08/2005, 19h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo