none
Erreur Export-Csv TYPE System.object[] RRS feed

  • Question

  • Bonjour,

    J'ai une erreur que je ne comprends pas lorsque je lance mon script powershell pour exporter mon tableau sur mon fichier excel

    j'ai une erreur qui s'écrit system.object.

    Pourriez-vous m'aider s'il vous plaît ?

    Je vous remercie d'avance pour votre aide.


    gabriel

    lundi 15 octobre 2018 10:30

Réponses

  • salut Gabriel_906

    tu avais plusieurs problèmes, mais principalement pour ta question c'etait ici : $EspaceDisque.'Disponible (Go)'

    apres j'ai rajouter un filtre sur le lecteur sur lequel travail le script where{$_.drivetype -eq3-and$_.DeviceID -eq(Split-Path$dossier-Qualifier)}

    j'ai enlever quelles instructions inutile et je crois que c'est tous

    dis bous si c'est bon :)

    $dossier = "I:\temp"
    $Niveau = 3
    $resultat = @()
    $SubFolders = (Get-ChildItem -path $dossier -recurse -Directory -Depth $($niveau-1)).FullName
    
    foreach ($subfolder in $SubFolders) {
        $FolderSize = Get-ChildItem -path $SubFolder -Recurse -File | Measure-Object -property length -sum
        $FolderNumberOfFile = (Get-ChildItem -path $SubFolder -Recurse -File).count
        $EspaceDisque = get-wmiobject win32_logicaldisk | where {$_.drivetype -eq 3 -and $_.DeviceID -eq (Split-Path $dossier -Qualifier)} | tee-object -variable disques | 
            select-object @{e={$_.systemname};n="Système"},
                @{e={$_.name};n="Disque"},
                @{e={[math]::round($_.freespace/1GB,1)};n="Disponible (Go)"},
                @{e={[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)};n="% restant"}
    
        $resultat += New-Object -TypeName PSObject -Property @{
            Partage = $subfolder 
            NbDeFichier = $FolderNumberOfFile
            Volume = $foldersize.sum / 1mb
            Espace = $EspaceDisque.'Disponible (Go)'
            }
       }
    
    $resultat | Sort-Object -Property Partage | select-object Partage, NbDeFichier, Volume, Espace | 
        Export-Csv Random.csv -Delimiter ";" -NoTypeInformation

    • Marqué comme réponse Gabriel_906 mardi 16 octobre 2018 08:20
    lundi 15 octobre 2018 15:22

Toutes les réponses

  • Bonjour

    Pouvez-vous être plus précis quant au message d'erreur?

    lundi 15 octobre 2018 11:02
  • Bonjour,

    Pouvez vous mettre votre script powershell svp...


    Merci de marquer comme reponses les interventions qui vous ont ete utile.

    lundi 15 octobre 2018 11:15
  • $dossier ="C:\"

    $Niveau = 3

    $resultat=@()

    $SubFolders = (Get-ChildItem -path $dossier -recurse -Directory -Depth $($niveau-1)).FullName

    foreach ($subfolder in $SubFolders)

       {

        $FolderSize = Get-ChildItem -path $SubFolder -Recurse -File | Sort-Object length -descending | select-object | Measure-Object -property length -sum       

        $FolderNumberOfFile = (Get-ChildItem -path $SubFolder -Recurse -File).count

        $EspaceDisque = get-wmiobject win32_logicaldisk | where {$_.drivetype -eq 3} |

        tee-object -variable disques |

              select-object @{e={$_.systemname};n="Système"},

                   @{e={$_.name};n="Disque"},

                   @{e={[math]::round($_.freespace/1GB,1)};n="Disponible (Go)"},

                   @{e={[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)};n="% restant"}

                

                

        $resultat+= New-Object -TypeName PSObject -Property @{

                           Partage = $subfolder

                           NbDeFichier= $FolderNumberOfFile

                           Volume = $foldersize.sum / 1mb

                           Espace = $EspaceDisque

                           

                     }

       }

    $resultat | Sort-Object -Property path | select-object Partage,NbDeFichier,Volume,Espace | Export-Csv Random.csv -Delimiter ";" -NoTypeInformation

    #Get-Content -Path "repertoire.csv"

    Le problème c'est que lorsque je souhaite l'exporter en CSV "ESPACE" s'affiche System.object[]

    

    



    gabriel

    lundi 15 octobre 2018 12:13
  • Bonjour,

    J'ai un simple Powershell en trois étapes qui exécute deux commandes, puis les concatène dans un tableau. 
    Lorsque je l'exécute sans Export-CSV, tout se passe bien, mais lorsque j'ajoute Export-CSV, je reçois. 

    #TYPE System.Object []

    $dossier ="C:\"

    $Niveau = 3

    $resultat=@()

    $SubFolders = (Get-ChildItem -path $dossier -recurse -Directory -Depth $($niveau-1)).FullName

    foreach ($subfolder in $SubFolders)

       {

        $FolderSize = Get-ChildItem -path $SubFolder -Recurse -File | Sort-Object length -descending | select-object | Measure-Object -property length -sum       

        $FolderNumberOfFile = (Get-ChildItem -path $SubFolder -Recurse -File).count

        $EspaceDisque = get-wmiobject win32_logicaldisk | where {$_.drivetype -eq 3} |

        tee-object -variable disques |

              select-object @{e={$_.systemname};n="Système"},

                   @{e={$_.name};n="Disque"},

                   @{e={[math]::round($_.freespace/1GB,1)};n="Disponible (Go)"},

                   @{e={[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)};n="% restant"}

                

                

        $resultat+= New-Object -TypeName PSObject -Property @{

                           Partage = $subfolder

                           NbDeFichier= $FolderNumberOfFile

                           Volume = $foldersize.sum / 1mb

                           Espace = $EspaceDisque

                           

                     }

       }

    $resultat | Sort-Object -Property path | select-object Partage,NbDeFichier,Volume,Espace | Export-Csv Random.csv -Delimiter ";" -NoTypeInformation

    #Get-Content -Path "repertoire.csv"


    gabriel

    lundi 15 octobre 2018 12:16
  • salut Gabriel_906

    tu avais plusieurs problèmes, mais principalement pour ta question c'etait ici : $EspaceDisque.'Disponible (Go)'

    apres j'ai rajouter un filtre sur le lecteur sur lequel travail le script where{$_.drivetype -eq3-and$_.DeviceID -eq(Split-Path$dossier-Qualifier)}

    j'ai enlever quelles instructions inutile et je crois que c'est tous

    dis bous si c'est bon :)

    $dossier = "I:\temp"
    $Niveau = 3
    $resultat = @()
    $SubFolders = (Get-ChildItem -path $dossier -recurse -Directory -Depth $($niveau-1)).FullName
    
    foreach ($subfolder in $SubFolders) {
        $FolderSize = Get-ChildItem -path $SubFolder -Recurse -File | Measure-Object -property length -sum
        $FolderNumberOfFile = (Get-ChildItem -path $SubFolder -Recurse -File).count
        $EspaceDisque = get-wmiobject win32_logicaldisk | where {$_.drivetype -eq 3 -and $_.DeviceID -eq (Split-Path $dossier -Qualifier)} | tee-object -variable disques | 
            select-object @{e={$_.systemname};n="Système"},
                @{e={$_.name};n="Disque"},
                @{e={[math]::round($_.freespace/1GB,1)};n="Disponible (Go)"},
                @{e={[math]::round(([int64]$_.freespace/[int64]$_.size*100),0)};n="% restant"}
    
        $resultat += New-Object -TypeName PSObject -Property @{
            Partage = $subfolder 
            NbDeFichier = $FolderNumberOfFile
            Volume = $foldersize.sum / 1mb
            Espace = $EspaceDisque.'Disponible (Go)'
            }
       }
    
    $resultat | Sort-Object -Property Partage | select-object Partage, NbDeFichier, Volume, Espace | 
        Export-Csv Random.csv -Delimiter ";" -NoTypeInformation

    • Marqué comme réponse Gabriel_906 mardi 16 octobre 2018 08:20
    lundi 15 octobre 2018 15:22
  • Bonjour 6ratgus,

    Je vous remercie énormément pour votre aide.

    Bonne journée.


    gabriel

    mardi 16 octobre 2018 08:21