Sie sind auf Seite 1von 7

THEMA

about_Profiles
KURZBESCHREIBUNG
Beschreibt, wie ein Windows PowerShell-Profil erstellt und
verwendet wird.
DETAILBESCHREIBUNG
Sie knnen ein Windows PowerShell-Profil erstellen, um die
Umgebung anzupassen und den Windows PowerShell-Sitzungen, die Sie
starten, sitzungsspezifische Elemente hinzuzufgen.
Ein Windows PowerShell-Profil ist ein Skript, das ausgefhrt
wird, wenn Windows PowerShell gestartet wird. Sie knnen das
Profil als Anmeldeskript verwenden, um die Umgebung anzupassen.
Sie knnen Befehle, Aliase, Funktionen, Variablen, Snap-Ins,
Module und Windows PowerShell-Laufwerke hinzufgen. Sie knnen
dem Profil weitere sitzungsspezifische Elemente hinzufgen, damit
diese in jeder Sitzung zur Verfgung stehen, ohne sie zuvor
importieren oder erstellen zu mssen.
Windows PowerShell untersttzt mehrere Profile fr Benutzer und
Hostprogramme.
Diese werden jedoch nicht fr den Benutzer erstellt. In diesem
Thema werden die Profile beschrieben, und es wird beschrieben,
wie Profile auf dem Computer erstellt und verwaltet werden.
Es wird erlutert, wie der NoProfile-Parameter der Windows
PowerShell-Konsole ("PowerShell.exe") verwendet wird, um Windows
PowerShell ohne Profile zu starten.
Auerdem wird erlutert, welche Auswirkungen die Windows
PowerShell-Ausfhrungsrichtlinie auf Profile hat.
PROFILDATEIEN
Windows PowerShell untersttzt mehrere Profildateien. Windows
PowerShell-Hostprogramme knnen auerdem eigene hostspezifische
Profile untersttzen.
Die Windows PowerShell-Konsole untersttzt beispielsweise
folgende grundlegende Profildateien. Die Profile werden in der
Rangfolge aufgefhrt. Das erste Profil stellt die hchste
Rangfolge dar.
Beschreibung Pfad
----------- ----
Aktueller Benutzer, aktueller Host $Home\[Eigene]Dateien\WindowsPowerShe
ll\Profile.ps1
Aktueller Benutzer, alle Hosts $Home\[Eigene]Dateien\Profile.ps1
Alle Benutzer, aktueller Host $PsHome\Microsoft.PowerShell_profile.
ps1
Alle Benutzer, alle Hosts $PsHome\Profile.ps1
Die Profilpfade enthalten folgende Variablen:
- Die Variable "$PsHome", in der das Installationsverzeichnis
fr Windows PowerShell gespeichert wird.
- Die Variable "$Home", in der das Stammverzeichnis des
aktuellen Benutzers gespeichert wird.
Auerdem knnen andere Programme, die Windows PowerShell hosten,
eigene Profile untersttzen. Beispielsweise untersttzt die
Windows PowerShell Integrated Scripting Environment [ISE])
folgende hostspezifische Profile:
Beschreibung Pfad
----------- -----
Aktueller Benutzer, $Home\[Eigene ]Dateien\WindowsPowerShell
\Microsoft.PowerShellISE_profile.ps1
aktueller Host
Alle Benutzer, aktueller Host $PsHome\Microsoft.PowerShellISE_profile.
ps1
Das Profil "Aktueller Benutzer, aktueller Host" wird in der Hilfe
von Windows PowerShell hufig auch als "das Windows
PowerShell-Profil" bezeichnet.
DIE VARIABLE "$PROFILE"
In der Variablen "$Profile" werden die Pfade fr die Windows
PowerShell-Profile gespeichert, die in der aktuellen Sitzung
verfgbar sind.
Um einen Profilpfad anzuzeigen, zeigen Sie den Wert der Variablen
"$Profile" an. Sie knnen die Variable "$Profile" auch in einem
Befehl verwenden, um einen Pfad darzustellen.
In der Variablen "$Profile" wird der Pfad fr das Profil
"Aktueller Benutzer, Aktueller Host" gespeichert. Die anderen
Profile werden in den Notizeigenschaften der Variablen "$profile"
gespeichert.

Beispielsweise weist die Variable "$Profile" folgende Werte in
der Windows PowerShell-Konsole auf:
Name Beschreibung
----------- -----------
$Profile Aktueller Benutzer, aktueller Host
$Profile.CurrentUserCurrentHost Aktueller Benutzer, aktueller Host
$Profile.CurrentUserAllHosts Aktueller Benutzer, alle Hosts
$Profile.AllUsersCurrentHost Alle Benutzer, aktueller Host
$Profile.AllUsersAllHosts Alle Benutzer, alle Hosts

Vergewissern Sie sich, dass die Werte der Profilvariablen in der
jeweiligen Windows PowerShell-Hostanwendung angezeigt werden, die
Sie verwenden, da sich die Werte der Variablen "$Profile" fr
jeden Benutzer und in jeder Hostanwendung ndern.
Geben Sie Folgendes ein, um die aktuellen Werte der Variablen
"$Profile" anzuzeigen:
$profile | get-member -type noteproperty

Die Variable "$Profile" kann in zahlreichen Befehlen verwendet
werden. Beispielsweise wird mit folgendem Befehl das Profil
"Aktueller Benutzer, Aktueller Host" in Editor geffnet:
notepad $profile
Mit dem folgenden Befehl wird bestimmt, ob das Profil "Alle
Benutzer, Alle Hosts" auf dem lokalen Computer erstellt wurde:
test-path $profile.AllUsersAllHosts
SO ERSTELLEN SIE EIN PROFIL
Um ein Windows PowerShell-Profil zu erstellen, verwenden Sie das
folgende Befehlsformat:
if (!(test-path <Profilname>))
{new-item -type file -path <Profilname> -force}
Um ein Profil fr den aktuellen Benutzer in der aktuellen Windows
PowerShell-Hostanwendung zu erstellen, verwenden Sie
beispielsweise folgenden Befehl:
if (!(test-path $profile))
{new-item -type file -path $profile -force}
In diesem Befehl verhindert die If-Anweisung, dass ein
vorhandener Platzhalter mit dem Pfad berschrieben wird. Ersetzen
Sie den Wert des Platzhalters <profile-path> durch den Pfad zu
dem Profil, das Sie erstellen mchten.
Hinweis: Starten Sie Windows PowerShell mit der Option "Als
Administrator ausfhren", wenn Sie Profile fr "Alle Benutzer"
unter Windows Vista und hheren Versionen von Windows erstellen
mchten.
SO BEARBEITEN SIE EIN PROFIL
Windows PowerShell-Profile knnen in einem Text-Editor wie Editor
geffnet werden.
Um das Profil des aktuellen Benutzers in der aktuellen Windows
PowerShell-Hostanwendung in Editor zu ffnen, geben Sie Folgendes ein:
notepad $profile
Wenn Sie andere Profile ffnen mchten, geben Sie den Profilnamen
an. Geben Sie beispielsweise Folgendes ein, um das Profil fr
alle Benutzer aller Hostanwendungen zu ffnen:
notepad $profile.AllUsersAllHosts
Um die nderungen zu bernehmen, speichern Sie die Profildatei,
und starten Sie dann Windows PowerShell neu.

SO WHLEN SIE EIN PROFIL AUS
Fgen Sie dem $Profile.CurrentUserAllHosts-Profil die Elemente
hinzu, die in allen Hostanwendungen verwendet werden, wenn Sie
mehrere Hostanwendungen verwenden.
Fgen Sie die Elemente, die fr eine Hostanwendung spezifisch
sind, beispielsweise ein Befehl, mit dem die Hintergrundfarbe fr
eine Hostanwendung festgelegt wird, einem Profil hinzu, das fr
diese Hostanwendung spezifisch ist.
Administratoren, die Windows PowerShell fr viele Benutzer
anpassen, sollten folgende Richtlinien beachten:
-- Speichern Sie die allgemeinen Elemente im $profile.AllUsers
AllHosts-Profil.
-- Speichern Sie Elemente, die fr eine Hostanwendung
spezifisch sind, in $profile.AllUsersCurrentHost-Profilen,
die fr die Hostanwendung spezifisch sind.
-- Speichern Sie Elemente fr bestimmte Benutzer in den
benutzerspezifischen Profilen.
berprfen Sie die Dokumentation der Hostanwendung auf besondere
Implementierungen von Windows PowerShell-Profilen.
SO VERWENDEN SIE EIN PROFIL
Viele Elemente, die in Windows PowerShell erstellt werden sowie
die meisten Befehle, die ausgefhrt werden, wirken sich nur auf
die aktuelle Sitzung aus. Wenn Sie die Sitzung beenden, werden
die Elemente gelscht.
Die sitzungsspezifischen Befehle und Elemente umfassen Variablen,
Einstellungsvariablen, Aliase, Funktionen, Befehle (auer
Set-ExecutionPolicy) und Windows PowerShell-Snap-Ins, die Sie der
Sitzung hinzufgen.
Um diese Elemente zu speichern und in allen zuknftigen Sitzungen
verfgbar zu machen, fgen Sie sie einem Windows PowerShell-Profil
hinzu.
Profile werden oft auch dazu genutzt, um hufig verwendete
Funktionen, Aliase und Variablen zu speichern. Elemente, die in
einem Profil gespeichert werden, knnen in jeder betreffenden
Sitzung verwendet werden, ohne sie erneut erstellen zu mssen.
SO STARTEN SIE EIN PROFIL
Wenn Sie die Profildatei ffnen, weist diese keinen Inhalt auf.
Sie knnen die Datei jedoch mit den Variablen, Aliasen und
Befehlen fllen, die Sie hufig verwenden.
Nachfolgend finden Sie einige Vorschlge, um Ihnen den Einstieg
zu erleichtern.
-- Fgen Sie Befehle hinzu, die das ffnen des Profils
vereinfachen. Dies ist besonders hilfreich, wenn Sie ein
anderes Profil als "Aktueller Benutzer, Aktueller Host"
verwenden. Fgen Sie beispielsweise folgenden Befehl hinzu:

function pro {notepad $profile.CurrentUserAllHosts}
-- Fgen Sie eine Funktion hinzu, mit der die Windows
PowerShell-Hilfe in einer kompilierten HTML-Hilfe-Datei
(".chm") geffnet wird.
function Get-CHM
{
(invoke-item $env:windir\help\mui\0409\
WindowsPowerShellHelp.chm)
}

Diese Funktion ffnet die englische Version der CHM-Datei. Sie
knnen jedoch den Sprachcode (0409) ersetzen, um eine andere
Versionen der CHM-Datei zu ffnen.

-- Fgen Sie eine Funktion hinzu, mit der die Aliase fr ein
Cmdlet aufgefhrt werden.
function Get-CmdletAlias ($cmdletname)
{
get-alias | Where {$_.definition -like "*$cmdletname*"}| ft Defini
tion, Name -auto
}
-- Fgen Sie einen Add-PsSnapin-Befehl hinzu, um die Windows
PowerShell-Snap-Ins hinzuzufgen, die Sie verwenden.
-- Passen Sie die 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
-- Fgen Sie eine benutzerdefinierte Windows PowerShell-Eingabeauf-
forderung hinzu, die den Computernamen und den aktuellen Pfad
enthlt.
function prompt
{
$env:computername + "\" + (get-location) + "> "
}
Weitere Informationen ber die Windows PowerShell-
Eingabeaufforderung finden Sie unter "about_Prompts".
NOPROFILE-PARAMETER
Um Windows PowerShell ohne Profile zu starten, verwenden Sie den
NoProfile-Parameter des Programms "PowerShell.exe", mit dem
Windows PowerShell gestartet wird.
ffnen Sie zunchst ein Programm, mit dem Windows PowerShell
gestartet werden kann, beispielsweise "Cmd.exe" oder Windows
PowerShell selbst. Sie knnen auch das Dialogfeld "Ausfhren" in
Windows verwenden.
Geben Sie Folgendes ein:
powershell -noprofile
Eine vollstndige Liste der Parameter von "PowerShell.exe"
erhalten Sie mit folgendem Befehl:
powershell -?
PROFILE UND AUSFHRUNGSRICHTLINIEN
Die Ausfhrung von Skripts und das Laden von Konfigurationsdateien
einschlielich Profilen werden teilweise durch die Windows
PowerShell-Ausfhrungsrichtlinie bestimmt. Standardmig wird
die Ausfhrungsrichtlinie "Restricted" verwendet. Diese
Richtlinie verhindert die Ausfhrung aller Skripts
einschlielich der Profile. Wenn Sie die Ausfhrungsrichtlinie
"Restricted" verwenden, wird das Profil nicht ausgefhrt, und
der Inhalt wird nicht angewendet.
Mit einem Set-ExecutionPolicy-Befehl wird die Ausfhrungsrichtlinie
festgelegt und gendert. Dies ist einer der wenigen Befehle,
die sich auf alle Windows PowerShell-Sitzungen auswirken, da der
Wert in der Registrierung gespeichert wird. Der Befehl muss nicht
beim ffnen der Konsole festgelegt werden, und es muss kein
Set-ExecutionPolicy- Befehl im Profil gespeichert werden.
PROFILE UND REMOTESITZUNGEN
Windows PowerShell-Profile werden nicht automatisch in
Remotesitzungen ausgefhrt. Die Befehle, die von den Profilen
hinzugefgt werden, sind daher in der Remotesitzung nicht vorhanden.
Ferner wird die automatische Variable "$profile" nicht in
Remotesitzungen aufgefllt.
Verwenden Sie das Cmdlet "Invoke-Command", um ein Profil in einer
Sitzung auszufhren.
Beispielsweise wird mit dem folgenden Befehl das
CurrentUserCurrentHost-Profil vom lokalen Computer in der
Sitzung in $s ausgefhrt.
invoke-command -session $s -filepath $profile
Beispielsweise wird mit dem folgenden Befehl das
CurrentUserCurrentHost-Profil vom Remotecomputer in der
Sitzung in $s ausgefhrt.
Da die Variable "$profile" nicht aufgefllt wird, verwendet der
Befehl den expliziten Pfad fr das Profil.
invoke-command -session $s {invoke-expression
"$home\Dateien\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}
Die Befehle, die der Sitzung vom Profil hinzugefgt werden, sind
nach Ausfhren des Befehls in $s verfgbar.
SIEHE AUCH
about_Automatic_Variables
about_Functions
about_Prompts
about_Execution_Policies
about_Signing
about_Remote
Set-ExecutionPolicy