Inhalte: Wochen 5 bis 8

Vier neue Wochen nach Rahmenplan, im bestehenden Format:

- Woche 5 Ausbildung, Betrieb und Zusammenarbeit (C1, C2, C5)
- Woche 6 IT-Sicherheit und Datenschutz (A6, LF4)
- Woche 7 Skripting mit PowerShell (A10, A4)
- Woche 8 Datensicherung und Speicher (A9)

12 Handouts, 38 Merkkarten, 4 Praxisaufgaben, 2 Checklisten,
2 Lernzielkontrollen, 22 Glossareintraege, zwei neue Themenbloecke.
Jede Berufsbildposition ist jetzt von mindestens einem Inhalt beruehrt.

Die Praxisaufgaben bauen aufeinander auf: Die Abteilungsuebersicht aus
5.1 ist Grundlage der Schutzbedarfsfeststellung in 6.1, und deren
Ergebnis ist Massstab fuer die Sicherungspruefung in 8.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Florian Wilde
2026-10-04 21:53:10 +02:00
co-authored by Claude Opus 5.5
parent 052419dd43
commit 7d171f149d
27 changed files with 1625 additions and 0 deletions
@@ -0,0 +1,74 @@
---
id: P1
titel: PowerShell – Befehle, Pipeline und Objekte
block: programmierung
woche: 7
worum: PowerShell reicht keine Texte weiter, sondern Objekte mit Eigenschaften. Wer das verstanden hat, braucht kein Textschnipseln mehr.
rahmenplan: [A10, B3]
lernfeld: LF5
merksatz: Verb-Substantiv finden, Get-Member fragen, filtern, sortieren, auswählen – formatiert wird erst ganz am Ende.
karten:
- frage: Wie sind die Befehle (Cmdlets) in PowerShell benannt, und wie findet man einen unbekannten Befehl?
antwort: Nach dem Muster Verb-Substantiv, etwa Get-Service oder Stop-Process. Get-Command mit einem Suchbegriff findet Befehle, Get-Help erklärt sie mit Beispielen.
- frage: Was unterscheidet die Pipeline in PowerShell von der in einer klassischen Linux-Shell?
antwort: In PowerShell wandern Objekte mit Eigenschaften durch die Pipeline, nicht Textzeilen. Man filtert nach Eigenschaften wie Status oder Name, statt Spalten aus Text herauszuschneiden.
- frage: Wozu dient Get-Member?
antwort: Es zeigt, welche Eigenschaften und Methoden die Objekte haben, die ein Befehl liefert – also womit man in der Pipeline weiterarbeiten kann.
---
## Das Wesentliche
- **Verb-Substantiv:** `Get-Service`, `Get-Process`, `Get-ChildItem`, `Stop-Service`. Die
Verben sind festgelegt – `Get` liest, `Set` ändert, `New` legt an, `Remove` löscht.
- **Selbst finden statt googeln:** `Get-Command *service*` findet Befehle,
`Get-Help Get-Service -Examples` zeigt Beispiele. Einmal `Update-Help` als Administrator.
- **Objekte statt Text.** `Get-Service` liefert Dienstobjekte mit Eigenschaften wie `Name`,
`Status` und `StartType`. Welche es gibt, verrät `Get-Service | Get-Member`.
- **Die vier Werkzeuge der Pipeline:**
- `Where-Object` filtert: `Where-Object Status -eq 'Stopped'`
- `Sort-Object` sortiert: `Sort-Object Name`
- `Select-Object` wählt Eigenschaften oder Anzahl: `Select-Object Name, Status -First 10`
- `ForEach-Object` tut etwas mit jedem Objekt
- **Vergleiche** heißen `-eq`, `-ne`, `-gt`, `-lt`, `-like` (mit `*` als Platzhalter) und
`-match` (regulärer Ausdruck). Groß- und Kleinschreibung spielt dabei keine Rolle.
- **Ausgeben und weitergeben:** `Export-Csv` schreibt eine Tabelle für Excel,
`Out-File` eine Textdatei. `Format-Table` gehört nur ans Ende – danach sind es keine
verwertbaren Objekte mehr.
- **Erst lesen, dann ändern.** Jeder Befehl, der etwas verändert, kennt `-WhatIf`: Er sagt,
was er tun würde, und tut es nicht.
## Übersicht
```powershell
# Alle beendeten Dienste, die automatisch starten sollten
Get-Service |
Where-Object { $_.Status -eq 'Stopped' -and $_.StartType -eq 'Automatic' } |
Sort-Object Name |
Select-Object Name, DisplayName
# Die fünf Prozesse mit dem höchsten Speicherverbrauch
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 5 Name, Id, WorkingSet
# Dateien im Downloadordner, älter als 90 Tage, als Tabelle für Excel
Get-ChildItem $HOME\Downloads -File |
Where-Object LastWriteTime -lt (Get-Date).AddDays(-90) |
Select-Object Name, Length, LastWriteTime |
Export-Csv alte-downloads.csv -NoTypeInformation -Encoding UTF8
```
`$_` steht innerhalb der geschweiften Klammern für das Objekt, das gerade durch die Pipeline
kommt.
## Prüfungsfrage
**Frage:** Schreiben Sie eine PowerShell-Befehlszeile, die alle laufenden Dienste
alphabetisch sortiert mit Name und Anzeigename in die Datei `dienste.csv` schreibt, und
erklären Sie jeden Teil.
**Antwort:**
`Get-Service | Where-Object Status -eq 'Running' | Sort-Object Name | Select-Object Name, DisplayName | Export-Csv dienste.csv -NoTypeInformation`
– `Get-Service` liefert alle Dienste als Objekte. `Where-Object` lässt nur die durch, deren
Eigenschaft `Status` den Wert `Running` hat. `Sort-Object Name` sortiert nach dem Namen.
`Select-Object` behält nur die beiden gewünschten Eigenschaften. `Export-Csv` schreibt das
Ergebnis als Tabelle; `-NoTypeInformation` unterdrückt die Typzeile, die ältere
PowerShell-Fassungen sonst an den Anfang setzen.