Wie man Umgebungsvariablen mit PowerShell setzt

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

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:

powershell Umgebungsvariablen aktualisieren - Ausgabe 1

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:

PowerShell Umgebungsvariablen aktualisieren - Ausgabe 2

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:

powershell Umgebungsvariablen aktualisieren - Ausgabe 3

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.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Verwandter Artikel - PowerShell Environment Variables