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 :

Problème Script avec csv


Sujet :

Scripts/Batch

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Problème Script avec csv
    Bonjour,

    On m'a demandé il y a peu, de faire un script pour récupérer la version du pack office installée sur chaque machine d'un parc informatique.

    Voici le script en question :


    Code:

    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
    $do = $false
    $ClicToRun = ""
    $VL = ""
    $users = Import-Csv "..\ClicOrVL\Pas_Ouvrir\U365.csv" -Delimiter ";"
    $Resultat = test-path -path HKLM:\SOFTWARE\Microsoft\Office\15.0\ClickToRun
    
    if($Resultat)
    {
        $ClicToRun = "X"
        $VL = ""
        $VersionClic = get-itemproperty -path HKLM:\SOFTWARE\Microsoft\Office\15.0\ClickToRun\ProductReleaseIDs\Active\O365ProPlusRetail\fr-fr\
    
    }
    else
    {
        $ClicToRun = ""
        $VL = "X"
        $VersionClic = ""
    }
    
    
    foreach ($user in $users)
    {
        if($user.Computer -like $env:COMPUTERNAME)
        {
            $user.ClicToRun = $ClicToRun
            $user.VL = $VL
            $user.Version = $VersionClic.Version
            $do = $true        
            break        
        }        
    }
    if($do -eq $false)
    {
        if($users.count -gt 1)
        {
        $newU = $users[0]|select *
        $newU.Computer = $env:COMPUTERNAME
        $newU.VL = $VL
        $newU.ClicToRun= $ClicToRun
        $newU.Version = $VersionClic.Version
        $users += $newU
        }
    }
    
    $users | select Computer,ClicToRun,VL,Version | sort -Descending Version | Export-Csv "..\ClicOrVL\U365.csv" -Delimiter ";" -NoTypeInformation
    
    $users | select Computer,ClicToRun,VL,Version | sort -Descending Version | Export-Csv "..\ClicOrVL\Pas_ouvrir\U365.csv" -Delimiter ";" -NoTypeInformation




    Le code fonctionne très bien. Toutes les informations sont bien présente. Cependant, il y a des jours ou le csv ce vide totalement, ce qui a pour conséquence de bloquer mon script car il faut minimum 2 lignes ( sans compter les en-têtes), pour l'écriture d'une nouvelle ligne.

    Donc mon problème est de savoir pourquoi le csv se vide ?

    Pourriez-vous m'aider ? Merci d'avance.

  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
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par Jonathan_Mi Voir le message
    Pourriez-vous m'aider ?
    A part ajouter du code de vérification, je ne vois pas comment. Ton code ne semble pas contenir d'erreur.
    Utilise par exemple Test-Path avant d'ouvrir le fichier et ajoute un log sur le nombre de users exportés avant de terminer le script.
    Affiche également le chemin relatif via Resolve-Path.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Laurent Dardenne Voir le message
    Salut,

    A part ajouter du code de vérification, je ne vois pas comment. Ton code ne semble pas contenir d'erreur.
    Utilise par exemple Test-Path avant d'ouvrir le fichier et ajoute un log sur le nombre de users exportés avant de terminer le script.
    Affiche également le chemin relatif via Resolve-Path.
    Merci pour la réponse.

    Par contre, quand tu me demandes de faire un log, tu veux que je crée un fichier pour chaque machine qui écrit dans le csv et savoir qui a écrit en dernier dans celui-ci ?

    edit : Je viens de comprendre le système de log sur powershell. Cependant, quand j'utilise la commande "Start-transcript", j'ai ce message : "Cet hôte ne prend pas en charge la transcription."

  4. #4
    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
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Jonathan_Mi Voir le message
    ... tu veux que je crée un fichier pour chaque machine ..
    C'est une proposition, tu fais ce que tu veux
    Cela dépend du nombre de poste à contrôler, un log centralisé est préférable. La question est de savoir si c'est ton script qui écrase le fichier ou qq chose/qq d'autre.
    Et sans gestion d'erreur ni trace, impossible de t'aider.

    Le fichier csv utilisé l'est-il en local ?
    Citation Envoyé par Jonathan_Mi Voir le message
    j'ai ce message : "Cet hôte ne prend pas en charge la transcription."
    Peut être utilises-tu ISE pour tes tests ?

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Laurent Dardenne Voir le message
    un log centralisé est préférable
    J'ai réussi à faire un log centralisé mais le log ne retient que la dernière machine. Donc si une machine efface les données et une autre écrit après, je ne pourrais pas savoir qui exactement, non ? Sinon, j'ai 200 machines dans le fichier csv actuellement.

    Citation Envoyé par Laurent Dardenne Voir le message
    Le fichier csv utilisé l'est-il en local ?
    Non, le fichier csv se trouve sur nos serveur.

    Citation Envoyé par Laurent Dardenne Voir le message
    Peut être utilises-tu ISE pour tes tests ?
    Oui, après ta réponse j'ai fait des recherches et, effectivement, en ISE le log ne fonctionne pas, il faut être en console.

  6. #6
    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
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Jonathan_Mi Voir le message
    J'ai réussi à faire un log centralisé mais le log ne retient que la dernière machine.
    Si tu logues avec "Start-transcript", utilises-tu le paramètre -Append ?

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Laurent Dardenne Voir le message
    Si tu logues avec "Start-transcript", utilises-tu le paramètre -Append ?
    Non je n'utilise pas ce paramètre, mais je vais essayer tout de suite. Par contre, j'étais à 270 machines, maintenant j'en suis à 129.

    Voilà ce que j'obtiens sans le paramètre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    **********************
    Début de la transcription Windows PowerShell
    Heure de début*: 20150701170453
    Nom d'utilisateur*: W****\MI**** 
    Ordinateur	  : MIC**** (Microsoft Windows NT 6.1.7601 Service Pack 1) 
    **********************
    Transcription démarrée, le fichier de sortie est \\..\ClicOrVL\format.log
    **********************
    Fin de la transcription Windows PowerShell
    Heure de fin*: 20150701170454
    **********************

  8. #8
    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
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Jonathan_Mi Voir le message
    Voilà ce que j'obtiens sans le paramètre :
    Avec ou sans, le contenu actuel de ton log ne sert à rien, place au minimum des appels à Write-Host affichant des informations qui t'aideront à déterminer ce qui se passe.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Laurent Dardenne Voir le message
    Avec ou sans, le contenu actuel de ton log ne sert à rien, place au minimum des appels à Write-Host affichant des informations qui t'aideront à déterminer ce qui se passe.
    Bonjour,

    Excuse moi de répondre si tardivement. Donc je vais essayer cela tout de suite.

Discussions similaires

  1. Problème script avec sed
    Par irons dans le forum Linux
    Réponses: 3
    Dernier message: 25/01/2011, 11h33
  2. [SHELL] Problème d'exécution script avec Crontab
    Par Leeloo_Multiboot dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 05/06/2008, 16h59
  3. problème script avec commande ll ?
    Par sajodia dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 30/05/2008, 11h26
  4. [Macro]Problème d'importation .CSV avec macro
    Par Eric Harvey dans le forum VBA Access
    Réponses: 8
    Dernier message: 12/04/2007, 17h04
  5. [CSV] Problème avec CSV et point virgules
    Par Lotz dans le forum Langage
    Réponses: 6
    Dernier message: 09/03/2006, 15h11

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