--- id: "7.1" titel: Ein Inventarskript schreiben woche: 7 block: programmierung ziel: Du schreibst ein PowerShell-Skript, das die wichtigsten Angaben eines Rechners erfasst und an eine gemeinsame CSV-Datei anhängt, und weist an drei Rechnern nach, dass es zuverlässig funktioniert. zeitrahmen: 8 Stunden, verteilt auf zwei Tage rahmenplan: [A10, A4, B3, A5] lernfeld: LF5 material: - Drei Testrechner mit Windows, darunter ein Notebook - Eine Netzwerkfreigabe mit Schreibrecht für die CSV-Datei - Zugang zum Git-Repository der IT kriterien: - Das Skript erfasst Rechnername, Hersteller, Modell, Seriennummer, Betriebssystem mit Version, Arbeitsspeicher in GB, freien Platz auf C in GB und den Zeitpunkt des letzten Starts - Der Zielpfad der CSV-Datei ist ein Parameter, kein fester Wert im Code - Ein zweiter Lauf auf demselben Rechner erzeugt keine doppelte Zeile, sondern aktualisiert sie - Ist die Freigabe nicht erreichbar, bricht das Skript mit einer verständlichen Meldung ab - Das Skript hat einen Hilfeblock mit Beschreibung und Beispielaufruf - Die Ergebnisse von drei Rechnern liegen in der CSV-Datei und lassen sich in Excel öffnen - Das Skript liegt mit mindestens drei sinnvoll beschriebenen Commits im Repository --- ## Auftrag Die Geräteliste der IT wird von Hand gepflegt und ist deshalb nie ganz aktuell. Dein Skript soll das ändern. 1. **Angaben finden:** Ermittle mit `Get-CimInstance`, wo die Angaben stecken. Hilfreich sind die Klassen `Win32_ComputerSystem`, `Win32_BIOS`, `Win32_OperatingSystem` und `Win32_LogicalDisk`. Nutze `Get-Member`, um die Eigenschaften zu finden. 2. **Ein Objekt bauen:** Fasse alles in einem `[PSCustomObject]` zusammen. Rechne Bytes in Gigabyte um und runde auf eine Nachkommastelle. 3. **Ablegen:** Lies die vorhandene CSV-Datei ein, ersetze die Zeile des eigenen Rechners oder hänge eine neue an, und schreib die Datei zurück. 4. **Absichern:** Zielpfad als Parameter, Prüfung mit `Test-Path`, Fehlerbehandlung mit `try`/`catch`. 5. **Dokumentieren:** Hilfeblock oben im Skript, Commits im Repository. 6. **Nachweisen:** Lauf auf drei Rechnern, darunter ein zweiter Lauf auf demselben Rechner. ## Worauf es ankommt Das Aktualisieren statt Anhängen ist der Teil, an dem die meisten hängen bleiben – und genau der Teil, der das Skript im Alltag brauchbar macht. Überleg dir vorher, woran du einen Rechner eindeutig erkennst. Der Rechnername ist es nicht immer; die Seriennummer schon eher. ## Zeit Zwei Tage. Wenn du nach zwei Stunden nicht weißt, wo eine Angabe steckt, frag nach – das Suchen in den Klassen gehört zur Übung, das Verzweifeln daran nicht.