THEMA
about_Environment_Variables
KURZBESCHREIBUNG
Beschreibt den Zugriff auf Windows-Umgebungsvariablen in Windows
PowerShell.
DETAILBESCHREIBUNG
Umgebungsvariablen enthalten Informationen zur Betriebssystemumge-
bung. Dazu gehören Informationen wie der Pfad des Betriebssystems,
die Anzahl der vom Betriebssystem verwendeten Prozessoren sowie
der Speicherort der temporären Ordner.
In den Umgebungsvariablen werden Daten für das Betriebssystem und
andere Programme gespeichert. Beispielsweise enthält die
Umgebungsvariable WINDIR den Speicherort des Windows-Installations-
verzeichnisses. Der Wert dieser Variablen kann von Programmen
abgefragt werden, um den Speicherort der Windows-Betriebssystemda-
teien zu bestimmen.
Mit Windows PowerShell können Sie Windows-Umgebungsvariablen
anzeigen und ändern, einschließlich der in der Registrierung und
der für bestimmte Sitzungen festgelegten Variablen. Der Windows
PowerShell-Umgebungsanbieter vereinfacht diesen Vorgang durch
leichteres Anzeigen und Ändern der Umgebungsvariablen.
Im Gegensatz zu anderen Variablentypen in Windows PowerShell
werden Umgebungsvariablen und deren Werte von untergeordneten
Sitzungen geerbt, z. B. lokalen Hintergrundaufträgen und
Sitzungen, in denen die Modulelemente ausgeführt werden. Dadurch
sind Umgebungsvariablen zum Speichern von Werten gut geeignet,
die in übergeordneten und untergeordneten Sitzungen benötigt werden.
Windows PowerShell-Umgebungsanbieter
Mit dem Windows PowerShell-Umgebungsanbieter können Sie auf
Windows-Umgebungsvariablen in Windows PowerShell auf einem
Windows PowerShell-Laufwerk (dem Laufwerk "Env:") zugreifen.
Dieses Laufwerk ähnelt stark einem Dateisystemlaufwerk. Wenn
Sie zum Laufwerk "Env:" wechseln möchten, geben Sie Folgendes ein:
set-location env:
Wenn Sie anschließend den Inhalt des Laufwerks "Env:" anzeigen
möchten, geben Sie Folgendes ein:
get-childitem
Sie können die Umgebungsvariablen auf dem Laufwerk "Env:" auf
jedem anderen Windows PowerShell-Laufwerk anzeigen, und Sie
können auf das Laufwerk "Env:" zugreifen, um die Umgebungsvaria-
blen anzuzeigen und zu ändern.
Umgebungsvariablenobjekte
Jede Umgebungsvariable in Windows PowerShell wird durch ein
Objekt dargestellt, das eine Instanz der System.Collections.
DictionaryEntry-Klasse ist.
In jedem DictionaryEntry-Objekt bildet der Name der
Umgebungsvariable den Wörterbuchschlüssel. Der Wert der
Variablen bildet den Wörterbuchwert.
Zum Anzeigen einer Umgebungsvariable in Windows PowerShell
rufen Sie ein Objekt auf, das die Variable darstellt, und
zeigen Sie dann die Werte der Objekteigenschaften an. Sie
können die Umgebungsvariablen in Windows PowerShell ändern,
indem Sie die mit dem DictionaryEntry-Objekt verbundenen
Methoden verwenden.
Mit dem Cmdlet "Get-Member" können Sie die Eigenschaften und
Methoden des Objekts anzeigen, das eine Umgebungsvariable in
Windows PowerShell darstellt.
Beispielsweise können Sie mit folgendem Befehl die Methoden und
Eigenschaften aller Objekte auf dem Laufwerk "Env:" anzeigen:
get-item -path env:* | get-member
Anzeigen von Umgebungsvariablen
Sie können die Werte von Umgebungsvariablen mit den Cmdlets
anzeigen und ändern, die das Substantiv "Item" enthalten
(Item-Cmdlets). Da Umgebungsvariablen nicht über untergeordnete
Elemente verfügen, ist die Ausgabe von "Get-Item" und
"Get-ChildItem" identisch.
Geben Sie beim Verweisen auf eine Umgebungsvariable den
Laufwerknamen "Env:", gefolgt vom Namen der Variablen, ein. Um
beispielsweise den Wert der Umgebungsvariablen COMPUTERNAME
anzuzeigen, geben Sie Folgendes ein:
get-childitem env:computername
Zum Anzeigen der Werte für alle Umgebungsvariablen geben Sie
Folgendes ein:
get-childitem env:
Windows PowerShell zeigt die Umgebungsvariablen standardmäßig
in der Reihenfolge des Abrufs an. Sie können die Liste der
Umgebungsvariablen nach dem Variablennamen sortieren, indem Sie
die Ausgabe des Befehls "Get-ChildItem" über die Pipeline an
das Cmdlet "Sort-Object" übergeben. Geben Sie beispielsweise
auf einem beliebigen Windows PowerShell-Laufwerk Folgendes ein:
get-childitem env: | sort name
Sie können auf das Laufwerk "Env:" auch über das Cmdlet
"Set-Location" zugreifen:
set-location env:
Wenn Sie sich auf dem Laufwerk "Env:" befinden, können Sie den
Laufwerknamen im Pfad auslassen. So können Sie alle
Umgebungsvariablen anzeigen, indem Sie Folgendes eingeben:
get-childitem
Zum Anzeigen des Werts für die Variable COMPUTERNAME auf dem
Laufwerk "Env:" geben Sie Folgendes ein:
get-childitem computername
Sie können Werte von Umgebungsvariablen auch ohne Cmdlets
anzeigen und ändern, indem Sie den Ausdrucksparser in Windows
PowerShell verwenden. Der Wert einer Umgebungsvariablen wird
mit folgender Syntax angezeigt:
$env:<Variablenname>
Um beispielsweise den Wert der Umgebungsvariablen WINDIR
anzuzeigen, geben Sie an der Eingabeaufforderung von Windows
PowerShell den folgenden Befehl ein:
$env:windir
In dieser Syntax gibt das Dollarzeichen ($) eine Variable und
der Laufwerkname eine Umgebungsvariable an.
Ändern von Umgebungsvariablen
Eine permanente Änderung an einer Umgebungsvariablen nehmen Sie
über die Systemsteuerungsoption "System" (Registerkarte
"Erweitert" oder Element "Erweiterte Systemeinstellungen") vor,
sodass die Änderung in der Registrierung gespeichert wird.
Wenn Sie Umgebungsvariablen in Windows PowerShell ändern, wirkt
sich die Änderung nur auf die aktuelle Sitzung aus. Dieses
Verhalten ähnelt dem des Befehls "Set" in Windows-basierten und
dem Befehl "Setenv" in UNIX-basierten Umgebungen.
Sie müssen außerdem über die Berechtigung zum Ändern der Werte
dieser Variablen verfügen. Wenn Sie ohne ausreichende
Berechtigungen versuchen, einen Wert zu ändern, verursacht der
Befehl einen Fehler, und es wird eine Fehlermeldung angezeigt.
Mit folgender Syntax können Sie die Werte von Variablen ohne
Cmdlets ändern:
$env:<Variablenname> = "<Neuer-Wert>"
Fügen Sie beispielsweise mit der folgenden Syntax ";c:\temp" an
den Wert der Umgebungsvariablen "Path" an:
$env:path = $env:path + ";c:\temp"
Sie können die Werte von Umgebungsvariablen auch mit den
Item-Cmdlets, z. B. Set-Item, Remove-Item und Copy-Item,
ändern. Wenn Sie beispielsweise mit dem Cmdlet "Set-Item" die
Zeichenfolge ";c:\temp" an den Wert der Umgebungsvariablen
"Path" anfügen möchten, verwenden Sie die folgende Syntax:
set-item -path env:path -value ($env:path + ";c:\temp")
Der Wert wird in diesem Befehl in Klammern eingeschlossen,
damit er als Einheit interpretiert wird.
Speichern von Änderungen in Umgebungsvariablen
Zum Erstellen oder Ändern des Werts für eine Umgebungsvariable
in allen Windows PowerShell-Sitzungen fügen Sie die Änderung
dem Windows PowerShell-Profil hinzu.
Wenn Sie zum Beispiel das Verzeichnis "C:\Temp" der
Path-Umgebungsvariable in allen Windows PowerShell-Sitzungen
hinzufügen möchten, fügen Sie dem Windows PowerShell-Profil den
folgenden Befehl hinzu.
$env:path = $env:path + ";c:\temp"
Wenn Sie den Befehl einem vorhandenen Profil, z. B.
CurrentUser,AllHosts, hinzufügen möchten, geben Sie Folgendes ein:
add-content -path $profile.CurrentUserAllHosts -value '$env:path = $env:path + ";c:\temp"'
Umgebungsvariablen zum Speichern von Einstellungen
Windows PowerShell-Features können Benutzereinstellungen in
Umgebungsvariablen speichern. Diese Variablen werden wie
Einstellungsvariablen verwendet, doch werden sie von
untergeordneten Sitzungen der Sitzungen geerbt, in denen sie
erstellt werden. Weitere Informationen zu Einstellungsvariablen
finden Sie unter "about_preference_variables".
In u. a. den folgenden Umgebungsvariablen können Einstellungen
gespeichert werden:
PSModulePath
Speichert die Pfade zu den Standardmodulverzeichnissen.
Wenn Sie keinen vollständigen Pfad zu einem Modul
angeben, sucht Windows PowerShell in den angegebenen
Verzeichnissen nach Modulen.
$env:PSModulePath besitzt den folgenden Standardwert:
$home\Documents\WindowsPowerShell\Modules; $pshome\Modules
Windows PowerShell legt den Wert von "$pshome\Modules" in
der Registrierung fest.
Bei jedem Start von Windows PowerShell wird der Wert von
"$home\Documents\WindowsPowerShell\Modules" festgelegt.
Zudem fügen Setupprogramme, die Module in anderen
Verzeichnissen installieren, z. B. im Verzeichnis
"Programme", ihre Speicherorte an den Wert von
PSModulePath an.
Zum Ändern der Standardmodulverzeichnisse ändern Sie den
Wert der Umgebungsvariablen "PSModulePath".
Wenn Sie dem Wert der Umgebungsvariable "PSModulePath"
zum Beispiel das Verzeichnis "C:\ps-test\Modules"
hinzufügen möchten, geben Sie Folgendes ein:
$env:PSModulePath = $env:PSModulePath + ";c:\ps-test\Modules"
Mit dem Semikolon (;) im Befehl wird der neue Pfad von
dem Pfad getrennt, der diesem in der Liste vorausgeht.
Die Änderungen wirken sich auf nur die aktuelle Sitzung
aus, sofern Sie keinen Befehl hinzufügen, mit dem der
Wert in Ihrem Profil geändert wird, und Sie den Wert der
Umgebungsvariablen "PSModulePath" in der Registrierung
nicht über die Option "System" der Systemsteuerung ändern.
Weitere Informationen finden Sie unter "about_Modules".
SIEHE AUCH
Umgebung (Anbieter)