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>
3.6 KiB
3.6 KiB
id, titel, block, woche, worum, rahmenplan, lernfeld, merksatz, karten
| id | titel | block | woche | worum | rahmenplan | lernfeld | merksatz | karten | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| P2 | Variablen, Bedingungen und Schleifen | programmierung | 7 | Drei Bausteine reichen für fast jedes Verwaltungsskript – sich etwas merken, eine Entscheidung treffen, etwas wiederholen. |
|
LF5 | Merken mit $, entscheiden mit if, wiederholen mit foreach. Der Rest ist Übung. |
|
Das Wesentliche
- Variablen beginnen mit
$:$pfad = 'D:\Daten'. Sie können alles aufnehmen – Text, Zahlen, Listen, ganze Objekte aus einem Befehl:$dienste = Get-Service. - Text: In
"…"werden Variablen eingesetzt, in'…'nicht. Für Eigenschaften im Text:"Freier Platz: $($laufwerk.FreeSpace)". - Listen entstehen mit
@('PC-001', 'PC-002')oder als Bereich1..10. Das erste Element ist$liste[0], die Anzahl$liste.Count. - Eigene Objekte für Berichte:
[PSCustomObject]@{ Name = $n; Status = $s }. Daraus wird mitExport-Csveine saubere Tabelle. - Bedingungen:
if (…) { … } elseif (…) { … } else { … }. In der Klammer steht ein Vergleich mit-eq,-gt,-likeusw. – nicht mit=, das ist eine Zuweisung. - Verknüpfen mit
-and,-or,-not. - Schleifen:
foreach ($pc in $rechner) { … }geht jedes Element durch.while (…) { … }läuft, solange die Bedingung gilt – und braucht deshalb etwas, das sie irgendwann falsch werden lässt. - Rechnen:
+ - * /und%für den Rest einer Division.1GBist für PowerShell eine Zahl,$bytes / 1GBrechnet also direkt in Gigabyte um.
Übersicht
$grenze = 15 # Prozent freier Platz, ab dem gewarnt wird
$laufwerke = Get-CimInstance -ClassName Win32_LogicalDisk -Filter 'DriveType = 3'
foreach ($lw in $laufwerke) {
$frei = [math]::Round($lw.FreeSpace / $lw.Size * 100, 1)
if ($frei -lt $grenze) {
Write-Warning "$($lw.DeviceID) hat nur noch $frei % frei."
}
else {
Write-Output "$($lw.DeviceID): $frei % frei – in Ordnung."
}
}
DriveType = 3 sind lokale Festplatten; USB-Sticks (2) und Netzlaufwerke (4) bleiben außen vor.
Prüfungsfrage
Frage: Schreiben Sie ein kurzes PowerShell-Skript, das für eine Liste von drei Rechnernamen prüft, ob sie per Ping erreichbar sind, und für jeden Rechner „erreichbar" oder „nicht erreichbar" ausgibt.
Antwort:
$rechner = @('PC-001', 'PC-002', 'PC-003')
foreach ($pc in $rechner) {
if (Test-Connection -ComputerName $pc -Count 1 -Quiet) {
Write-Output "$pc erreichbar"
}
else {
Write-Output "$pc nicht erreichbar"
}
}
Die Liste wird in einer Variablen gehalten, foreach geht jeden Namen durch.
Test-Connection -Quiet liefert statt einer ausführlichen Ausgabe nur wahr oder falsch,
was die if-Bedingung direkt auswertet.