devAlice
← Windows

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

  1. Vier Windows 11-Systemeinstellungen (Explorer-Erweiterungen/Verstecktes, Zwischenablageverlauf, virtuelle Desktop-Shortcuts)
  2. winget installiert acht Essentials in einer Zeile (Git, GH CLI, Windows Terminal, PowerShell 7, VS Code, mise, ripgrep, fzf)
  3. WSL2 + Ubuntu 24.04: wsl --install -d Ubuntu-24.04
  4. Git globals + SSH ed25519 → bei GitHub registrieren → gh auth login

Voraussetzungen

  • Windows 11 22H2+ — mit winver prü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 -Force

1.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 --silent

Highlights: 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? Gut

Fehlt 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.ps1

Das 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
PaketZweck
Git.GitGit for Windows (Git Bash inklusive)
GitHub.cligh
Microsoft.WindowsTerminalTab-Terminal — deutlich besser als die Standard-Konsole
Microsoft.PowerShellPowerShell 7 (Standard ist 5.1; 7 ist stark verbessert)
Microsoft.VisualStudioCodeVS Code
jdx.miseLaufzeitversions-Manager (Node · Python · …)
BurntSushi.ripgrep.MSVCrg — schnelleres grep
junegunn.fzfFuzzy 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 --version

3.3 Windows Terminal als Standard setzen

Einstellungen → Datenschutz & Sicherheit → Für Entwickler → TerminalWindows 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.04

Diese einzelne Zeile:

  1. Aktiviert die WSL-Funktion
  2. Aktiviert die Virtual Machine Platform
  3. Setzt WSL2 als Standardversion
  4. 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 unzip

Den 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         2

5. 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: optional

ssh-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_ed25519

5.3 Öffentlichen Schlüssel bei GitHub registrieren

Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard

https://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 anmelden

5.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.pub

Tipp: Windows' %USERPROFILE%\.ssh kann per Symlink in WSL's ~/.ssh eingebunden 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 3

Erwartete 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 -1

7. 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.ps1

Dauerhaft (Benutzerbereich):

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

git 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 20
  • ssh-agent-Dienst wurde möglicherweise gestoppt → Start-Service ssh-agent
  • Der öffentliche Schlüssel ist möglicherweise nicht auf GitHub → https://github.com/settings/keys prüfen

Zeit in WSL driftet (Zukunft/Vergangenheit) nach Schlafmodus

Häufig nach Suspend. In WSL:

sudo hwclock -s

winget verweigert mit „mehrere Pakete gefunden"

ID-Kollision. Mit --id festlegen:

winget install --id Git.Git --exact

Koreanischer 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)