Question Sortie Fichier vers tableau Excel

Plus d'informations
il y a 12 ans 8 mois #15237 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.

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

Plus d'informations
il y a 12 ans 8 mois #15238 par SiSMik
Réponse de SiSMik sur le sujet Re:Sortie Fichier vers tableau Excel
Bonjour,

Avez vous essayez le cmdlet Export-CSV ?

Bien cordialement,

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

Plus d'informations
il y a 12 ans 8 mois #15239 par ANTRI Mohamed
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.

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

Plus d'informations
il y a 12 ans 8 mois #15240 par Laurent Dardenne
Antri écrit:

Merci de regarder au niveau des objets COM pour excel.

Ou des classes OLEDB :)
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.

Plus d'informations
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

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

Plus d'informations
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 \&quot;$_ en cours...\&quot;
#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 \&quot;drivetype=3\&quot; -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 \&quot;$_ terminé\&quot;
}
else {
Write-host \&quot;$_ ne répond pas\&quot;
}
}

# 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.069 secondes
Propulsé par Kunena