Wie kann ich in PowerShell Umgebungsvariablen setzen und abrufen?
- Was sind Umgebungsvariablen?
- Umgebungsvariablen abrufen
- Umgebungsvariable in der aktuellen PowerShell-Sitzung setzen
- Umgebungsvariable dauerhaft setzen
- Zusammenfassung
Was sind Umgebungsvariablen?
Umgebungsvariablen sind Werte, die das Betriebssystem und Anwendungen nutzen, um bestimmte Konfigurationen oder Einstellungen zu speichern. In PowerShell können diese Variablen ausgelesen, geändert oder neu definiert werden, um das Verhalten von Programmen oder Skripten zu beeinflussen.
Umgebungsvariablen abrufen
In PowerShell werden Umgebungsvariablen über das automatische PSDrive Env: angesprochen. Um eine Umgebungsvariable abzurufen, können Sie den Namen der Variablen als Eigenschaft dieses PSDrives verwenden. Beispielsweise gibt der Befehl $Env:PATH den aktuellen Pfad zurück, der von vielen Anwendungen beim Auffinden von ausführbaren Dateien verwendet wird.
Alternativ kann man auch den Befehl Get-ChildItem Env: verwenden, um alle vorhandenen Umgebungsvariablen und deren Werte aufzulisten. Möchten Sie nur den Wert einer bestimmten Variable anzeigen, können Sie Get-Item Env:VARIABLE_NAME einsetzen.
Umgebungsvariable in der aktuellen PowerShell-Sitzung setzen
Um eine neue Umgebungsvariable anzulegen oder eine bestehende zu ändern, können Sie die Syntax $Env:VARIABLENNAME = "Wert" verwenden. Dieser Befehl setzt die Variable allerdings nur für die aktuelle PowerShell-Sitzung und alle von ihr gestarteten Prozesse. Beispiel:
$Env:MEINE_VARIABLE = "Mein Wert"Nach dem Setzen ist die Variable sofort über $Env:MEINE_VARIABLE abrufbar.
Umgebungsvariable dauerhaft setzen
Wenn Sie eine Umgebungsvariable dauerhaft setzen möchten, also auch nach Beenden der PowerShell-Sitzung erhalten bleibt, müssen Sie diese entweder systemweit oder benutzerspezifisch in der Windows-Registry speichern. PowerShell bietet dafür das Cmdlet ::SetEnvironmentVariable().
Beispiel, um eine Variable nur für den aktuellen Benutzer dauerhaft zu setzen:
::SetEnvironmentVariable("MEINE_VARIABLE", "Mein Wert", "User")Für eine systemweite Variable, die für alle Benutzer gilt, verwenden Sie:
::SetEnvironmentVariable("MEINE_VARIABLE", "Mein Wert", "Machine")Nach dem Setzen einer dauerhaften Umgebungsvariable ist es meistens erforderlich, sich ab- und wieder anzumelden oder den Computer neu zu starten, damit die Variable in allen Programmen verfügbar wird.
Zusammenfassung
Um Umgebungsvariablen in PowerShell abzurufen, wird üblicherweise die automatische Variable $Env:VARIABLE verwendet. Das temporäre Setzen einer Variablen erfolgt ebenfalls durch Zuweisung an $Env:VARIABLE, wirkt sich aber nur auf die aktuelle Sitzung und untergeordnete Prozesse aus. Für dauerhafte Änderungen ist das .NET-Objekt und seine Methode SetEnvironmentVariable notwendig, um die Werte in der Registry zu speichern.
