about_Automatic_Variables

THEMA
    about_automatic_variables

KURZBESCHREIBUNG
    Beschreibt Variablen, von denen Zustandsinformationen für Windows 
    PowerShell gespeichert werden.
    Diese Variablen werden von Windows PowerShell erstellt und verwaltet.


DETAILBESCHREIBUNG
    In der folgenden Liste sind die automatischen Variablen in 
    Windows PowerShell aufgeführt:
    
    
    $$
       Enthält das letzte Token in der letzten Zeile, die von der 
       Sitzung empfangen wurde.
    

    $? 
       Enthält den Ausführungsstatus des letzten Vorgangs. Enthält 
    TRUE, wenn der letzte Vorgang erfolgreich war; FALSE, wenn 
    beim letzten Vorgang ein Fehler aufgetreten ist.
    
    $^
       Enthält das erste Token in der letzten Zeile, die von der 
       Sitzung empfangen wurde.
    
    $_
       Enthält das aktuelle Objekt im Pipelineobjekt. Diese Variable 
       kann in Befehlen verwendet werden, mit denen eine Aktion für 
       alle Objekte oder für ausgewählte Objekte in einer Pipeline 
       ausgeführt wird.
    
    $Args
       Enthält ein Array der nicht deklarierten Parameter und/oder 
       der Parameterwerte, die an eine Funktion, ein Skript oder 
       einen Skriptblock übergeben werden.
       Beim Erstellen einer Funktion können Sie die Parameter mit dem 
       Schlüsselwort "param" deklarieren, oder indem Sie eine durch 
       Trennzeichen getrennte Liste von Parametern in Klammern nach 
       dem Funktionsnamen hinzufügen.

    $ConsoleFileName
       Enthält den Pfad der Konsolendatei (.psc1), die in der Sitzung 
       zuletzt verwendet wurde. Diese Variable wird aufgefüllt, wenn 
       Windows PowerShell mit dem PSConsoleFile-Parameter gestartet 
       wird oder wenn mit dem Cmdlet "Export-Console" Snap-In-Namen 
       in eine Konsolendatei exportiert werden. 

       Wenn Sie das Cmdlet "Export-Console" ohne Parameter verwenden, 
       aktualisiert das Cmdlet automatisch die in der Sitzung zuletzt 
       verwendete Konsolendatei. Mithilfe dieser automatischen 
       Variablen können Sie bestimmen, welche Datei aktualisiert wird.

    $Error
       Enthält ein Array von Fehlerobjekten, die die zuletzt 
       aufgetretenen Fehler darstellen. Der letzte aufgetretene 
       Fehler stellt das erste Fehlerobjekt im Array ("$Error[0]") dar.

    $Event
       Enthält ein PSEventArgs-Objekt, das das zu verarbeitende Ereig- 
       nis darstellt. Diese Variable wird nur im Action-Block eines 
       Ereignisregistrierungsbefehls, z. B. "Register-ObjectEvent", 
       aufgefüllt. Der Wert der Variablen ist mit dem Objekt iden- 
       tisch, das vom Cmdlet "Get-Event" zurückgegeben wird. Daher 
       können Sie die Eigenschaften der Variablen "$Event", 
       z. B. $Event.TimeGenerated, in einem Action-Scriptblock 
       verwenden.

    $EventSubscriber
       Enthält ein PSEventSubscriber-Objekt, das den Ereignis- 
       abonnenten des zu verarbeitenden Ereignisses darstellt.Diese 
       Variable wird nur im Action-Block eines Ereignisregistrierungs- 
       befehls aufgefüllt. Der Wert der Variablen ist mit dem Objekt 
       identisch, das vom Cmdlet "Get-EventSubscriber" zurückgegeben 
       wird.

    $ExecutionContext
       Enthält ein EngineIntrinsics-Objekt, das den Ausführungskontext des 
       Windows PowerShell-Hosts darstellt. Mithilfe dieser Variablen können 
       Sie die Ausführungsobjekte suchen, die für Cmdlets verfügbar sind.

    $False
       Enthält FALSE. Mit dieser Variablen können Sie FALSE in 
       Befehlen und Skripts darstellen, sodass Sie nicht die Zeichenfolge 
       "false" verwenden müssen. Die Zeichenfolge kann als TRUE 
       interpretiert werden, wenn sie in eine nicht leere Zeichenfolge oder 
       eine ganze Zahl ungleich 0 konvertiert wurde.

    $ForEach
       Enthält den Enumerator einer ForEach-Object-Schleife. Sie 
       können die Eigenschaften und die Methoden von Enumeratoren für 
       den Wert der $ForEach-Variablen verwenden. Diese Variable ist 
       nur während der Ausführung der For-Schleife vorhanden. Bei 
       Abschluss der Schleife wird sie gelöscht.
    
    $Home
       Enthält den vollständigen Pfad zum Stammverzeichnis des 
       Benutzers. Diese Variable ist die Entsprechung der 
       %homedrive%%homepath%-Umgebungsvariablen, normalerweise 
       "C:\Dokumente und Einstellungen\<Benutzer>".

    $Host
       Enthält ein Objekt, das die aktuelle Hostanwendung für Windows 
       PowerShell darstellt. Mit dieser Variablen können Sie den 
       aktuellen Host in Befehlen darstellen oder die Eigenschaften 
       des Hosts anzeigen bzw. ändern, z. B. die $Host.version-Eigen-
       schaft oder die $Host.CurrentCulture-Eigenschaft oder 
       $host.ui.rawui.setbackgroundcolor("Red").

    $Input
       Ein Enumerator mit der Eingabe, die an eine Funktion übergeben 
       wird. Bei der Variablen "$Input" wird die Groß- und 
       Kleinschreibung beachtet, und sie ist in nur Funktionen und 
       Skriptblöcken verfügbar. (Skriptblöcke sind im Wesentlichen 
       unbenannte Funktionen.) Im Process-Block einer Funktion 
       enthält die Variable "$Input" das Objekt, das sich derzeit in der 
       Pipeline befindet. Nach Abschluss des Process-Blocks weist "$Input" 
       den Wert NULL auf. Wenn die Funktion über keinen Process-Block 
       verfügt, ist der Wert von "$Input" für den abschließenden Block 
       verfügbar, und er enthält die gesamte Eingabe für die Funktion.

    $LastExitCode
       Enthält den Exitcode des zuletzt ausgeführten Windows-Programms.

    $Matches
       Die Variable "$Matches" wird mit den Operatoren -match und 
       -notmatch verwendet.
       Wenn eine skalare Eingabe an den Operator -match oder 
       -notmatch gesendet und eine Übereinstimmung erkannt wird, wird 
       ein boolescher Wert zurückgegeben, und die automatische 
       Variable "$Matches" wird mit einer Hashtabelle der gefundenen 
       Zeichenfolgenwerte aufgefüllt. Weitere Informationen zum 
       Operator -match finden Sie unter about_comparison_operators.
    
    $MyInvocation
       Enthält ein Objekt mit Informationen zum aktuellen Befehl, 
       z. B. ein Skript, eine Funktion oder einen Skriptblock. 
       Mithilfe der Informationen im Objekt, z. B. mit dem Pfad und dem 
       Dateinamen des Skripts ($myinvocation.mycommand.path) oder mit dem 
       Namen einer Funktion ($myinvocation.mycommand.name), können Sie den 
       aktuellen Befehl bestimmen. Dies ist besonders hilfreich beim Suchen 
       des Namens des derzeit ausgeführten Skripts.

    $NestedPromptLevel
       Enthält die aktuelle Ebene der Eingabeaufforderung. Mit dem 
       Wert 0 wird die ursprüngliche Ebene der Eingabeaufforderung 
       angegeben. Beim Eingeben einer geschachtelten Ebene wird der 
       Wert inkrementiert, beim Verlassen einer geschachtelten Ebene 
       wird er dekrementiert.

       Windows PowerShell zeigt z. B. eine geschachtelte 
       Eingabeaufforderung an, wenn die $Host.EnterNestedPrompt-Methode
       verwendet wird. Bei Erreichen eines Haltepunkts im Windows 
       PowerShell-Debugger wird von Windows PowerShell ebenfalls eine 
       geschachtelte Eingabeaufforderung angezeigt.

       Wenn Sie eine geschachtelte Eingabeaufforderung aufrufen, wird 
       die Ausführung des aktuellen Befehls von Windows PowerShell 
       unterbrochen, der Ausführungskontext wird gespeichert und der 
       Wert der Variablen "$NestedPromptLevel" wird inkrementiert. 
       Wenn Sie weitere geschachtelte Eingabeaufforderungen (mit bis 
       zu 128 Ebenen) erstellen oder zur ursprünglichen 
       Eingabeaufforderung zurückkehren möchten, schließen Sie die 
       Ausführung des Befehls ab, oder geben Sie "exit" ein. 

       Anhand der Variablen "$NestedPromptLevel" können Sie die Ebene der 
       Eingabeaufforderung verfolgen. Sie können eine alternative Windows 
       PowerShell-Eingabeaufforderung erstellen, die diesen Wert enthält, 
       sodass er immer sichtbar ist.

    $NULL
       Enthält den Wert NULL oder einen leeren Wert. Mit dieser 
       Variablen können Sie NULL in Befehlen und Skripts darstellen, 
       sodass Sie nicht die Zeichenfolge "NULL" verwenden müssen. Die 
       Zeichenfolge kann als TRUE interpretiert werden, wenn sie in 
       eine nicht leere Zeichenfolge oder eine ganze Zahl ungleich 0 
       konvertiert wurde.

    $PID
       Enthält die Prozess-ID (PID) des Prozesses, der die aktuelle 
       Windows PowerShell-Sitzung hostet.
  
    $Profile
       Enthält den vollständigen Pfad des Windows PowerShell-Profils 
       für den aktuellen Benutzer sowie der aktuellen Hostanwendung. 
       Mithilfe dieser Variablen können Sie das Profil in Befehlen 
       darstellen. Mit der Variablen können Sie beispielsweise in 
       einem Befehl bestimmen, ob ein Profil erstellt wurde:

           test-path $profile

       Mit der Variablen können Sie in einem Befehl auch ein Profil 
       erstellen:

           new-item -type file -path $pshome -force

       Darüber hinaus können Sie sie in einem Befehl verwenden, um 
       das Profil in Editor zu öffnen:

           notepad $profile

    $PSBoundParameters
       Enthält ein Wörterbuch mit den aktiven Parametern und deren 
       aktuellen Werten. Diese Variable verfügt nur in Bereichen über 
       einen Wert, in denen Parameter deklariert sind, z. B. in einem 
       Skript oder in einer Funktion. Mit der Variablen können Sie 
       die aktuellen Werte von Parametern anzeigen oder ändern sowie 
       Parameterwerte an ein anderes Skript oder eine andere Funktion 
       übergeben.

       Beispiel:

         function test {
            param($a, $b)
            
            #Die Parameter werden im Wörterbuchformat angezeigt.
            $psboundparameters
             
            # Rufen Sie die Test1-Funktion mit \\"$a\\" und \\"$b\\" auf.
            test1 @psboundparameters   
         }

    $PsCmdlet
       Enthält ein Objekt, das das ausgeführte Cmdlet bzw. die 
       ausgeführte erweiterte Funktion darstellt. 

       Mithilfe der Eigenschaften und Methoden des Objekts im Cmdlet 
       oder im Funktionscode können Sie auf die Verwendungsbedingungen 
       reagieren. Die ParameterSetName-Eigenschaft enthält z. B. den 
       Namen des verwendeten Parametersatzes, und mit der 
       ShouldProcess-Methode werden dem Cmdlet der WhatIf-Parameter 
       und der Confirm-Parameter dynamisch hinzugefügt.

       Weitere Informationen zur automatischen Variablen "$PSCmdlet" 
       finden Sie unter about_Functions_Advanced.

    $PsCulture
       Enthält den Namen der Kultur, die derzeit im Betriebssystem 
       festgelegt ist. Durch die Kultur wird das Anzeigeformat von 
       Elementen wie Zahlen oder Währungs- und Datumsangaben 
       bestimmt. Dies ist der Wert der System.Globalization.CultureInfo.
       CurrentCulture.Name-Eigenschaft des Systems. Rufen Sie das 
       System.Globalization.CultureInfo-Objekt für das System mit dem 
       Cmdlet "Get-Culture" ab.

    $PSDebugContext
       Während des Debuggens enthält diese Variable Informationen zur 
       Debugumgebung. Andernfalls enthält sie einen NULL-Wert. Daher 
       können Sie mit der Variablen angeben, ob die Steuerung beim 
       Debugger liegt. Die aufgefüllte Variable enthält ein 
       PsDebugContext-Objekt, das über die Breakpoints-Eigenschaft 
       und die InvocationInfo-Eigenschaft verfügt. Die InvocationInfo-
       Eigenschaft enthält mehrere hilfreiche Eigenschaften, z. B. 
       die Location-Eigenschaft. Mit der Location-Eigenschaft wird 
       der Pfad des debuggten Skripts angegeben.


    $PsHome
       Enthält dem vollständigen Pfad des Installationsverzeichnisses für 
       Windows PowerShell, normalerweise "%windir%\System32\WindowsPowerShell
       \v1.0". Sie können diese Variable in den Pfaden für Windows 
       PowerShell-Dateien angeben. Mit dem folgenden Befehl werden z. B. die 
       konzeptuellen Hilfethemen nach dem Wort "Variable" durchsucht: 

            select-string -pattern variable -path $pshome\*.txt

    $PSScriptRoot
       Enthält das Verzeichnis, aus dem das Skriptmodul ausgeführt wird.
       Diese Variable ermöglicht Skripts den Zugriff auf andere 
       Ressourcen über den Modulpfad.


    $PsUICulture
       Enthält den Namen der Benutzeroberflächenkultur, die derzeit 
       für das Betriebssystem festgelegt ist. Die Benutzeroberflächen-
       kultur bestimmt, welche Textzeichenfolgen für Benutzerober-
       flächenelemente, z. B. Menüs und Meldungen, verwendet werden.  
       Dies ist der Wert der 
       System.Globalization.CultureInfo.CurrentUICulture.Name-Eigen-
       schaft des Systems. Rufen Sie das System.Globalization.CultureInfo
       -Objekt für das System mit dem Cmdlet "Get-UICulture" ab. 


    $PsVersionTable
        Enthält eine schreibgeschützte Hashtabelle, in der Details 
        zur Windows PowerShell-Version aufgelistet werden, die in der 
        aktuellen Sitzung ausgeführt wird.
        Die Tabelle enthält die folgenden Elemente:

        CLRVersion:            Die Version der Common Language 
                       Runtime (CLR).

        BuildVersion:          Die Buildnummer der aktuellen Version.

            PSVersion:             Die Windows PowerShell-Versionsnummer.

            WSManStackVersion:     Die Versionsnummer des Stapels der 
                       WS-Verwaltung.

        PSCompatibleVersions:  Windows PowerShell-Version, die mit der 
                       aktuellen Version kompatibel sind.

            SerializationVersion:  Die Version der Serialisierungsmethode.

            PSRemotingProtocolVersion
                                   Die Version des Windows PowerShell-
                                   Remoteverwaltungsprotokolls.

    $Pwd
       Enthält ein Pfadobjekt, das den vollständigen Pfad des 
       aktuellen Verzeichnisses darstellt. 

    $Sender
       Enthält das Objekt, von dem dieses Ereignis generiert wurde. 
       Diese Variable wird nur im Action-Block eines Ereignisregis- 
       trierungsbefehls aufgefüllt. Der Wert dieser Variablen kann 
       auch in der Sender-Eigenschaft des von Get-Event 
       zurückgegebenen PSEventArgs-Objekts 
       (System.Management.Automation.PSEventArgs) vorhanden sein. 
    
    $ShellID
       Enthält die ID der aktuellen Shell.

    $SourceArgs
        Enthält Objekte, die die Ereignisargumente des zu verarbei- 
        tenden Ereignisses darstellen. Diese Variable wird nur im 
        Action-Block eines Ereignisregistrierungsbefehls aufgefüllt. 
        Der Wert dieser Variablen kann auch in der SourceArgs-
        Eigenschaft des von Get-Event zurückgegebenen PSEventArgs-
        Objekts (System.Management.Automation.PSEventArgs) vorhanden 
        sein. 
    
    $$SourceEventArgs
        Enthält ein Objekt, das das erste Ereignisargument darstellt, 
        das von EventArgs des zu verarbeitenden Ereignisses abgeleitet 
        ist. Diese Variable wird nur im Action-Block eines Ereignis- 
        registrierungsbefehls aufgefüllt. Der Wert dieser Variablen 
        kann auch in der SourceArgs-Eigenschaft des von Get-Event 
        zurückgegebenen PSEventArgs-Objekts 
        (System.Management.Automation.PSEventArgs) vorhanden sein. 
    
    $This
        In einem Skriptblock zum Definieren einer Skripteigenschaft 
        oder einer Skriptmethode verweist die Variable "$This" auf 
        das erweiterte Objekt. 

    $True
       Enthält TRUE. Mithilfe dieser Variablen können Sie TRUE in 
       Befehlen und Skripts darstellen.


SIEHE AUCH
    about_Hash_Tables
    about_Preference_Variables
    about_Variables