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 :

Lire une variable d'environnement d'une liste de Postes [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Par défaut Lire une variable d'environnement d'une liste de Postes
    Bonjour,

    je souhaites lire une variable d'environnement présente sur un nombre de postes précis.

    Je dispose déjà d'un script qui lui, lit une clé de registre. La liste de poste est dans un .csv.

    J'utilise une boucle for each mais cela ne fonctionne pas. Il écrit en sortie (un fichier Html) la même valeur pour tous les postes..

    Je vous met ici 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
    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    ##################Define variables######################################## 
     
     
     
     
     
     
    ############################################################################ 
     
    $report = "C:\scripts\report.htm"  
    $servers = Get-content C:\scripts\test.txt 
     
    $checkrep = Test-Path $report  
     
    If ($checkrep -like "True") 
     
    { 
     
    Remove-Item "C:\scripts\report.htm" 
     
     
    } 
     
    New-Item "C:\scripts\report.htm" -type file 
     
    ################################ADD HTML Content############################# 
     
     
    Add-Content $report "<html>"  
    Add-Content $report "<head>"  
    Add-Content $report "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>"  
    Add-Content $report '<title>Serveurs de licences SOLIDWORKS</title>'  
    add-content $report '<STYLE TYPE="text/css">'  
    add-content $report  "<!--"  
    add-content $report  "td {"  
    add-content $report  "font-family: Tahoma;"  
    add-content $report  "font-size: 11px;"  
    add-content $report  "border-top: 1px solid #999999;"  
    add-content $report  "border-right: 1px solid #999999;"  
    add-content $report  "border-bottom: 1px solid #999999;"  
    add-content $report  "border-left: 1px solid #999999;"  
    add-content $report  "padding-top: 0px;"  
    add-content $report  "padding-right: 0px;"  
    add-content $report  "padding-bottom: 0px;"  
    add-content $report  "padding-left: 0px;"  
    add-content $report  "}"  
    add-content $report  "body {"  
    add-content $report  "margin-left: 5px;"  
    add-content $report  "margin-top: 5px;"  
    add-content $report  "margin-right: 0px;"  
    add-content $report  "margin-bottom: 10px;"  
    add-content $report  ""  
    add-content $report  "table {"  
    add-content $report  "border: thin solid #000000;"  
    add-content $report  "}"  
    add-content $report  "-->"  
    add-content $report  "</style>"  
    Add-Content $report "</head>"  
    Add-Content $report "<body>"  
    add-content $report  "<table width='50%'>"  
    add-content $report  "<tr bgcolor='Lavender'>"  
    add-content $report  "<td colspan='7' height='25' align='center'>"  
     
    #######################Title of table#################################################### 
     
    add-content $report  "<font face='tahoma' color='#003399' size='4'><strong>Serveurs de licences SOLIDWORKS</strong></font>"  
    add-content $report  "</td>"  
    add-content $report  "</tr>"  
    add-content $report  "</table>"  
     
    ######################Definae Columns################################################### 
    add-content $report  "<table width='50%'>"  
    Add-Content $report "<tr bgcolor='Lavender'>"  
    Add-Content $report  "<td width='10%' align='center'><B>Workstations</B></td>"  
    Add-Content $report  "<td width='10%' align='center'><B>Serveur de licences</B></td>"  
    Add-Content $report "</tr>"  
     
     
    #####Get Registry Value #### 
     
    foreach ($Server in $servers)  
    { 
     
    $Value = (Get-Item env:\maVariableEnv).value
     
    ######################Add values inside Columns########################################   
             Add-Content $report "<tr>"  
             Add-Content $report "<td bgcolor= 'GainsBoro' align=center><B>$Server</B></td>"  
             Add-Content $report "<td bgcolor= 'Aquamarine' align=center><B>$Value</B></td>"  
             Add-Content $report "</tr>"  
     
     
     
    } 
     
     
    #####################Close HTMl Tables############################################### 
     
     
    Add-content $report  "</table>"  
    Add-Content $report "</body>"  
    Add-Content $report "</html>"  
     
     
    #############################################################################################

    Je sèche... je pense que tout est dans la boucle ou comment est lu cette variable ?
    Avez vous une idée d'adaptation pour réussir a lire cette variable d'environnement ?

    Merci !!

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par pendoRa Voir le message
    Avez vous une idée d'adaptation pour réussir a lire cette variable d'environnement ?
    Un premier test sur ton code (adapté)
    Code Powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    $env:maVariableEnv='TestPosteLocal'
    foreach ($Server in 1..3)  
    { 
             $Value = (Get-Item env:\maVariableEnv).value         
             "<td bgcolor= 'GainsBoro' align=center><B>Nom de serveur $Server</B></td>"  
             "<td bgcolor= 'Aquamarine' align=center><B>$Value</B></td>" 
             "`r`n" 
    }
    ça fonctionne :-)
    Citation Envoyé par pendoRa Voir le message
    je souhaites lire une variable d'environnement présente sur un nombre de postes précis.
    Dans ce cas il faut, si je comprends bien la phrase (Prudence est mère de sûreté à ce qu'il parait), lire la variable d'environnement sur chaque poste et pas celle en local.
    Donc soit par remoting (invoke-commande) ou soit par lecture de la registry distante.

  3. #3
    Membre éclairé Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Par défaut
    Bonjour,

    merci pour ton aide ! Grâce a tes conseils j'ai pu adapter mon code et ils fonctionnent parfaitement :

    Code PowerShell : 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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    ########################################################################## 
     
    ##################Define variables######################################## 
     
     
     
     
     
     
    ############################################################################ 
     
    $report = "C:\scripts\result.htm"  
    $servers = Get-content C:\scripts\workstations.txt 
     
    $Variable = Get-ChildItem env:\mavariableEnv
     
    $checkrep = Test-Path $report  
     
    If ($checkrep -like "True") 
     
    { 
     
    Remove-Item "C:\scripts\result.htm" 
     
     
    } 
     
    New-Item "C:\scripts\result.htm" -type file 
     
    ################################ADD HTML Content############################# 
     
     
    Add-Content $report "<html>"  
    Add-Content $report "<head>"  
    Add-Content $report "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>"  
    Add-Content $report '<title>Serveurs de licences</title>'  
    add-content $report '<STYLE TYPE="text/css">'  
    add-content $report  "<!--"  
    add-content $report  "td {"  
    add-content $report  "font-family: Tahoma;"  
    add-content $report  "font-size: 11px;"  
    add-content $report  "border-top: 1px solid #999999;"  
    add-content $report  "border-right: 1px solid #999999;"  
    add-content $report  "border-bottom: 1px solid #999999;"  
    add-content $report  "border-left: 1px solid #999999;"  
    add-content $report  "padding-top: 0px;"  
    add-content $report  "padding-right: 0px;"  
    add-content $report  "padding-bottom: 0px;"  
    add-content $report  "padding-left: 0px;"  
    add-content $report  "}"  
    add-content $report  "body {"  
    add-content $report  "margin-left: 5px;"  
    add-content $report  "margin-top: 5px;"  
    add-content $report  "margin-right: 0px;"  
    add-content $report  "margin-bottom: 10px;"  
    add-content $report  ""  
    add-content $report  "table {"  
    add-content $report  "border: thin solid #000000;"  
    add-content $report  "}"  
    add-content $report  "-->"  
    add-content $report  "</style>"  
    Add-Content $report "</head>"  
    Add-Content $report "<body>"  
    add-content $report  "<table width='50%'>"  
    add-content $report  "<tr bgcolor='Lavender'>"  
    add-content $report  "<td colspan='7' height='25' align='center'>"  
     
    #######################Title of table#################################################### 
     
    add-content $report  "<font face='tahoma' color='#003399' size='4'><strong>Serveurs de licences</strong></font>"  
    add-content $report  "</td>"  
    add-content $report  "</tr>"  
    add-content $report  "</table>"  
     
    ######################Definae Columns################################################### 
    add-content $report  "<table width='50%'>"  
    Add-Content $report "<tr bgcolor='Lavender'>"  
    Add-Content $report  "<td width='10%' align='center'><B>Workstations</B></td>"  
    Add-Content $report  "<td width='10%' align='center'><B>Serveur de licences</B></td>"  
    Add-Content $report "</tr>"  
     
     
    #####Get Registry Value #### 
     
    Foreach ($server in $servers){
     
     
      $Result= Invoke-Command -computername $server -ScriptBlock {(Get-Item Env:\mavariableEnv).value}
     
     
     
     
     
    ######################Add values inside Columns########################################   
             Add-Content $report "<tr>"  
             Add-Content $report "<td bgcolor= 'GainsBoro' align=center><B>$Server</B></td>"  
             Add-Content $report "<td bgcolor= 'Aquamarine' align=center><B>$Result</B></td>"  
             Add-Content $report "</tr>"  
     
    }
     
     
    #####################Close HTMl Tables############################################### 
     
     
    Add-content $report  "</table>"  
    Add-Content $report "</body>"  
    Add-Content $report "</html>"  
     
     
    #############################################################################################

    Ceci étant, je travail pour ping les postes en amont car les postes hors réseau mettre trop longtemps a faire passer le Invoke-command en erreur, du coup le traitement est tres long.. plusieurs minutes par postes hors réseau.

    Merci en tout cas

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

Discussions similaires

  1. lire une liste de vidéo avec le lecteur JW Player
    Par Axiome dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 07/06/2011, 16h09
  2. [SP-2007] lire une liste de fichier infopath comme bdd
    Par benneb dans le forum SharePoint
    Réponses: 3
    Dernier message: 23/11/2009, 08h52
  3. Lire une liste XML
    Par Nathan62 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 23/05/2008, 10h23
  4. Réponses: 0
    Dernier message: 11/02/2008, 18h01
  5. [AJAX] retourner et lire une liste avec ajax
    Par _momo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/08/2007, 15h13

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