Umgebungsvariablen in Windows 11 und 10: Entdecken Sie die vollständige Liste aller System- und Benutzervariablen sowie Tipps zur richtigen Verwendung.

Umgebungsvariablen sind vordefinierte Kurzbefehle, die in Windows 10 und Windows 11 auf wichtige Systempfade, Benutzerdaten und Konfigurationswerte verweisen.
Ob im Ausführen-Dialog, in der Eingabeaufforderung, in PowerShell oder in eigenen Skripten – wer diese Variablen kennt und richtig einsetzt, navigiert schneller durch das Dateisystem und schreibt robustere Automatisierungen.
Was sind Umgebungsvariablen in Windows?
Umgebungsvariablen sind benannte Platzhalter, die Windows intern nutzt, um Dateipfade, Systemkonfigurationen und Benutzerdaten zu speichern. Anstatt einen langen Pfad wie C:\Users\MaxMustermann\AppData\Roaming einzutippen, genügt es, %APPDATA% zu verwenden – Windows löst diese Variable automatisch in den korrekten Pfad auf.
Dabei gibt es zwei grundlegende Kategorien: Systemvariablen gelten computerübergreifend für alle Benutzerkonten. Benutzervariablen hingegen sind benutzerspezifisch und können je nach angemeldetem Konto unterschiedliche Werte enthalten. Zusätzlich existieren sogenannte dynamische Variablen, die intern von der Eingabeaufforderung (cmd.exe) verwaltet werden und bei jedem Aufruf neu berechnet werden – zum Beispiel das aktuelle Datum oder die Uhrzeit.
Praktisch einsetzen lassen sich Umgebungsvariablen auf mehrere Arten: im Ausführen-Dialog (Win + R), in der Eingabeaufforderung (CMD), in PowerShell, im Windows-Explorer (Adresszeile) sowie in Batch-Skripten und Shell-Skripten. Dabei ist zu beachten, dass Variablennamen in Windows nicht zwischen Groß- und Kleinschreibung unterscheiden – %APPDATA%, %AppData% und %appdata% sind daher vollständig gleichwertig.
Umgebungsvariablen anzeigen – so geht es in Windows 10 und 11
Bevor Sie die vollständige Liste der Variablen nutzen, sollten Sie wissen, wie Sie diese auf Ihrem System einsehen. Dazu stehen Ihnen in beiden Windows-Versionen mehrere Wege zur Verfügung.
Über die Systemsteuerung (Windows 10 und 11):
- Öffnen Sie die Einstellungen per Win + I.
- Navigieren Sie zu System → Info.
- Klicken Sie auf Erweiterte Systemeinstellungen.
- Wechseln Sie zur Registerkarte Erweitert und klicken Sie auf Umgebungsvariablen.
- Im oberen Bereich sehen Sie die Benutzervariablen, im unteren die Systemvariablen.
Über die Eingabeaufforderung (CMD):
Öffnen Sie CMD über die Suche oder Win + R → cmd. Geben Sie danach set ein und drücken Sie Enter. Dies zeigt alle aktuell gültigen Variablen der Sitzung inklusive Systemvariablen, Benutzervariablen und Shell-Variablen.
Über PowerShell:
Öffnen Sie PowerShell über die Suche oder Win + X → „Windows PowerShell“. Geben Sie folgenden Befehl ein:
Get-ChildItem Env: | Sort-Object Name
Dieser Befehl listet alle verfügbaren Umgebungsvariablen alphabetisch sortiert auf. Alternativ zeigt dir Env: denselben Inhalt in einer etwas anderen Darstellung. Ein besonderer Vorteil von PowerShell ist, dass es sämtliche Variablen aller Benutzer anzeigt – nicht nur die des aktuell angemeldeten Kontos.
Vollständige Liste der Systemvariablen
Systemvariablen gelten für alle Benutzer des Computers und werden vom Betriebssystem selbst gesetzt. Im Folgenden finden Sie die wichtigsten und am häufigsten genutzten Systemvariablen in Windows 10 und Windows 11.
Pfad- und Verzeichnisvariablen:
| Variable | Typischer Standardwert | Beschreibung |
|---|---|---|
| %SystemRoot% | C:\Windows | Hauptverzeichnis der Windows-Installation; viele Systemdienste sind darauf angewiesen |
| %WinDir% | C:\Windows | Synonym für %SystemRoot%; beide Variablen verweisen auf dasselbe Verzeichnis |
| %SystemDrive% | C: | Laufwerksbuchstabe des Laufwerks, auf dem Windows installiert ist |
| %ProgramFiles% | C:\Program Files | Standard-Installationsordner für 64-Bit-Programme |
| %ProgramFiles(x86)% | C:\Program Files (x86) | Installationsordner für 32-Bit-Programme auf 64-Bit-Systemen; nur auf 64-Bit-Windows vorhanden |
| %ProgramW6432% | C:\Program Files | Verweist stets auf den nativen 64-Bit-Programmordner, auch aus 32-Bit-Prozessen heraus |
| %CommonProgramFiles% | C:\Program Files\Common Files | Freigegebene Bibliotheken und Ressourcen für 64-Bit-Anwendungen |
| %CommonProgramFiles(x86)% | C:\Program Files (x86)\Common Files | Freigegebene Ressourcen für 32-Bit-Anwendungen |
| %CommonProgramW6432% | C:\Program Files\Common Files | Nativer 64-Bit-Pfad für gemeinsam genutzte Programmdateien |
| %ProgramData% | C:\ProgramData | Anwendungsdaten, die für alle Benutzer des Systems gelten; früher auch als %AllUsersProfile% bekannt |
| %AllUsersProfile% | C:\ProgramData | Legacy-Variable; verweist ebenfalls auf C:\ProgramData |
| %Public% | C:\Users\Public | Öffentlicher Benutzerordner, auf den alle Konten Zugriff haben |
Systemkonfiguration und -informationen:
| Variable | Typischer Standardwert | Beschreibung |
|---|---|---|
| %ComSpec% | C:\Windows\System32\cmd.exe | Vollständiger Pfad zur Eingabeaufforderung |
| %Path% | (mehrteilig) | Semikolongetrennte Liste aller Verzeichnisse, in denen Windows nach ausführbaren Dateien sucht |
| %PathExt% | .COM;.EXE;.BAT;.CMD;… | Dateiendungen, die Windows als ausführbar behandelt |
| %OS% | Windows_NT | Name des Betriebssystems; seit Windows NT konstant dieser Wert |
| %ComputerName% | (Gerätename) | NetBIOS-Name des Computers; wird z. B. in Netzwerkskripten genutzt |
| %Number_of_Processors% | (z. B. 8) | Anzahl der logischen Prozessorkerne |
| %Processor_Architecture% | AMD64 oder x86 | Prozessorarchitektur des Systems |
| %Processor_Identifier% | (CPU-Bezeichnung) | Detaillierte Bezeichnung des verbauten Prozessors |
| %Processor_Level% | (z. B. 6) | Prozessorfamilie |
| %Processor_Revision% | (Revisionsnummer) | Revision des Prozessors |
| %DriverData% | C:\Windows\System32\Drivers\DriverData | Speicherort für Treiberdaten; seit Windows 10 Version 1803 vorhanden |
| %SystemPageSize% | (z. B. 4096) | Größe einer Speicherseite in Bytes |
Netzwerk und Sicherheit:
| Variable | Beschreibung |
|---|---|
| %UserDomain% | Domänenname oder lokale Arbeitsgruppe des aktuellen Benutzers |
| %UserDnsDomain% | DNS-Domänenname; nur in Domänenumgebungen gesetzt |
| %LogonServer% | Name des Servers, der die aktuelle Anmeldesitzung authentifiziert hat |
| %SessionName% | Name der aktuellen Terminalsitzung; bei lokaler Sitzung meist Console |
Temporäre Dateien:
| Variable | Typischer Wert | Beschreibung |
|---|---|---|
| %Temp% (System) | C:\Windows\Temp | Temporärer Ordner für Systemprozesse |
| %Tmp% (System) | C:\Windows\Temp | Synonym für %Temp% auf Systemebene |
Vollständige Liste der Benutzervariablen
Benutzervariablen sind kontenspezifisch und ändern sich je nachdem, welcher Benutzer angemeldet ist. Deshalb sind sie besonders wichtig für Skripte, die portabel und benutzernamenunabhängig funktionieren sollen.
| Variable | Typischer Standardwert | Beschreibung |
|---|---|---|
| %UserProfile% | C:\Users\<Benutzername> | Basisordner des angemeldeten Benutzers; enthält Desktop, Dokumente, Downloads usw. |
| %AppData% | C:\Users\<Benutzername>\AppData\Roaming | Roaming-Anwendungsdaten; werden bei Domänenprofilen auf Server synchronisiert |
| %LocalAppData% | C:\Users\<Benutzername>\AppData\Local | Lokale Anwendungsdaten; nicht synchronisiert |
| %Temp% (Benutzer) | C:\Users\<Benutzername>\AppData\Local\Temp | Temporärer Ordner des Benutzers |
| %Tmp% (Benutzer) | C:\Users\<Benutzername>\AppData\Local\Temp | Synonym für %Temp% auf Benutzerebene |
| %UserName% | (Benutzername) | Anmeldename des aktuell angemeldeten Benutzers |
| %HomeDrive% | C: | Laufwerksbuchstabe des Benutzer-Homeverzeichnisses |
| %HomePath% | \Users\<Benutzername> | Pfad des Benutzer-Homeverzeichnisses ohne Laufwerksbuchstabe |
| %HomeShare% | (UNC-Pfad) | Netzwerkpfad des Benutzerprofils; nur in Domänenumgebungen mit Weiterleitungsordnern gesetzt |
| %OneDrive% | C:\Users\<Benutzername>\OneDrive | Lokaler Synchronisationsordner von OneDrive (Personal) |
| %OneDriveConsumer% | C:\Users\<Benutzername>\OneDrive | Speziell für OneDrive Personal; zusätzlich zu %OneDrive% gesetzt |
| %OneDriveCommercial% | (Pfad) | Lokaler Synchronisationsordner von OneDrive for Business |
Dynamische Variablen der Eingabeaufforderung
Dynamische Variablen werden nicht im Registrierungs-Editor gespeichert, sondern intern von cmd.exe zur Laufzeit berechnet. Deshalb erscheinen sie beim Ausführen von set nicht in der Liste – sie sind jedoch jederzeit nutzbar, solange man sich in einer CMD-Sitzung befindet.
| Variable | Beschreibung |
|---|---|
| %CD% | Aktuelles Arbeitsverzeichnis inklusive Laufwerksbuchstabe und nachgestelltem Backslash |
| %Date% | Aktuelles Datum im lokalen Format (z. B. Mo 08.06.2026) |
| %Time% | Aktuelle Systemzeit |
| %Random% | Zufällige Ganzzahl zwischen 0 und 32767; nützlich für temporäre Dateinamen in Skripten |
| %ErrorLevel% | Rückgabewert des zuletzt ausgeführten Befehls oder Programms; 0 bedeutet Erfolg |
| %CmdExtVersion% | Versionsnummer der CMD-Erweiterungen |
| %CmdCmdLine% | Vollständige Befehlszeile, mit der die aktuelle CMD-Instanz gestartet wurde |
| %HighestNumaNodeNumber% | Höchste NUMA-Knotennummer auf dem System |
| %AppDir% | Verzeichnispfad zur aktuell ausgeführten .exe-Datei mit abschließendem Backslash |
| %CD% | Aktuelles Verzeichnis mit abschließendem Backslash |
PowerShell-spezifische Umgebungsvariablen
PowerShell nutzt denselben Variablenpool wie CMD, bietet jedoch zusätzlich eigene Variablen und eine abweichende Zugriffssyntax. Statt %VAR% verwendet PowerShell $env:VAR. Wichtige, ausschließlich in PowerShell relevante Variablen sind:
| Variable | Standardwert (Windows 11) | Beschreibung |
|---|---|---|
| %PSModulePath% | %ProgramFiles%\WindowsPowerShell\Modules;… | Suchpfade für PowerShell-Module; unter Windows 11 gegenüber Windows 10 erweitert |
| %PSExecutionPolicyPreference% | (variabel) | Aktuelle Ausführungsrichtlinie der PowerShell-Sitzung |
Zusätzlich lässt sich in PowerShell mit dem folgenden Befehl gezielt eine einzelne Variable abfragen:
$env:APPDATA
Damit gibt PowerShell den Wert von %APPDATA% aus. Ebenso können Sie Variablen temporär setzen:
$env:MEINE_VARIABLE = "C:\MeinPfad"
Dieser Wert gilt nur für die aktuelle PowerShell-Sitzung. Für eine dauerhafte Änderung empfiehlt sich die Nutzung der Systemsteuerung oder des Befehls setx in CMD.
Umgebungsvariablen anlegen, bearbeiten und löschen
Neue Variable über die GUI anlegen (Windows 10 und 11)
- Öffnen Sie Einstellungen → System → Info → Erweiterte Systemeinstellungen.
- Klicken Sie auf Umgebungsvariablen.
- Unter „Benutzervariablen“ klicken Sie auf Neu.
- Tragen Sie Variablenname und Variablenwert ein – zum Beispiel Name:
JAVA_HOME, Wert:C:\Program Files\Java\jdk-21. - Bestätigen Sie mit OK dreimal.
Variable temporär per CMD setzen
set MEINE_VAR=C:\Beispiel
Dieser Wert gilt nur in der aktuellen CMD-Sitzung. Schließen Sie das Fenster, ist die Variable verloren.
Variable dauerhaft per CMD setzen (setx)
setx MEINE_VAR "C:\Beispiel"
Für eine systemweite Variable (Administratorrechte erforderlich):
setx MEINE_VAR "C:\Beispiel" /M
Achtung: setx setzt die Variable erst in neuen Prozessen – die aktuelle CMD-Sitzung sieht den neuen Wert noch nicht.
Variable per PowerShell dauerhaft setzen
::SetEnvironmentVariable("MEINE_VAR","C:\Beispiel","Machine")
Für Benutzervariablen ersetzen Sie "Machine" durch "User".
Empfohlene Vorgehensweisen beim Umgang mit Umgebungsvariablen
1. Kritische Systemvariablen niemals unüberlegt ändern. Insbesondere %SystemRoot%, %SystemDrive% und %Path% sind systemkritisch. Ein falscher Wert in %Path% kann dazu führen, dass Windows keine ausführbaren Dateien mehr findet und das System sich unbrauchbar verhält. Erstellen Sie daher vor jeder Änderung einen Systemwiederherstellungspunkt über rstrui.exe.
2. Variablenwerte sichern. Vor dem Bearbeiten von %Path% empfiehlt es sich, den aktuellen Inhalt zu kopieren und in einem Texteditor zu speichern. So können Sie den Originalzustand jederzeit wiederherstellen.
3. Verschachtelung gezielt einsetzen. Umgebungsvariablen können andere Variablen referenzieren – zum Beispiel %APPDATA%\MeinProgramm als Wert für eine benutzerdefinierte Variable. Das erhöht die Portabilität von Skripten erheblich.
4. Groß-/Kleinschreibung ignorieren. Da Windows bei Variablennamen nicht zwischen Groß- und Kleinschreibung unterscheidet, sollten Sie innerhalb eines Projekts eine einheitliche Schreibweise wählen, um Verwechslungen zu vermeiden.
5. PowerShell für Automatisierungen bevorzugen. Für administrative Aufgaben auf mehreren Rechnern ist PowerShell mit ::SetEnvironmentVariable die robusteste Methode, da sie .NET-Integration bietet und sich gut in Automatisierungsskripte einbinden lässt.
6. PATH-Variable sauber halten. Mit der Zeit sammeln sich in %Path% viele Einträge an. Ungültige oder doppelte Pfade verlangsamen die Befehlsauflösung. Empfehlenswert ist das kostenlose Tool Rapid Environment Editor (reenv.exe), das alle Variablen übersichtlich darstellt, Duplikate erkennt und ungültige Pfade farblich markiert.
Unterschiede zwischen Windows 10 und Windows 11
Grundsätzlich sind die meisten Umgebungsvariablen in beiden Systemen identisch. Dennoch gibt es einige bemerkenswerte Unterschiede:
%PSModulePath% enthält unter Windows 11 einen zusätzlichen Standardpfad für PowerShell-Module, was die Modularität von Skripten verbessert.
%OneDriveConsumer% wurde mit neueren Windows-10- und Windows-11-Versionen eingeführt und ergänzt die bestehende %OneDrive%-Variable, um zwischen persönlichem OneDrive und OneDrive for Business zu unterscheiden.
%DriverData% ist seit Windows 10 Version 1803 standardmäßig enthalten und fehlt in älteren Versionen.
Außerdem hat sich der Zugang zu den Einstellungen in Windows 11 leicht verändert: Unter Windows 11 sind die Erweiterten Systemeinstellungen tiefer in „Einstellungen → System → Info“ verschachtelt, während sie in Windows 10 auch direkt über die klassische Systemsteuerung (sysdm.cpl) erreichbar sind. Beide Systeme unterstützen jedoch weiterhin den direkten Aufruf via Win + R → sysdm.cpl, was die schnellste Methode in beiden Versionen ist.
Umgebungsvariablen im Alltag: Typische Anwendungsfälle
Schnelle Navigation im Explorer: Geben Sie %APPDATA% oder %TEMP% direkt in die Adressleiste des Windows-Explorers ein und drücken Sie Enter – Windows öffnet den entsprechenden Ordner sofort. Deshalb eignet sich diese Methode besonders gut für die schnelle Bereinigung temporärer Dateien.
Skripte benutzernamenunabhängig gestalten: Anstatt C:\Users\MaxMustermann\Desktop hardzukodieren, verwenden Sie %UserProfile%\Desktop. Dadurch funktioniert das Skript auf jedem Rechner und für jeden Benutzer ohne Anpassung.
Java- und Python-Entwicklungsumgebungen einrichten: Viele Entwicklungstools wie Java (JDK), Python oder Node.js verlassen sich auf benutzerdefinierte Variablen wie JAVA_HOME oder PYTHON_HOME sowie auf Einträge in %Path%. Zudem vereinfacht eine sauber konfigurierte %Path%-Variable den Aufruf von Compiler und Interpreter aus jeder Eingabeaufforderung.
Deployment und CI/CD-Pipelines: In automatisierten Build-Umgebungen wie GitHub Actions oder Azure DevOps werden Umgebungsvariablen genutzt, um Pfade, API-Schlüssel und Konfigurationswerte sicher zu übergeben – ohne diese direkt im Quellcode zu hinterlegen.
Häufige Fragen zu Windows-Umgebungsvariablen
Wo finde ich die Umgebungsvariablen in Windows 11?
Öffnen Sie Einstellungen → System → Info → Erweiterte Systemeinstellungen → Umgebungsvariablen. Alternativ drücken Sie Win + R, geben sysdm.cpl ein und wechseln zur Registerkarte Erweitert. Dort finden Sie beide Variablengruppen – Benutzervariablen und Systemvariablen – übersichtlich getrennt.
Was ist der Unterschied zwischen Benutzer- und Systemvariablen?
Benutzervariablen gelten nur für das aktuell angemeldete Konto und können ohne Administratorrechte bearbeitet werden. Systemvariablen hingegen gelten für alle Benutzer des Computers. Änderungen an Systemvariablen erfordern deshalb erhöhte Rechte und wirken sich auf alle Konten aus.
Wie setze ich eine neue Umgebungsvariable dauerhaft per CMD?
Verwenden Sie den Befehl setx VARIABLENNAME "Wert". Für eine systemweite Variable (alle Benutzer) fügen Sie /M an: setx VARIABLENNAME "Wert" /M. Beachten Sie, dass der neue Wert erst in neu gestarteten Prozessen gilt – die aktuelle Sitzung muss neu geöffnet werden.
Warum wird %PATH% manchmal nach einem Programmupdate zu lang?
Viele Installer fügen ihren Pfad zu %PATH% hinzu, ohne veraltete Einträge zu entfernen. Zudem hat die Variable eine maximale Länge von 2047 Zeichen in CMD. Mit dem Tool Rapid Environment Editor lassen sich überflüssige oder doppelte Einträge schnell bereinigen.
Können Umgebungsvariablen das System beschädigen?
Ja – insbesondere das Löschen oder Überschreiben von %SystemRoot%, %SystemDrive% oder %Path% kann schwerwiegende Fehler verursachen. Im schlimmsten Fall startet Windows danach nicht mehr korrekt. Erstellen Sie daher vor jeder Änderung einen Systemwiederherstellungspunkt.
Wie lese ich eine Umgebungsvariable in PowerShell aus?
Nutzen Sie die Syntax $env:VARIABLENNAME – zum Beispiel $env:APPDATA. Damit gibt PowerShell den Pfad zum Roaming-Ordner aus. Für eine vollständige Liste aller Variablen verwenden Sie Get-ChildItem Env: | Sort-Object Name.
Was bedeutet die Variable %APPDATA% genau?
%APPDATA% verweist auf den Roaming-Ordner im AppData-Verzeichnis des Benutzers, typischerweise C:\Users\<Benutzername>\AppData\Roaming. Dort speichern Programme benutzerspezifische Einstellungen, die in Domänenumgebungen auf einen Server synchronisiert werden können.
Was ist der Unterschied zwischen %TEMP% und %TMP%?
Beide Variablen verweisen standardmäßig auf denselben Ordner für temporäre Dateien. %TEMP% ist die neuere, bevorzugte Variable, während %TMP% aus Kompatibilitätsgründen mit älteren Programmen erhalten bleibt. Ebenso können beide Variablen auf Benutzerebene (AppData\Local\Temp) und auf Systemebene (C:\Windows\Temp) unterschiedliche Werte haben.
Wie zeige ich alle Umgebungsvariablen auf einmal an?
In der Eingabeaufforderung genügt der Befehl set. In PowerShell verwenden Sie Get-ChildItem Env: | Sort-Object Name. Über die GUI gelangen Sie zu allen Variablen unter Einstellungen → System → Info → Erweiterte Systemeinstellungen → Umgebungsvariablen.
Funktionieren Umgebungsvariablen auch im Windows-Explorer?
Ja – geben Sie eine Variable wie %APPDATA% oder %USERPROFILE%\Downloads direkt in die Adressleiste des Explorers ein und drücken Sie Enter. Windows löst die Variable sofort auf und öffnet den entsprechenden Ordner. Das ist besonders nützlich, um schnell in versteckte Systemordner zu navigieren.
Fazit
Umgebungsvariablen sind ein unverzichtbares Werkzeug in Windows 10 und Windows 11 – für Administratoren ebenso wie für Entwickler und erfahrene Nutzer. Sie vereinfachen die Navigation, machen Skripte portabel und bilden das Fundament vieler Automatisierungslösungen.
Wer die wichtigsten Variablen kennt und empfohlene Vorgehensweisen beim Bearbeiten befolgt, arbeitet effizienter und vermeidet typische Fehlerquellen. Besonders %Path%, %AppData% und %UserProfile% gehören zum unverzichtbaren Grundwissen jedes Windows-Anwenders.
