Wie man Umgebungsvariablen mit PowerShell setzt
- Was sind Umgebungsvariablen
-
Setzen einer Umgebungsvariablen mit
Env:
in PowerShell -
Setzen der
[System.Environment]
.NET-Klasse in PowerShell - Aktualisieren von Umgebungsvariablen in der aktuellen PowerShell-Sitzung
- Fazit

Die Verwendung von Windows PowerShell zum Setzen, Lesen und Erstellen von Windows-Umgebungsvariablen ist einfach, sobald wir die korrekte Ausführung der Befehle kennen.
PowerShell bietet viele verschiedene Methoden, um mit Windows-Umgebungsvariablen über das $env:
PSDrive und die [System.Environment]
.NET-Klasse zu interagieren. In diesem Artikel werden das Setzen von Umgebungsvariablen und das Aktualisieren dieser in unserer aktuellen Sitzung mit PowerShell behandelt.
Was sind Umgebungsvariablen
Wie der Name schon sagt, speichern Umgebungsvariablen Informationen über die Umgebungen von Windows und Anwendungen.
Wir können auf Umgebungsvariablen über eine grafische Benutzeroberfläche wie den Windows-Explorer und einfache Texteditoren wie Notepad
, cmd.exe
und PowerShell zugreifen.
Die Verwendung von Umgebungsvariablen hilft uns, das Hard-Coding von Dateipfaden, Benutzer- oder Computernamen usw. in unseren PowerShell-Skripten oder -Modulen zu vermeiden.
Setzen einer Umgebungsvariablen mit Env:
in PowerShell
Wir können neue Umgebungsvariablen mit PowerShell unter Verwendung des New-Item
Cmdlets erstellen. Zunächst geben wir jedoch den Namen der Umgebungsvariablen im Format Env:\<EnvVarName>
für den Parameter Value
an, wie unten gezeigt.
Beispielcode:
New-Item -Path Env:\TEST -Value WIN10-DESKTOP
Wir verwenden das PowerShell-Cmdlet New-Item
, um eine Umgebungsvariable namens TEST
im Namensraum Env:\
zu erstellen oder zu aktualisieren. Indem wir -Value WIN10-DESKTOP
angeben, weisen wir dieser Variablen den Wert WIN10-DESKTOP
zu.
Diese Aktion hat Auswirkungen auf die aktuelle PowerShell-Sitzung, wodurch die Umgebungsvariable TEST
für andere Skripte und Befehle innerhalb der Sitzung zugänglich wird.
Ausgabe:
Wir können das Cmdlet Set-Item
verwenden, um eine Umgebungsvariable zu setzen oder eine neue zu erstellen, wenn sie noch nicht existiert. Zum Beispiel können wir sehen, dass wir das Cmdlet Set-Item
unten verwenden.
Wir können sowohl eine Umgebungsvariable erstellen als auch sie ändern.
Beispielcode:
Set-Item -Path Env:TEST -Value "TestValue"
Wir verwenden das PowerShell-Cmdlet Set-Item
, um den Wert einer bestehenden Umgebungsvariablen namens TEST
im Namensraum Env:\
zu ändern. Indem wir -Value "TestValue"
angeben, weisen wir der Umgebungsvariable TEST
den String "TestValue"
zu.
Diese Aktion hat direkte Auswirkungen auf die aktuelle PowerShell-Sitzung und aktualisiert den Wert von TEST
zur Verwendung durch andere Skripte und Befehle innerhalb der Sitzung.
Ausgabe:
Setzen der [System.Environment]
.NET-Klasse in PowerShell
Die [System.Environment]
wird einige verschiedene .NET-statische Klassenmethoden verwenden. Wir müssen nicht verstehen, was eine statische Methode ist.
Wir müssen nur verstehen, wie man eine der Techniken, die wir gleich lernen werden, verwendet und wir müssen zuerst die Klasse ([System.Environment]
) referenzieren, gefolgt von zwei Doppelpunkten (::
), gefolgt von der Methode.
Um die Umgebungsvariable mithilfe der angegebenen .NET-Klasse festzulegen, verwenden Sie die Funktion SetEnvironmentVariable()
, um den Wert einer bestehenden Umgebungsvariablen für den gegebenen Geltungsbereich festzulegen oder eine neue Umgebungsvariable zu erstellen, wenn sie noch nicht existiert.
Beim Setzen von Variablen im Prozessgeltungsbereich stellen wir fest, dass der Prozessgeltungsbereich flüchtig ist und nur in der aktuellen Sitzung existiert, während Änderungen am Benutzer- und Maschinenkontext dauerhaft sind.
Beispielcode:
[System.Environment]::SetEnvironmentVariable('TestVariable', 'TestValue', 'User')
Wir verwenden die .NET-Methode [System.Environment]::SetEnvironmentVariable()
, um eine Umgebungsvariable namens TestVariable
mit dem Wert 'TestValue'
im benutzerspezifischen Umfeld festzulegen. Indem wir 'User'
als dritten Parameter angeben, stellen wir sicher, dass diese Variable im Kontext der Benutzerumgebung festgelegt wird.
Diese Aktion hat Auswirkungen auf die Umgebungsvariablen für den aktuellen Benutzer, wodurch andere Skripte und Anwendungen auf die TestVariable
mit ihrem zugewiesenen Wert zugreifen können.
Aktualisieren von Umgebungsvariablen in der aktuellen PowerShell-Sitzung
Um unseren neuen Satz von Umgebungsvariablen in unserer PowerShell-Sitzung zu verwenden, rufen wir die Umgebungsvariablen des Benutzerprofils und der Maschine über die .NET-Klasse ab und weisen sie der PowerShell-Umgebungsvariablen zu.
Da Umgebungsvariablen auch als PowerShell-Variablen angesehen werden, können wir Werte direkter und einfacher zuweisen.
Beispielcode:
$env:PATH = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")
Wir aktualisieren die Umgebungsvariable $env:PATH
, indem wir die Werte der System- und Benutzer-Path
-Umgebungsvariablen, die wir mit [System.Environment]::GetEnvironmentVariable()
abgerufen haben, zusammenfügen. Zuerst rufen wir die System-Path
-Variable mit dem Parameter "Machine"
ab und hänge dann die Benutzer-Path
-Variable an, die wir mit dem Parameter "User"
abgerufen haben.
Durch das Kombinieren dieser Werte mit einem Semikolon als Trennzeichen stellen wir sicher, dass beide Pfadsätze in das aktualisierte $env:PATH
einbezogen werden.
Ausgabe:
Fazit
In diesem Artikel haben wir verschiedene Methoden zum Verwalten von Umgebungsvariablen in PowerShell untersucht, wobei wir uns auf das Setzen und Aktualisieren dieser mit verschiedenen Techniken konzentriert haben. Wir begannen mit der Demonstration, wie man Umgebungsvariablen mithilfe von PowerShell-Cmdlets wie New-Item
und Set-Item
erstellt oder ändert und boten klare Beispiele und Erklärungen für jeden Schritt.
Als nächstes haben wir uns mit der Verwendung der [System.Environment]
.NET-Klasse beschäftigt, um Umgebungsvariablen zu manipulieren. Durch die Methode SetEnvironmentVariable()
haben wir gelernt, wie man Variablen mit bestimmten Geltungsbereichen festlegt und die Auswirkungen jedes Geltungsbereichs auf die Persistenz der Variablen versteht.
Zuletzt haben wir die Bedeutung der Aktualisierung von Umgebungsvariablen innerhalb der aktuellen PowerShell-Sitzung behandelt und die Verwendung von [System.Environment]::GetEnvironmentVariable()
zum dynamischen Aktualisieren von Variablen hervorgehoben.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn