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)