Mit diesem Skript geht das sauber, schnell und übersichtlich.
Code: Alles auswählen
$Server = Get-ADGroup -Filter "Name -like 'Alle-Server'" | Get-ADGroupMember | select Name
$Global:ServerInformationArr = New-Object system.Collections.ArrayList
Foreach ($Srv in $Server) {
if(!$Srv.Name.StartsWith("EX-")){
$Platten = Get-WmiObject Win32_LogicalDisk -ComputerName $Srv.Name
Foreach ($Platte in $Platten){
$ServerObj = New-Object PsObject
$ServerObj | Add-Member -MemberType NoteProperty "Server" -Value $Srv.Name
If($Platte.DriveType -eq 3){
$ServerObj | Add-Member -MemberType NoteProperty "LW" -Value $Platte.Name
$ServerObj | Add-Member -MemberType NoteProperty "Bezeichnung" -Value $Platte.VolumeName
$ServerObj | Add-Member -MemberType NoteProperty "Größe in GB" -Value ([math]::Round($Platte.Size/1GB,2))
$ServerObj | Add-Member -MemberType NoteProperty "Frei in GB" -Value ([math]::Round($Platte.freespace/1GB,2))
$ServerObj | Add-Member -MemberType NoteProperty "Frei in %" -Value ([math]::Round($Platte.freespace/$Platte.size*100,2))
$Global:ServerInformationArr.add($ServerObj) | out-null}
}
}
}
$Global:ServerInformationArr | ogv # <- Ausgabe im Grid
#$Global:WsusInformationArr | Format-Table | Out-Printer # <- Ausgabe auf Standarddrucker
#$Global:WsusInformationArr | Export-Csv WsusUpdateliste.csv # <- Ausgabe als CSV-Datei - Kann mit Excel geöffnet und bearbeitet werdenZunächst holen wir uns vom AD eine Liste mit den Servern. Im Beispiel gibt es eine Gruppe "Alle-Server", daraus holen wir uns die Servernamen.
Wir erstellen ein Array für die spätere Ausgabe und arbeiten eine Schleife für jeden Server durch. (Außer Server die mit "EX-" beginnen, da es sich dabei um kürzlich deaktivierte Server handelt.)
Innerhalb der Server-Schleife werden die Platten per WMI-Object vom jeweiligen Server abgefragt und jede Platte in einer zweiten Schleife ausgewertet. (Aber nur Platten mit dem DriveType 3, da uns im Beispiel nur die Festverbauten Platten interessieren)
Das Array wird mit allen gewünschten Infos gefüttert (im Beispiel: Servername, Laufwerk-ID, Laufwerk-Bezeichnung, Plattengröße in GB und freier Speicher in GB und %.
Anschließend gibt es 3 Möglichkeiten die Auswertung anzuzeigen: Als DataGrid auf dem Monitor, als Ausdruck auf dem Standarddrucker oder als CSV-Datei (für spätere Bearbeitung im Excel praktisch).