# PowerShell ## Navigieren und Dateien - `Get-ChildItem` — Verzeichnis auflisten (`ls`, `-Force` zeigt versteckte) - `Set-Location ` — Verzeichnis wechseln (`cd`) - `New-Item -ItemType Directory ` — Ordner anlegen (`mkdir`) - `Copy-Item -Recurse` — kopieren - `Move-Item ` — verschieben oder umbenennen - `Remove-Item -Recurse -Force` — löschen, endgültig - `Test-Path ` — existiert die Datei oder der Ordner? ## Ansehen und Suchen - `Get-Content -Tail 50` — letzte Zeilen (`-Wait` folgt wie tail -f) - `Select-String "" -List` — in Dateien suchen (grep) - `Get-ChildItem -Recurse -Filter *.log` — Dateien rekursiv finden - ` | Select-Object -First 10` — Ausgabe begrenzen (head) - ` | Where-Object Name -like "*test*"` — Ausgabe filtern - ` | Measure-Object` — zählen (wc) - ` | Out-GridView` — Ausgabe in sortierbarem Fenster ## Prozesse und Dienste - `Get-Process | Sort-Object CPU -Descending | Select-Object -First 10` — Top-Prozesse - `Stop-Process -Name ` — Prozess beenden (`-Id ` per PID) - `Get-Service ` — Dienststatus - `Restart-Service ` — Dienst neu starten (Admin nötig) ## Netzwerk - `Test-NetConnection -Port 443` — Erreichbarkeit und Port testen - `Get-NetTCPConnection -LocalPort ` — wer belegt den Port (OwningProcess = PID) - `Invoke-RestMethod ` — HTTP-Aufruf, JSON kommt als Objekt zurück - `Resolve-DnsName ` — DNS-Auflösung prüfen ## Umgebung - `$env:PATH -split ";"` — PATH lesbar ausgeben - `$env:NAME = "wert"` — Variable für diese Session setzen - `[Environment]::SetEnvironmentVariable("NAME", "wert", "User")` — dauerhaft setzen - `Get-Command ` — wo liegt ein Befehl (which) - `Get-History` — bisherige Befehle dieser Session ## Windows-Spezifisches - `explorer .` — aktuellen Ordner im Explorer öffnen - `Start-Process ` — mit Standardprogramm öffnen - `Start-Process pwsh -Verb RunAs` — Terminal als Administrator - `Set-ExecutionPolicy -Scope CurrentUser RemoteSigned` — lokale Skripte erlauben - `winget search ` — Software im Paketmanager suchen - `winget install ` — installieren - `winget upgrade --all` — alles aktualisieren ## Hilfe - `Get-Help -Examples` — Beispiele zu einem Cmdlet - `Get-Member` — Eigenschaften eines Pipeline-Objekts anzeigen - `Get-Alias ` — welches Cmdlet steckt hinter einem Alias