none
Powershell Disk output nach Excel RRS feed

  • Allgemeine Diskussion

  • Hallo,

     

    ich möchte von die Festplattenbelegung von unseren Servern auslesen.

    Mein Skript liest die Festplatten aus und befüllt eine Excelliste.

    Leider habe ich noch nicht rausgefunden wie ich alle Festplatten von einem Host in einer Zeile bekomme.

    Das Skript schreibt jede Festplatte unter ein ander.

    Habt ihr eine Lösung?

    Hier das Skript

    $a = New-Object -comobject Excel.Application

    $a.Visible = $True

    $b = $a.Workbooks.Add()
    $c = $b.Worksheets.Item(1)

    $c.Cells.Item(1,1).value2 = “Hostname”
    $c.Cells.Item(1,2).value2 = “Partition”
    $c.Cells.Item(1,3).value2 = “Volume”
    $c.Cells.Item(1,4).value2 = “Grösse (GB)”
    $c.Cells.Item(1,5).value2 = “Frei (GB)”
    $c.Cells.Item(1,6).value2 = “Partition”
    $c.Cells.Item(1,7).value2 = “Volume”
    $c.Cells.Item(1,8).value2 = “Grösse (GB)”
    $c.Cells.Item(1,9).value2 = “Frei (GB)”
    $c.Cells.Item(1,10).value2 = “Partition”
    $c.Cells.Item(1,11).value2 = “Volume”
    $c.Cells.Item(1,12).value2 = “Grösse (GB)”
    $c.Cells.Item(1,13).value2 = “Frei (GB)”
    $b.SaveAs(“C:\temp\Test.xls”)

    $i = 2

    Get-WMIObject Win32_LogicalDisk -filter “DriveType=3″ -computer localhost | Select SystemName,DeviceID,VolumeName,@{Name=”size(GB)”;Expression={“{0:N1}” -f($_.size/1gb)}},@{Name=”freespace(GB)”;Expression={“{0:N1}” -f($_.freespace/1gb)}} | foreach {
    $c.Cells.Item($i,1).value2=”{0}” -f $_.SystemName
    $c.Cells.Item($i,2).value2=”{0}” -f $_.DeviceID
    $c.Cells.Item($i,3).value2=”{0}” -f $_.VolumeName
    $c.Cells.Item($i,4).value2=”{0}” -f $_.”size(GB)”
    $c.Cells.Item($i,5).value2=”{0}” -f $_.”freespace(GB)”

    Danke und Gruss

    Jean

    Mittwoch, 28. Juli 2010 14:04

Alle Antworten

  • Hallo Jean,

    kann es leider nicht ausprobieren, aber wie wäre es wenn noch eine Variable hinzufügt würde?

    [...]

    $j=2
    
    Get-WMIObject Win32_LogicalDisk -filter “DriveType=3″ -computer localhost | Select SystemName,DeviceID,VolumeName,@{Name=”size(GB)”;Expression={“{0:N1}” -f($_.size/1gb)}},@{Name=”freespace(GB)”;Expression={“{0:N1}” -f($_.freespace/1gb)}} | foreach {
    if($j=2) {$c.Cells.Item($i,1).value2=”{0}” -f $_.SystemName}
    $c.Cells.Item($i,$j).value2=”{0}” -f $_.DeviceID
    $c.Cells.Item($i,$j+1).value2=”{0}” -f $_.VolumeName
    $c.Cells.Item($i,$j+2).value2=”{0}” -f $_.”size(GB)”
    $c.Cells.Item($i,$j+3).value2=”{0}” -f $_.”freespace(GB)”
    $j=$j+4
    }
    
    

    Gruß,
    Andrei

    Donnerstag, 29. Juli 2010 09:29
    Moderator
  • Hallo Andrei,

    danke für den Hinweis, ich werde es ausprobieren

     

    Gruß

    Jean

    Donnerstag, 5. August 2010 15:21