Windows 11 Entwickler-Setup — die erste Stunde nach dem Auspacken
Einspuriger Weg für Windows 11: winget · WSL2 · Git · SSH. Einen neuen PC bis zum ersten git push bringen.
Windows-Entwicklung hat zwei Geschmacksrichtungen: (a) alles innerhalb von WSL2/Linux erledigen, (b) nativ mit PowerShell + Git Bash arbeiten. Dieser Leitfaden richtet beides ein, damit man je nach Projekt wählen kann. Node/Go/Python? WSL2 gewinnt mit großem Abstand. .NET, Spiele, Tauri, Win32-APIs? Nativ ist die Antwort.
Zielgruppe: Windows 11 (22H2 oder neuer) mit verfügbarem winget. Windows 10 funktioniert größtenteils, mit geringfügigen winget-Unterschieden.
TL;DR
- Vier Windows 11-Systemeinstellungen (Explorer-Erweiterungen/Verstecktes, Zwischenablageverlauf, virtuelle Desktop-Shortcuts)
- winget installiert acht Essentials in einer Zeile (Git, GH CLI, Windows Terminal, PowerShell 7, VS Code, mise, ripgrep, fzf)
- WSL2 + Ubuntu 24.04:
wsl --install -d Ubuntu-24.04 - Git globals + SSH ed25519 → bei GitHub registrieren →
gh auth login
Voraussetzungen
- Windows 11 22H2+ — mit
winverprüfen. Dies ist der erste Build mit gebündeltem winget. - Administratorrechte — für die WSL2-Installation und einige systemweite winget-Pakete.
- Internet + Microsoft-Konto (auf Windows 11 Home praktisch erforderlich).
- Hardware-Virtualisierung — Intel VT-x oder AMD-V im BIOS/UEFI aktiviert (von WSL2 benötigt). Normalerweise standardmäßig aktiviert.
Mit
systeminfo | findstr /C:"Hyper-V"prüfen — jede „Hyper-V Requirements"-Zeile sollte „Yes" anzeigen.
1. Windows 11-Systemeinstellungen — 5 Minuten
1.1 Explorer — Erweiterungen, versteckte Dateien, vollständigen Pfad anzeigen
Win + E öffnet den Explorer → Ansicht → Anzeigen → Dateinamenerweiterungen + Ausgeblendete Elemente. Oder in einem Schritt über PowerShell:
# Erweiterungen + versteckte Dateien anzeigen
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name HideFileExt -Value 0
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name Hidden -Value 1
Stop-Process -Name explorer -Force1.2 Zwischenablageverlauf (Win + V)
Sehr nützlich, standardmäßig deaktiviert. Einstellungen → System → Zwischenablage → Zwischenablageverlauf aktivieren.
1.3 Virtuelle Desktops
Strg + Win + ←/→ — zwischen Desktops wechseln. Integriert, aber vielen Neulingen unbekannt. Die Windows-Antwort auf das macOS-Wischen zwischen Spaces.
1.4 PowerToys (optional, sehr empfohlen)
Microsofts offizielle Produktivitätssuite. Eine winget-Zeile:
winget install Microsoft.PowerToys --source winget --silentHighlights: FancyZones (Fenster-Tiling — das Rectangle-Äquivalent), PowerToys Run (Alt + Leertaste — Raycast-Äquivalent), Keyboard Manager (Tastenzuweisung).
2. winget — Paketmanager prüfen
winget ist in Windows 11 enthalten. Sehr alte Builds benötigen möglicherweise ein Update.
winget --version
# v1.x.x ← vorhanden? GutFehlt oder veraltet? Microsoft Store → „App Installer" suchen → aktualisieren. winget lebt in diesem Paket.
Automatisierungsskript (optional)
Lieber ein Skript ausführen statt jeden Schritt einzeln? Immer herunterladen → SHA-256 prüfen → inspizieren → ausführen.
setup-windows.ps1# 1. Herunterladen
Invoke-WebRequest -Uri https://devalice.jaceclub.com/assets/windows/initial-setup/setup-windows.ps1 -OutFile setup-windows.ps1
# 2. SHA-256 prüfen
Get-FileHash setup-windows.ps1 -Algorithm SHA256
# erwartet: 75A9A5CC7B8804CF0808971A648B7174DADE3A5F32F2DB9C80A9783242EEEEBD
# (kleinschreibung: 75a9a5cc7b8804cf0808971a648b7174dade3a5f32f2db9c80a9783242eeeebd)
# 3. Inspizieren
notepad setup-windows.ps1
# 4. Ausführen (Ausführungsrichtlinie nur für diese Sitzung lockern)
PowerShell -ExecutionPolicy Bypass -File .\setup-windows.ps1Das Skript ist idempotent — es nach einem Teilfehler erneut auszuführen ist sicher. Es automatisiert winget-Installation + Git-Konfiguration + SSH-Schlüsselerstellung. WSL2-Installation und GitHub-Schlüsselregistrierung bleiben manuell.
Falls man die einzelnen Schritte lieber manuell durchführen möchte, unten weiterlesen.
3. winget-Essentials — 10 Minuten
3.1 Acht Essentials in einer Zeile
winget install --silent --accept-source-agreements --accept-package-agreements `
Git.Git `
GitHub.cli `
Microsoft.WindowsTerminal `
Microsoft.PowerShell `
Microsoft.VisualStudioCode `
jdx.mise `
BurntSushi.ripgrep.MSVC `
junegunn.fzf| Paket | Zweck |
|---|---|
Git.Git | Git for Windows (Git Bash inklusive) |
GitHub.cli | gh |
Microsoft.WindowsTerminal | Tab-Terminal — deutlich besser als die Standard-Konsole |
Microsoft.PowerShell | PowerShell 7 (Standard ist 5.1; 7 ist stark verbessert) |
Microsoft.VisualStudioCode | VS Code |
jdx.mise | Laufzeitversions-Manager (Node · Python · …) |
BurntSushi.ripgrep.MSVC | rg — schnelleres grep |
junegunn.fzf | Fuzzy Finder |
Einige Pakete benötigen ein neues Terminal, damit die PATH-Aktualisierung wirksam wird.
3.2 Prüfen
git --version
gh --version
pwsh --version # PowerShell 7
code --version
mise --version
rg --version3.3 Windows Terminal als Standard setzen
Einstellungen → Datenschutz & Sicherheit → Für Entwickler → Terminal → Windows Terminal wählen. Jeder zukünftige Konsolenstart öffnet sich in Windows Terminal.
4. WSL2 + Ubuntu — 10 Minuten
Wer echte Linux-Arbeit erledigen möchte, hat WSL2 als primäres Werkzeug. Node, Python, Docker — alles läuft deutlich reibungsloser in WSL2.
4.1 Installation
In einer Admin-PowerShell (Rechtsklick → „Als Administrator ausführen"):
wsl --install -d Ubuntu-24.04Diese einzelne Zeile:
- Aktiviert die WSL-Funktion
- Aktiviert die Virtual Machine Platform
- Setzt WSL2 als Standardversion
- Lädt Ubuntu 24.04 herunter und installiert es
Einmal neu starten. Nach dem Neustart startet Ubuntu und fragt nach Benutzername/Passwort.
4.2 Erste Bereinigung
In Ubuntu:
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential git curl unzipDen aktuellen Ubuntu-Ordner in Windows VS Code öffnen (installiert automatisch die WSL Remote-Erweiterung):
code .Auf WSL-Dateien über
\\wsl$\Ubuntu-24.04\home\<benutzer>im Explorer zugreifen. Linux-Datei-I/O ist am schnellsten innerhalb von WSL-Pfaden (/home/...). Code unter Windows-Pfaden (/mnt/c/...) abzulegen ist deutlich langsamer.
4.3 WSL-Status prüfen
Aus PowerShell:
wsl --status
wsl --list --verbose
# NAME STATE VERSION
# Ubuntu-24.04 Running 25. Git globals + SSH — 10 Minuten
WSL und Windows haben unabhängige Git-Konfigurationen. Beide einrichten.
5.1 Windows-seitige Git-Konfiguration (PowerShell)
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global init.defaultBranch main
git config --global pull.rebase false
git config --global core.autocrlf true # Windows-Zeilenenden automatisch verwalten
git config --global core.editor "code --wait"5.2 SSH-Schlüssel — ed25519
ssh-keygen -t ed25519 -C "you@example.com"
# Standardpfad: $env:USERPROFILE\.ssh\id_ed25519 (Enter drücken zum Bestätigen)
# Passphrase: optionalssh-agent starten + Schlüssel hinzufügen (Admin-PowerShell):
# Dienst automatisch starten
Set-Service -Name ssh-agent -StartupType Automatic
Start-Service ssh-agent
# Schlüssel hinzufügen
ssh-add $env:USERPROFILE\.ssh\id_ed255195.3 Öffentlichen Schlüssel bei GitHub registrieren
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboardhttps://github.com/settings/ssh/new öffnen → Titel: „Windows 11 (PC-Name)" → Schlüssel einfügen → SSH-Schlüssel hinzufügen.
5.4 gh CLI-Authentifizierung
gh auth login
# GitHub.com → HTTPS → J (Git mit GitHub-Anmeldedaten authentifizieren) → Im Webbrowser anmelden5.5 WSL-seitige Git-Konfiguration (optional, wenn WSL die Hauptarbeitsumgebung ist)
In Ubuntu wiederholen:
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global init.defaultBranch main
ssh-keygen -t ed25519 -C "you@example.com"
# Öffentlichen Schlüssel ausgeben → separat bei GitHub registrieren (eigener Schlüssel pro Gerät hält Audits übersichtlich)
cat ~/.ssh/id_ed25519.pubTipp: Windows'
%USERPROFILE%\.sshkann per Symlink in WSL's~/.ssheingebunden werden, aber Berechtigungen gehen oft schief. Separate Schlüssel zu halten ist sicherer.
6. Überprüfen — wurde alles korrekt installiert?
Aus PowerShell:
Write-Host "--- Versionen ---"
[System.Environment]::OSVersion.Version
git --version
gh --version | Select-Object -First 1
pwsh --version
wsl --list --verbose
Write-Host "--- GitHub-Authentifizierung ---"
ssh -T git@github.com 2>&1 | Select-Object -First 1
gh auth status 2>&1 | Select-Object -First 3Erwartete Ausgabe:
--- Versionen ---
Major Minor Build
----- ----- -----
10 0 22631 (Windows 11 22H2+)
git version 2.x.x.windows.x
gh version 2.x.x
PowerShell 7.x.x
NAME STATE VERSION
Ubuntu-24.04 Running 2
--- GitHub-Authentifizierung ---
Hi <your-username>! You've successfully authenticated, ...
github.com
✓ Logged in to github.com account <your-username>
Auf der WSL-Seite prüfen, in Ubuntu:
git --version
ssh -T git@github.com 2>&1 | head -17. Fehlerbehebung
wsl --install schlägt fehl mit 0x80070003 oder einem Virtualisierungsfehler
VT-x / AMD-V ist im BIOS deaktiviert. Ins BIOS starten → CPU-Konfiguration → Virtualization Technology → Aktiviert → speichern und neu starten.
winget „Befehl nicht gefunden"
App Installer fehlt oder ist sehr alt. Microsoft Store → „App Installer" suchen → installieren/aktualisieren.
PowerShell-Skriptausführung blockiert
.\setup-windows.ps1 : File ... cannot be loaded because running scripts is disabled on this system.
Einmaliger Bypass für diese Sitzung:
PowerShell -ExecutionPolicy Bypass -File .\setup-windows.ps1Dauerhaft (Benutzerbereich):
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSignedgit push gibt „Permission denied (publickey)" zurück
ssh-add -l # Ist der Schlüssel im Agent?
ssh -vT git@github.com 2>&1 | Select -Last 20ssh-agent-Dienst wurde möglicherweise gestoppt →Start-Service ssh-agent- Der öffentliche Schlüssel ist möglicherweise nicht auf GitHub →
https://github.com/settings/keysprüfen
Zeit in WSL driftet (Zukunft/Vergangenheit) nach Schlafmodus
Häufig nach Suspend. In WSL:
sudo hwclock -swinget verweigert mit „mehrere Pakete gefunden"
ID-Kollision. Mit --id festlegen:
winget install --id Git.Git --exactKoreanischer Text bricht in Windows Terminal ab
Einstellungen (Strg + ,) → dieses Profil → Darstellung → Schriftfamilie → Cascadia Mono oder D2Coding (eine Schriftart mit korrekter koreanischer Abdeckung).
8. Was kommt als Nächstes
Dieser Leitfaden endet bei „Windows 11 kann git push". Danach:
- Erweitertes WSL2 — Docker Desktop ↔ WSL2-Integration, Arbeitsspeicher-Limits (
%USERPROFILE%\.wslconfig) — WSL-Tuning - Dev-Tooling — Sprach-Laufzeiten (Node · Python), Editor-Erweiterungen
- KI-Agent-Umgebung — Claude Code Setup — /ai-agents/claude-code
- Gleichzeitige Mac-Nutzung — Eingabeteilung, Dateisync — /multi-os/input-sharing
Referenzen
Changelog
- 2026-05-12 — Erste deutsche Übersetzung (devAlice M3 i18n Seed)