Question
Sortie Fichier vers tableau Excel
- Ceelo
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 12 ans 8 mois #15237
par Ceelo
Sortie Fichier vers tableau Excel a été créé par Ceelo
Bonjour,
Actuellement j'ai un script qui fonctionne qui me sort les infos des machines dans un fichier txt à la suite.
J'aimerai qu'à la place, un tableau excel soit créé.
Voici mon script:
[code:1]$credential = Get-Credential
get-content U:\INFORMATIQUE\Script\liste.txt | `
foreach {
if (test-connection $_ -quiet -count 1)
{
write-host \"$_ en cours...\"
$model = get-wmiObject Win32_ComputerSystem -comp $_ -credential ($credential) ;
$os = get-wmiobject Win32_OperatingSystem -comp $_ -credential ($credential) ;
$bios = get-wmiobject win32_bios -comp $_ -credential ($credential) ;
$user = get-wmiobject win32_computersystem -comp $_ -credential ($credential) ;
$diskc = Get-WmiObject win32_logicaldisk -comp $_ -Filter \"drivetype=3\" -Credential ($credential) ;
$logiciel = Get-wmiobject win32_product -comp $_ -credential ($credential) ;
$result = New-object PSObject
$result | Add-member NoteProperty Adresse $_
$result | Add-member NoteProperty Nom $model.name
$result | Add-member NoteProperty Description $os.description
$result | Add-member NoteProperty Modèle $model.model
$result | Add-member NoteProperty \"Service Tag\" $bios.serialnumber
$result | Add-member NoteProperty Fabricant $model.manufacturer
$result | Add-member NoteProperty Mémoire ([math]::round($model.totalphysicalmemory/1GB«»))
$result | Add-member NoteProperty OS $os.caption
$result | Add-member NoteProperty \"Utilisateur(s) Connecté(s)\" $user.username
$result | Add-member NoteProperty Système $diskc.name
$result | Add-member NoteProperty Capacité ([math]::round($diskc.size/1GB«»))
$result | Add-member NoteProperty Disponible ([math]::round($diskc.freespace/1GB«»))
$result | Add-member NoteProperty \"Pourcentage Libre\" ([math]::round(([int64]$diskc.freespace/[int64]$diskc.size*100),0))
#$result | Add-member NoteProperty Capacité $disk.size
#$result | Add-member NoteProperty Disponible $disk.freespace
#$result | Add-member NoteProperty \"Pourcentage Libre\" $disk.freespace
$result >> U:\INFORMATIQUE\Script\resultats.txt
write-host \"$_ terminé\"
}
else
{Write-host \"$_ ne répond pas\"}
}
[/code:1]
Voici le fichier de sortie:
[code:1]
Adresse : x.x.x.x
Nom : xxx
Description : OPTIPLEX 790
Modèle : OptiPlex 790
Service Tag : xxxxxxx
Fabricant : Dell Inc.
Mémoire : 3
OS : Microsoft Windows XP Professionnel
Utilisateur(s) Connecté(s) : domaine\user
Système : C:
Capacité : 298
Disponible : 156
Pourcentage Libre : 53
Adresse : x.x.x.x
Nom : xxx
Description : OPTIPLEX 790
Modèle : OptiPlex 790
Service Tag : xxxxxxx
Fabricant : Dell Inc.
Mémoire : 3
OS : Microsoft Windows 7 Professionnel
Utilisateur(s) Connecté(s) : domaine\user
Système : C:
Capacité : 298
Disponible : 257
Pourcentage Libre : 86
[/code:1]
Je souhaiterai qu'à la place un fichier excel soit créé de la forume suivante:
Adresse Nom Description Modèle Mémoire
x.x.x.x xxx Optiplex 790 OPTIPLEX 790 3
x.x.x.x xxx Optiplex 780 OPTIPLEX 780 2
x.x.x.x xxx Optiplex 7010 OPTIPLEX 7010 4
x.x.x.x xxx Optiplex 390 OPTIPLEX 390 8
Comment faire?
Cordialement,
Ceelo.
Actuellement j'ai un script qui fonctionne qui me sort les infos des machines dans un fichier txt à la suite.
J'aimerai qu'à la place, un tableau excel soit créé.
Voici mon script:
[code:1]$credential = Get-Credential
get-content U:\INFORMATIQUE\Script\liste.txt | `
foreach {
if (test-connection $_ -quiet -count 1)
{
write-host \"$_ en cours...\"
$model = get-wmiObject Win32_ComputerSystem -comp $_ -credential ($credential) ;
$os = get-wmiobject Win32_OperatingSystem -comp $_ -credential ($credential) ;
$bios = get-wmiobject win32_bios -comp $_ -credential ($credential) ;
$user = get-wmiobject win32_computersystem -comp $_ -credential ($credential) ;
$diskc = Get-WmiObject win32_logicaldisk -comp $_ -Filter \"drivetype=3\" -Credential ($credential) ;
$logiciel = Get-wmiobject win32_product -comp $_ -credential ($credential) ;
$result = New-object PSObject
$result | Add-member NoteProperty Adresse $_
$result | Add-member NoteProperty Nom $model.name
$result | Add-member NoteProperty Description $os.description
$result | Add-member NoteProperty Modèle $model.model
$result | Add-member NoteProperty \"Service Tag\" $bios.serialnumber
$result | Add-member NoteProperty Fabricant $model.manufacturer
$result | Add-member NoteProperty Mémoire ([math]::round($model.totalphysicalmemory/1GB«»))
$result | Add-member NoteProperty OS $os.caption
$result | Add-member NoteProperty \"Utilisateur(s) Connecté(s)\" $user.username
$result | Add-member NoteProperty Système $diskc.name
$result | Add-member NoteProperty Capacité ([math]::round($diskc.size/1GB«»))
$result | Add-member NoteProperty Disponible ([math]::round($diskc.freespace/1GB«»))
$result | Add-member NoteProperty \"Pourcentage Libre\" ([math]::round(([int64]$diskc.freespace/[int64]$diskc.size*100),0))
#$result | Add-member NoteProperty Capacité $disk.size
#$result | Add-member NoteProperty Disponible $disk.freespace
#$result | Add-member NoteProperty \"Pourcentage Libre\" $disk.freespace
$result >> U:\INFORMATIQUE\Script\resultats.txt
write-host \"$_ terminé\"
}
else
{Write-host \"$_ ne répond pas\"}
}
[/code:1]
Voici le fichier de sortie:
[code:1]
Adresse : x.x.x.x
Nom : xxx
Description : OPTIPLEX 790
Modèle : OptiPlex 790
Service Tag : xxxxxxx
Fabricant : Dell Inc.
Mémoire : 3
OS : Microsoft Windows XP Professionnel
Utilisateur(s) Connecté(s) : domaine\user
Système : C:
Capacité : 298
Disponible : 156
Pourcentage Libre : 53
Adresse : x.x.x.x
Nom : xxx
Description : OPTIPLEX 790
Modèle : OptiPlex 790
Service Tag : xxxxxxx
Fabricant : Dell Inc.
Mémoire : 3
OS : Microsoft Windows 7 Professionnel
Utilisateur(s) Connecté(s) : domaine\user
Système : C:
Capacité : 298
Disponible : 257
Pourcentage Libre : 86
[/code:1]
Je souhaiterai qu'à la place un fichier excel soit créé de la forume suivante:
Adresse Nom Description Modèle Mémoire
x.x.x.x xxx Optiplex 790 OPTIPLEX 790 3
x.x.x.x xxx Optiplex 780 OPTIPLEX 780 2
x.x.x.x xxx Optiplex 7010 OPTIPLEX 7010 4
x.x.x.x xxx Optiplex 390 OPTIPLEX 390 8
Comment faire?
Cordialement,
Ceelo.
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 12 ans 8 mois #15238
par SiSMik
Réponse de SiSMik sur le sujet Re:Sortie Fichier vers tableau Excel
Connexion ou Créer un compte pour participer à la conversation.
- ANTRI Mohamed
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 124
- Remerciements reçus 0
il y a 12 ans 8 mois #15239
par ANTRI Mohamed
Réponse de ANTRI Mohamed sur le sujet Re:Sortie Fichier vers tableau Excel
Bonjour,
n'êtes vous pas satisfait du [code:1]Out-gridview[/code:1]. Ensuite en effet vous pouvez essayer d'exporter le contenu en csv puis de le traiter sous excel. Mais si vous souhaitez réellement directement crée une grille excel. Merci de regarder au niveau des objets COM pour excel.
n'êtes vous pas satisfait du [code:1]Out-gridview[/code:1]. Ensuite en effet vous pouvez essayer d'exporter le contenu en csv puis de le traiter sous excel. Mais si vous souhaitez réellement directement crée une grille excel. Merci de regarder au niveau des objets COM pour excel.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 12 ans 8 mois #15240
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Sortie Fichier vers tableau Excel
Antri écrit:

Ce qui évite d'installer Office sur le poste, il faut tout de même installer un provider additionnel, mais gratuit.
J'ai une fonction pour l'import que je dois poster dans le forum contribution.
Ou des classes OLEDBMerci de regarder au niveau des objets COM pour excel.
Ce qui évite d'installer Office sur le poste, il faut tout de même installer un provider additionnel, mais gratuit.
J'ai une fonction pour l'import que je dois poster dans le forum contribution.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Ceelo
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 12 ans 8 mois #15241
par Ceelo
Réponse de Ceelo sur le sujet Re:Sortie Fichier vers tableau Excel
Je viens tester en mettant à la fin, après la boucle foreach:
Export-Csv chemindufichier.csv
Il me demande la valeur d'InputObject
J'ai lu: [code:1] -InputObject <psobject>
Spécifie les objets à exporter en tant que chaînes CSV. Entrez une variable contenant les objets ou tapez une commande ou une expression qui obtient les objets. Vous pouvez également diriger les objets vers Export-CSV.[/code:1]
Mais je comprend pas trop.
J'ai testé avec Out-gridview et il me sort rien.<br><br>Message édité par: Ceelo, à: 25/06/13 15:20
Export-Csv chemindufichier.csv
Il me demande la valeur d'InputObject
J'ai lu: [code:1] -InputObject <psobject>
Spécifie les objets à exporter en tant que chaînes CSV. Entrez une variable contenant les objets ou tapez une commande ou une expression qui obtient les objets. Vous pouvez également diriger les objets vers Export-CSV.[/code:1]
Mais je comprend pas trop.
J'ai testé avec Out-gridview et il me sort rien.<br><br>Message édité par: Ceelo, à: 25/06/13 15:20
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 12 ans 8 mois #15243
par SiSMik
Réponse de SiSMik sur le sujet Re:Sortie Fichier vers tableau Excel
Salut, tu peux essayer ce code 
[code:1]$credential = Get-Credential
#On crée un tableau vide pour stocker les objects
$Result = @()
# Pour chaque ligne du fichier de texte
get-content U:\INFORMATIQUE\Script\liste.txt | Foreach {
#On teste la connection
if (test-connection $_ -quiet -count 1) {
write-host \"$_ en cours...\"
#Si connecion OK, on récupère les informations dans les Classe WMI
$model = get-wmiObject Win32_ComputerSystem -comp $_ -credential $credential
$os = get-wmiobject Win32_OperatingSystem -comp $_ -credential $credential
$bios = get-wmiobject win32_bios -comp $_ -credential $credential
$user = get-wmiobject win32_computersystem -comp $_ -credential $credential
$diskc = Get-WmiObject win32_logicaldisk -comp $_ -Filter \"drivetype=3\" -Credential $credential
$logiciel = Get-wmiobject win32_product -comp $_ -credential $credential
#Puis on crée une hashtable qu'on passera au cmdlet New-Object
# Qui contient toutes les informations que l'on veut ressortir dans une belle collection d'objets
$prop = @{'Adresse'=$_;
'Nom' = $model.name;
'Description' = $os.description;
'Modele' = $model.model;
'ServiceTag' = $bios.serialnumber;
'Fabricant' = $model.manufacturer;
'Memoire' = ([math]::round($model.totalphysicalmemory/1GB«»));
'OS' = $os.caption ;
'ConnectedUsers' = $user.username;
'Systeme'= $diskc.name;
'Capacity' = ([math]::round($diskc.size/1GB«»));
'Disponible' = ([math]::round($diskc.freespace/1GB«»)) ;
'Free' = ([math]::round(([int64]$diskc.freespace/[int64]$diskc.size*100),0))}
#On crée l'objet et on l'ajoute à la collection
$Result += New-Object psobject -Property $prop
write-host \"$_ terminé\"
}
else {
Write-host \"$_ ne répond pas\"
}
}
# On exporte dans un csv et on l'ouvre dans Excel (si définit par défaut pour ouvrir les csv
$Result | Export-Csv U:\INFORMATIQUE\Script\output.csv
ii U:\INFORMATIQUE\Script\output.csv
[/code:1]
[code:1]$credential = Get-Credential
#On crée un tableau vide pour stocker les objects
$Result = @()
# Pour chaque ligne du fichier de texte
get-content U:\INFORMATIQUE\Script\liste.txt | Foreach {
#On teste la connection
if (test-connection $_ -quiet -count 1) {
write-host \"$_ en cours...\"
#Si connecion OK, on récupère les informations dans les Classe WMI
$model = get-wmiObject Win32_ComputerSystem -comp $_ -credential $credential
$os = get-wmiobject Win32_OperatingSystem -comp $_ -credential $credential
$bios = get-wmiobject win32_bios -comp $_ -credential $credential
$user = get-wmiobject win32_computersystem -comp $_ -credential $credential
$diskc = Get-WmiObject win32_logicaldisk -comp $_ -Filter \"drivetype=3\" -Credential $credential
$logiciel = Get-wmiobject win32_product -comp $_ -credential $credential
#Puis on crée une hashtable qu'on passera au cmdlet New-Object
# Qui contient toutes les informations que l'on veut ressortir dans une belle collection d'objets
$prop = @{'Adresse'=$_;
'Nom' = $model.name;
'Description' = $os.description;
'Modele' = $model.model;
'ServiceTag' = $bios.serialnumber;
'Fabricant' = $model.manufacturer;
'Memoire' = ([math]::round($model.totalphysicalmemory/1GB«»));
'OS' = $os.caption ;
'ConnectedUsers' = $user.username;
'Systeme'= $diskc.name;
'Capacity' = ([math]::round($diskc.size/1GB«»));
'Disponible' = ([math]::round($diskc.freespace/1GB«»)) ;
'Free' = ([math]::round(([int64]$diskc.freespace/[int64]$diskc.size*100),0))}
#On crée l'objet et on l'ajoute à la collection
$Result += New-Object psobject -Property $prop
write-host \"$_ terminé\"
}
else {
Write-host \"$_ ne répond pas\"
}
}
# On exporte dans un csv et on l'ouvre dans Excel (si définit par défaut pour ouvrir les csv
$Result | Export-Csv U:\INFORMATIQUE\Script\output.csv
ii U:\INFORMATIQUE\Script\output.csv
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.075 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Sortie Fichier vers tableau Excel