Hallo Forum,
ich versuche ein Skript zu schreiben, welches die Festplattenbelegung aller Server in der Domäne ausliest, lesbar formatiert und (zunächst) im Host ausgibt. Dabei stosse ich auf das Problem, dass die Variable, die ich mit den Ergebnissen von Get-Wmi-Object
füllen möchte, die Daten nicht annimmt. (Variable ist nach Ausführen des Befehls leer, bzw. wird gar nicht erst erzeugt.) Führe ich die WMI-Abfrage mit der Option -AsJob aus und füttere anschliessend die Ergebnisse mit Receive-Job in die Variable, dann funktiniert
es seltsamerweise. Das ist natürlich für ein Skript ungeeignet.
Der Code sieht folgendermassen aus:
# Laufwerksbelegung aller Server anzeigen $Server = Get-ADComputer -Filter { Operatingsystem -like "*Server*" } | Sort-Object name | Select-Object -ExpandProperty name $Laufwerke = Get-WmiObject -Class win32_logicaldisk -Filter drivetype=3 -ComputerName $Server $Ergebnis = $Laufwerke | ft -a PSComputerName,DeviceID,@{Expression={"{0:N2}" -f ($_.Size / 1GB)};Label="Gesamt(GB)"},@{Expression={"{0:N2}" -f (($_.FreeSpace / $_.Size) * 100 -as [int])};Label="Frei(%)"} $Ergebnis
Ich arbeite erst seit kurzem mit Powershell und habe deshalb an dieser Stelle ein Verständnisproblem.
Kann mich bitte jemand erleuchten? ;-)
Vielen Dank.
Thomas