Share via


about_Profiles

Letzte Aktualisierung: August 2012

Betrifft: Windows PowerShell 2.0, Windows PowerShell 3.0

THEMA

about_Profiles

KURZE BESCHREIBUNG

Beschreibt das Erstellenund Verwenden eines Windows PowerShell-Profils.

LANGE BESCHREIBUNG

Sie erstellen ein Windows PowerShell-Profil, um Ihre Umgebung anzupassen und um sitzungsspezifische Elemente zu jeder von Ihnen gestarteten Windows PowerShell-Sitzung hinzuzufügen.

Ein Windows PowerShell-Profil ist ein Skript, das beim Start von Windows PowerShell ausgeführt wird. Sie können das Profil können als Anmeldeskript zum Anpassen der Umgebung verwenden. Sie können Befehle, Aliase, Funktionen, Variablen, Snap-ins, Module und Windows PowerShell-Laufwerke hinzufügen. Außerdem können Sie andere sitzungsspezifische Elemente zu Ihrem Profil hinzufügen, sodass diese in jeder Sitzung zur Verfügung stehen, ohne sie importieren oder neu erstellen zu müssen.

Windows PowerShell unterstützt mehrere Profile für Benutzer und Host-Programme. Allerdings werden die Profile nicht für Sie erstellt. In diesem Thema werden die Profile beschrieben, und es wird erläutert, wie Sie Profile auf dem Ihrem Computer erstellen und verwalten können.

Es erklärt, wie der NoProfile-Parameter der Windows PowerShell-Konsole (PowerShell.exe) zu verwenden ist, um Windows PowerShell ohne Profile zu starten. Und es erläutert die Auswirkung der Windows PowerShell-Ausführungsrichtlinie auf Profile.

DIE PROFILDATEIEN

Windows PowerShell unterstützt mehrere Profildateien. Darüber hinaus können Windows PowerShell-Host-Programme eigene host-spezifische Profile unterstützen.

Zum Beispiel unterstützt die Windows PowerShell-Konsole die folgenden grundlegenden Profildateien. Die Profile sind in ihrer Rangfolge aufgeführt. Das erste Profil weist den höchsten Rang auf.

        Description                Path
        -----------                ----
        Current User, Current Host $Home\[My ]Documents\WindowsPowerShell\Profile.ps1
        Current User, All Hosts    $Home\[My ]Documents\Profile.ps1
        All Users, Current Host    $PsHome\Microsoft.PowerShell_profile.ps1
        All Users, All Hosts       $PsHome\Profile.ps1

Die Profilpfade umfassen die folgenden Variablen:

– Die $PsHome-Variable, in der das Installationsverzeichnis für Windows PowerShell gespeichert ist.

– Die $Home Variable, in der Home-Verzeichnis des aktuellen Benutzers gespeichert ist.

Darüber hinaus können andere Programme, die Windows PowerShell hosten, eigene Profile unterstützen. Beispielsweise unterstützt Windows PowerShell Integrated Scripting Environment (ISE) die folgenden host-spezifischen Profile.

        Description                Path
        -----------                -----
        Current user, Current Host $Home\[My ]Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
        All users, Current Host    $PsHome\Microsoft.PowerShellISE_profile.ps1

Innerhalb der Windows PowerShell-Hilfe ist das Profil „CurrentUser, Current Host“ das Profil, das am häufigsten als „Ihr Windows PowerShell-Profil“ bezeichnet wird.

DIE $PROFILE-VARIABLE

Die automatischen Variable „$Profile“ speichert die Pfade zu den Windows PowerShell-Profilen, die in der aktuellen Sitzung verfügbar sind.

Um einen Profilpfad anzuzeigen, müssen Sie den Wert der $Profile-Variablen anzeigen. Sie können die $Profile-Variable auch in einem Befehl verwenden, um einen Pfad zu repräsentieren.

Die $Profile-Variable speichert den Pfad zum Profil „Current User, Current Host“. Der anderen Profile werden in den Hinweiseigenschaften der $Profile-Variablen gespeichert.

So weist die $Profile-Variable z. B. die folgenden Werte in der Windows PowerShell-Konsole auf.

        Name                               Description                
        -----------                        -----------
        $Profile                           Current User,Current Host  
        $Profile.CurrentUserCurrentHost    Current User,Current Host  
        $Profile.CurrentUserAllHosts       Current User,All Hosts     
        $Profile.AllUsersCurrentHost       All Users, Current Host    
        $Profile.AllUsersAllHosts          All Users, All Hosts       
 

Da sich die Werte der $Profile-Variablen für jeden Benutzer und in jeder Host-Anwendung ändern, müssen Sie sicherstellen, dass Sie die Werte der Profilvariablen in jeder von Ihnen verwendeten Windows PowerShell-Host-Anwendung anzeigen.

Um die aktuellen Werte der $Profile-Variablen anzuzeigen, geben Sie Folgendes ein:

        $profile | get-member -type noteproperty

Sie können die $Profile-Variable in vielen Befehlen verwenden. Beispielsweise öffnet der folgende Befehl das Profil „Current User, Current Host“ in Notepad:

notepad $profile 

Der folgende Befehl ermittelt, ob auf dem lokalen Computer bereits ein Profil „All Users, All Hosts“ erstellt wurde:

test-path $profile.AllUsersAllHosts

ERSTELLEN EINES PROFILS

Um ein Windows PowerShell-Profil zu erstellen, verwenden Sie das folgende Befehlsformat:

        if (!(test-path <profile-name>)) 
           {new-item -type file -path <profile-name> -force}

Um z. B. ein Profil für den aktuellen Benutzer in der aktuellen Windows PowerShell-Host-Anwendung zu erstellen, verwenden Sie den folgenden Befehl:

        if (!(test-path $profile)) 
           {new-item -type file -path $profile -force}

In diesem Befehl verhindert die If-Anweisung, dass Sie ein vorhandenes Profil überschreiben. Ersetzen Sie den Wert des <profile-path>-Platzhalters durch den Pfad zu der Profildatei, die Sie erstellen möchten.

Hinweis: Starten Sie zum Erstellen von Profilen für „Alle Benutzer“ in Windows Vista und höheren Versionen von Windows Windows PowerShell mit der Option „Als Administrator ausführen“.

BEARBEITEN EIN PROFILS

Sie können jedes Windows PowerShell-Profil in einem Texteditor öffnen, wie z. B. Notepad.

Um das Profil des aktuellen Benutzers in der aktuellen Windows PowerShell-Host-Anwendung in Notepad zu öffnen, geben Sie Folgendes ein:

        notepad $profile

Um andere Profile zu öffnen, geben Sie den Namen des Profils an. Geben Sie zum Beispiel z. B. zum Öffnen des Profils für alle Benutzer aller Host-Anwendungen Folgendes ein:

        notepad $profile.AllUsersAllHosts

Um die Änderungen zu übernehmen, speichern Sie die Profildatei, und starten Sie dann Windows PowerShell neu.

AUSWÄHLEN EIN PROFILS

Wenn Sie mehrere Host-Anwendungen verwenden, fügen Sie die Elemente, die Sie in allen Host-Anwendungen verwenden, zu Ihrem $Profile.CurrentUserAllHosts-Profil hinzu. Fügen Sie die Elemente, die für eine Host-Anwendung spezifisch sind, z. B. einen Befehl, der die Hintergrundfarbe für eine Host-Anwendung festlegt, zu einem Profil hinzu, das spezifisch für diese Host-Anwendung ist.

Wenn Sie ein Administrator sind, der Windows PowerShell für viele Benutzer anpasst, sollten Sie folgende Richtlinien befolgen:

– Speichern Sie die gemeinsamen Elemente im $profile.AllUsersAllHosts-Profil.

– Speichern Sie Elemente, die für eine Host-Anwendung spezifisch sind, in $profile.AllUsersCurrentHost-Profilen, die für die Host-Anwendung spezifisch sind.

– Speichern Sie Elemente für bestimmte Benutzer in der benutzerspezifischen Profilen.

Achten Sie darauf, dass Sie die Dokumentation der Host-Anwendung auf spezielle Implementierungen der Windows PowerShellProfile überprüfen.

VERWENDEN EINES PROFILS

Viele der Elemente, die Sie in Windows PowerShell erstellen, und die meisten der von Ihnen ausgeführten Befehle wirken sich nur auf die aktuelle Sitzung aus. Wenn Sie die Sitzung beenden, werden die Elemente gelöscht.

Die sitzungsspezifischen Befehle und Elemente enthalten Variablen, Voreinstellungsvariablen, Aliase, Funktionen, Befehle (mit Ausnahme von Set-ExecutionPolicy) und Windows PowerShell-Snap-Ins, die Sie zur Sitzung hinzufügen.

Um diese Elemente zu speichern und sie in allen zukünftigen Sitzungen verfügbar zu machen, fügen Sie diese zu einem Windows PowerShell-Profil hinzu.

Eine andere häufige Verwendung für Profile ist die Speicherung häufig verwendeter Funktionen, Aliase und Variablen. Wenn Sie die Elemente in einem Profil speichern, können Sie diese in jeder entsprechenden Sitzung verwenden, ohne sie neu zu erstellen.

STARTEN EINES PROFILS

Wenn Sie die Profildatei öffnen, ist sie leer. Allerdings können Sie sie mit Variablen, Aliasen und Befehlen füllen, die Sie häufig verwenden.

Hier sind einige Vorschläge, die Ihnen den Einstieg erleichtern sollen.

– Fügen Sie Befehle hinzu, die das Öffnen Ihres Profils vereinfachen. Dies ist besonders nützlich, wenn Sie ein anderes Profil als das Profil „Current User, Current Host“ verwenden. Fügen Sie beispielsweise den folgenden Befehl hinzu:

           function pro {notepad $profile.CurrentUserAllHosts}

– Fügen Sie eine Funktion hinzu, mit der die Windows PowerShell-Hilfe in einer kompilierten HTML-Hilfedatei (.chm) geöffnet wird.

           function Get-CHM
            {
               (invoke-item $env:windir\help\mui\0409\WindowsPowerShellHelp.chm)
            }

Mit dieser Funktion wird die englische Version der CHM-Datei geöffnet. Allerdings können Sie den Sprachcode (0409) so ersetzen, dass andere Versionen der CHM-Datei geöffnet werden.

– Fügen Sie eine Funktion hinzu, die die Aliase für jedes Cmdlet auflistet.

           function Get-CmdletAlias ($cmdletname)
           {
              get-alias | Where {$_.definition -like "*$cmdletname*"} | ft Definition, Name -auto
           }

– Fügen Sie einen Add-PsSnapin-Befehl hinzu, um jedes von Ihnen verwendete Windows PowerShell-Snap-In hinzuzufügen.

– Passen Sie Ihre Konsole an.

           function Color-Console 
           {
        $host.ui.rawui.backgroundcolor = "white"
        $host.ui.rawui.foregroundcolor = "black"
                $hosttime = (dir $pshome\PowerShell.exe).creationtime
                $Host.UI.RawUI.WindowTitle = "Windows PowerShell $hostversion ($hosttime)"
                clear-host
           }
           Color-console

– Fügen Sie eine benutzerdefinierte Windows PowerShell-Befehlszeile hinzu, den den Computernamen und den aktuellen Pfad enthält.

           function prompt 
           {
              $env:computername + "\" + (get-location) + "> "
           }

Weitere Informationen zur Windows PowerShell-Befehlszeile finden Sie unter „about_Prompts“.

DER NOPROFILE-PARAMETER

Um Windows PowerShell ohne Profile zu starten, verwenden Sie den NoProfile-Parameter von PowerShell.exe, dem Programm, mit dem Windows PowerShell gestartet wird.

Öffnen Sie zunächst ein Programm, mit dem Windows PowerShell gestartet werden kann, wie z. B. Cmd.exe oder Windows PowerShell selbst. Sie können auch das Dialogfeld „Ausführen“ in Windows verwenden.

Geben Sie Folgendes ein:

PowerShell -noprofile

Um eine vollständige Liste der Parameter von PowerShell.exe abzurufen, geben Sie Folgendes ein:

PowerShell -?

PROFILE UND AUSFÜHRUNGSRICHTLINIE

Die Windows PowerShell-Ausführungsrichtlinie bestimmt unter anderem, ob Sie Skripts ausführen und Konfigurationsdateien laden können, zu denen die Profile zählen. Die Ausführungsrichtlinie „Restricted“ ist die Standardvorgabe. Sie verhindert die Ausführung aller Skripts, einschließlich der Profile. Wenn Sie die Richtlinie „Restricted“ verwenden, wird das Profil nicht ausgeführt, und sein Inhalt wird nicht angewendet.

Durch einen Set-ExecutionPolicy-Befehl wird Ihre Ausführungsrichtlinie festgelegt und geändert. Es gibt einige wenige Befehle, die für alle Windows PowerShell-Sitzungen gelten, da ihr Wert in der Registrierung gespeichert ist. Sie müssen den Wert nicht festlegen, wenn Sie die Konsole öffnen, und Sie müssen keinen Set-ExecutionPolicy-Befehl in Ihrem Profil speichern.

PROFILE UND REMOTE-SITZUNGEN

Windows PowerShell-Profile werden nicht automatisch in Remote-Sitzungen ausgeführt. Daher sind die von Profilen hinzugefügten Befehle in der Remote-Sitzung nicht vorhanden. Darüber hinaus wird die automatische Variable „$profile“ in Remote-Sitzungen nicht aufgefüllt.

Um ein Profil in einer Sitzung auszuführen, verwenden Sie das Invoke-Command-Cmdlet.

Der folgende Befehl führt beispielsweise das CurrentUserCurrentHost-Profil auf dem lokalen Computer in der Sitzung in $s aus.

        invoke-command -session $s -filepath $profile

Der folgende Befehl führt das CurrentUserCurrentHost-Profil des Remote-Computers in der Sitzung in $s aus. Da die $profile-Variable nicht aufgefüllt ist, verwendet der Befehl den expliziten Pfad zu dem Profil.

        invoke-command -session $s {invoke-command "$home\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}

Nach der Ausführung dieses Befehls sind die Befehle, die vom Profil zur Sitzung hinzugefügt werden, in $s verfügbar.

SIEHE AUCH

about_Automatic_Variables

about_Functions

about_Prompts

about_Execution_Policies

about_Signing

about_Remote

Set-ExecutionPolicy