Eigene Objekte mit PowerSHELL
Posted on: 28. März 2018In diesem Video schauen wir uns an wie man objektorientiert mit PowerSHELL sein eigenes Objekt erstellt und dieses mit Inhalt füllt. Wir arbeiten anhand der logischen Partitionen auf unserem Computer und generieren uns die benötigten Informationen. Nebenbei konvertieren wir eine Double Zahl in ein String Objekt, Runden mathematisch Zahlen und berechnen den freien Speicher in Prozent %.
Hier der Code aus dem Youtube-Video. Die Vorgehensweise und Bemerkungen findest du direkt als Kommentare (#Grün) im Code. So wird er dir ebenfalls in der PowerSHELL ISE angezeigt werden.
——————————————–
# Ein Array für die Aufnahme der PowerSHELL-Objekte erstellen, # in diesem Array werden ein oder mehrere Objekte gespeichert. $meinefestplatten = @() # Auslesen aller Logischen Disks auf diesem Computer Get-WmiObject Win32_LogicalDisk | ForEach-Object { # Mit ForEach-Object wird diese Schleife pro Objekt das vom Befehl Get-WmiObjekt kommt durchlaufen # Wir erstellen ein temporäres Objekt zur Aufnahme der einzelnen Informationen $tempobjekt = New-Object -TypeName psobject # Hier erstellen wir pro Information ein Property, also eine Eigenschaft mit Namen und Wert # Der Laufwerksbuchstabe ist direkt als DeviceID angegeben, deshalb nehmen wir diese Eigenschaft aus der Schleifenvariabel $_ $tempobjekt | Add-Member -NotePropertyName “Laufwerksbuchstaben” -NotePropertyValue $_.DeviceID # Der VolumenName ist auch direkt abrufbar und wir lagern ihn als Eigenschaft in unser Objekt $tempobjekt | Add-Member -NotePropertyName “Namen” -NotePropertyValue $_.VolumeName # Grösse nur bei Festplatten, nicht aber bei optischen Laufwerken abrufen if ($_.DeviceID -contains 4,3) { # Da die Grösse in Bite angegeben wird, teilen wir das Ganze durch 1GB (Gigabyte) und Runden auf 0 Stellen $tempobjekt | Add-Member -NotePropertyName “Grösse” -NotePropertyValue ([math]::Round(($_.Size / 1GB),0).toString() + ” GB”) # Damit wir ein “GB” hinter die Zahl bekommen, müssen wir die Zahl zuerst in Text umwandeln mit .toString() $tempobjekt | Add-Member -NotePropertyName “FreierPlatz” -NotePropertyValue ([math]::Round(($_.FreeSpace / 1GB),0).toString() + ” GB”) # Jetzt teilen wir noch den freien Platz durch den Gesamtplatz und bekommen wieviele % noch frei sind $tempobjekt | Add-Member -NotePropertyName “Frei in %” -NotePropertyValue ([math]::round(($_.Freespace / $_.Size)*100,0).toString() + “%”) } # Zum Schluss hängen wir unser Objekt an das Array aller Festplatten an, Fertig 🙂 $meinefestplatten += $tempobjekt } $meinefestplatten | ft # Ausgabe aller Festplatten als Tabelle
Ich erstelle und veröffentliche sämtliche Videos kostenlos und blende auch keine Werbung ein, dies will ich auch so beibehalten. Da das vermittelte Wissen aber in teuren Kursen erlangt werden kann, ist eine kleine Spende hin und wieder sicher keine schlechte Gegenleistung.