Freigeben über


Kapitel 2 – Das Hilfesystem

In einem Experiment zur Bewertung von Kenntnissen in PowerShell erhielten zwei unterschiedliche Gruppen von IT-Experten – Anfänger und Experten – zunächst eine schriftliche Prüfung ohne Zugriff auf einen Computer. Überraschenderweise zeigten die Testergebnisse vergleichbare Fähigkeiten in beiden Gruppen. Anschließend wurde ein Test durchgeführt, der dem ersten ähnelte, jedoch mit einem wesentlichen Unterschied: Die Teilnehmer hatten Zugriff auf einen Offlinecomputer, der mit PowerShell ausgestattet war. Die Ergebnisse ergaben eine erhebliche Kompetenzlücke zwischen den beiden Gruppen dieses Mal.

Welche Faktoren trugen zu den Ergebnissen bei, die zwischen den beiden Bewertungen beobachtet wurden?

Experten kennen nicht immer die Antworten, aber sie wissen, wie sie die Antworten ermitteln können.

Die Ergebnisse der beiden Tests waren darauf zurückzuführen, dass Experten sich nicht tausende von PowerShell-Befehlen auswendig merken. Stattdessen beherrschen sie die Verwendung des Hilfesystems innerhalb von PowerShell, sodass sie Befehle bei Bedarf ermitteln und erlernen können.

Sich mit dem Hilfesystem vertraut zu machen, ist der Schlüssel zum Erfolg mit PowerShell.

Ich habe Jeffrey Snover, den Schöpfer von PowerShell, mehrfach eine ähnliche Geschichte erzählen hören.

Auffindbarkeit

Kompilierte Befehle in PowerShell werden als Cmdlets bezeichnet, die als "command-let"ausgesprochen werden, nicht als "CMD-let". Die Benennungskonvention für Cmdlets folgt einem einzigartigen Verb-Nomen-Format, um sie leicht auffindbar zu machen. Beispielsweise ist Get-Process das Cmdlet, um zu bestimmen, welche Prozesse ausgeführt werden, und Get-Service ist das Cmdlet zum Abrufen einer Liste von Diensten. Funktionen, auch als Skript-Cmdlets bezeichnet, und Aliase sind andere Arten von PowerShell-Befehlen, die weiter unten in diesem Buch erläutert werden. Der Begriff "PowerShell-Befehl" beschreibt jeden Befehl in PowerShell, unabhängig davon, ob es sich um ein Cmdlet, eine Funktion oder einen Alias handelt.

Sie können auch systemeigene Befehle des Betriebssystems über PowerShell ausführen, z. B. herkömmliche Befehlszeilenprogramme wie ping.exe und ipconfig.exe.

Die drei zentralen Cmdlets in PowerShell

  • Get-Help
  • Get-Command
  • Get-Member (in Kapitel 3 behandelt)

Ich bin oft gefragt: "Wie ermitteln Sie, was die Befehle in PowerShell sind?". Sowohl Get-Help als auch Get-Command sind unschätzbare Ressourcen zum Ermitteln und Verstehen von Befehlen in PowerShell.

Get-Help

Das erste, was Sie über das Hilfesystem in PowerShell wissen müssen, ist die Verwendung des cmdlets Get-Help.

Get-Help ist ein mehrfunktionsfähiger Befehl, mit dem Sie erfahren können, wie Sie Befehle verwenden können, sobald Sie sie gefunden haben. Sie können auch Get-Help verwenden, um Befehle zu finden, aber in einer anderen und indirekteren Weise im Vergleich zu Get-Command.

Wenn Sie Get-Help zum Suchen von Befehlen verwenden, führt sie zunächst eine Wildcardsuche nach Befehlsnamen basierend auf Ihrer Eingabe aus. Wenn dies keine Übereinstimmungen findet, führt sie eine umfassende Volltextsuche in allen PowerShell-Hilfeartikeln auf Ihrem System durch. Wenn dadurch auch keine Ergebnisse gefunden werden, wird ein Fehler zurückgegeben.

Hier erfahren Sie, wie Sie Get-Help verwenden, um den Hilfeinhalt für das Cmdlet Get-Help anzuzeigen.

Get-Help -Name Get-Help

Ab PowerShell Version 3.0 werden die Hilfeinhalte nicht mit dem Betriebssystem vorinstalliert. Wenn Sie Get-Help zum ersten Mal ausführen, wird in einer Meldung gefragt, ob Sie die PowerShell-Hilfedateien auf Ihren Computer herunterladen möchten.

Wenn Sie Ja- beantworten, indem Sie Y- drücken, wird das Cmdlet Update-Help ausgeführt, und der Hilfeinhalt wird heruntergeladen.

Do you want to run Update-Help?
The Update-Help cmdlet downloads the most current Help files for Windows
PowerShell modules, and installs them on your computer. For more information
about the Update-Help cmdlet, see
https:/go.microsoft.com/fwlink/?LinkId=210614.
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"):

Wenn Sie diese Nachricht nicht erhalten, führen Sie Update-Help aus einer PowerShell-Sitzung mit erhöhten Rechten aus, die als Administrator ausgeführt wird.

Sobald das Update abgeschlossen ist, wird der Hilfeartikel angezeigt.

Nehmen Sie sich einen Moment Zeit, um das Beispiel auf Ihrem Computer auszuführen, überprüfen Sie die Ausgabe, und beobachten Sie, wie das Hilfesystem die Informationen organisiert.

  • NAME
  • ZUSAMMENFASSUNG
  • SYNTAX
  • BESCHREIBUNG
  • VERWANDTE LINKS
  • ANMERKUNGEN

Beachten Sie beim Überprüfen der Ausgabe, dass Hilfeartikel häufig eine große Menge an Informationen enthalten, und das, was Sie standardmäßig sehen, nicht der gesamte Hilfeartikel ist.

Parameter

Wenn Sie einen Befehl in PowerShell ausführen, müssen Sie möglicherweise zusätzliche Informationen oder Eingaben für den Befehl bereitstellen. Mit Parametern können Sie Optionen und Argumente angeben, die das Verhalten eines Befehls ändern. Im Abschnitt SYNTAX jedes Hilfeartikels werden die verfügbaren Parameter für den Befehl beschrieben.

Get-Help verfügt über mehrere Parameter, die Sie angeben können, um den gesamten Hilfeartikel oder eine Teilmenge für einen Befehl zurückzugeben. Informationen zum Anzeigen aller verfügbaren Parameter für Get-Helpfinden Sie im Abschnitt SYNTAX des Hilfeartikels, wie im folgenden Beispiel gezeigt.

...
SYNTAX
    Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
    | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
    Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
    Class | Configuration}] [-Component <System.String[]>] [-Full]
    [-Functionality <System.String[]>] [-Path <System.String>] [-Role
    <System.String[]>] [<CommonParameters>]

    Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
    | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
    Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
    Class | Configuration}] [-Component <System.String[]>] -Detailed
    [-Functionality <System.String[]>] [-Path <System.String>] [-Role
    <System.String[]>] [<CommonParameters>]

    Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
    | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
    Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
    Class | Configuration}] [-Component <System.String[]>] -Examples
    [-Functionality <System.String[]>] [-Path <System.String>] [-Role
    <System.String[]>] [<CommonParameters>]

    Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
    | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
    Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
    Class | Configuration}] [-Component <System.String[]>] [-Functionality
    <System.String[]>] -Online [-Path <System.String>] [-Role
    <System.String[]>] [<CommonParameters>]

    Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
    | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
    Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
    Class | Configuration}] [-Component <System.String[]>] [-Functionality
    <System.String[]>] -Parameter <System.String> [-Path <System.String>]
    [-Role <System.String[]>] [<CommonParameters>]

    Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
    | General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
    Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
    Class | Configuration}] [-Component <System.String[]>] [-Functionality
    <System.String[]>] [-Path <System.String>] [-Role <System.String[]>]
    -ShowWindow [<CommonParameters>]
...

Parametersätze

Wenn Sie den Abschnitt SYNTAX für Get-Helpüberprüfen, beachten Sie, dass die Informationen sechsmal wiederholt werden. Jeder dieser Blöcke ist ein einzelner Parametersatz, der angibt, dass das Get-Help Cmdlet sechs verschiedene Parametersätze enthält. Eine genauere Betrachtung zeigt, dass jeder Parametersatz mindestens einen eindeutigen Parameter enthält, wodurch er sich von den anderen unterscheidet.

Parametersätze schließen sich gegenseitig aus. Nachdem Sie einen eindeutigen Parameter angegeben haben, der nur in einem Parametersatz vorhanden ist, beschränkt PowerShell Sie auf die Verwendung der Parameter, die in diesem Parametersatz enthalten sind. Zum Beispiel können Sie die Parameter Vollständig und Detailliert nicht zusammen verwenden, Get-Help, da sie zu verschiedenen Parametersätzen gehören.

Jeder der folgenden Parameter gehört zu einem anderen Parametersatz für das Cmdlet Get-Help.

  • Vollständig
  • Detailliert
  • Beispiele
  • Online
  • Parameter
  • Fenster anzeigen

Die Befehlssyntax

Wenn Sie neu in PowerShell sind, könnten die kryptischen Informationen im Abschnitt SYNTAX, die durch eckige und winkelige Klammern gekennzeichnet sind, überwältigend erscheinen. Das Erlernen dieser Syntaxelemente ist jedoch unerlässlich, um mit PowerShell vertraut zu werden. Je häufiger Sie das PowerShell-Hilfesystem verwenden, desto einfacher wird es, alle Nuancen zu merken.

Zeigen Sie die Syntax des Cmdlets Get-EventLog an.

Get-Help Get-EventLog

Die nachfolgende Ausgabe zeigt den relevanten Teil des Hilfeartikels.

...
SYNTAX
    Get-EventLog [-LogName] <System.String> [[-InstanceId]
    <System.Int64[]>] [-After <System.DateTime>] [-AsBaseObject] [-Before
    <System.DateTime>] [-ComputerName <System.String[]>] [-EntryType {Error
    | Information | FailureAudit | SuccessAudit | Warning}] [-Index
    <System.Int32[]>] [-Message <System.String>] [-Newest <System.Int32>]
    [-Source <System.String[]>] [-UserName <System.String[]>]
    [<CommonParameters>]

    Get-EventLog [-AsString] [-ComputerName <System.String[]>] [-List]
    [<CommonParameters>]
...

Die Syntaxinformationen enthalten Paare eckigen Klammern ([]). Je nach Verwendung dienen diese eckigen Klammern zwei verschiedene Zwecke.

  • In eckige Klammern eingeschlossene Elemente sind optional.
  • Eine leere Gruppe von eckigen Klammern nach einem Datentyp, z. B. <string[]>, gibt an, dass der Parameter mehrere Werte akzeptieren kann, die als Array oder Einsammlungsobjekt übergeben werden.

Positionsparameter

Einige Cmdlets sind so konzipiert, dass Positionsparameter akzeptiert werden. Positionsparameter ermöglichen es Ihnen, einen Wert bereitzustellen, ohne den Namen des Parameters anzugeben. Wenn Sie einen Parameter positional verwenden, müssen Sie den Wert an der richtigen Position in der Befehlszeile angeben. Sie finden die Positionsinformationen für einen Parameter im PARAMETERS Abschnitt des Hilfeartikels eines Befehls. Wenn Sie Parameternamen explizit angeben, können Sie die Parameter in beliebiger Reihenfolge verwenden.

Für das Cmdlet Get-EventLog ist der erste Parameter im ersten Parametersatz LogName. LogName in eckige Klammern eingeschlossen ist und angibt, dass es sich um einen Positionsparameter handelt.

Get-EventLog [-LogName] <System.String>

Da LogName- ein Positionsparameter ist, können Sie ihn entweder anhand des Namens oder der Position angeben. Gemäß den Winkelklammern nach dem Parameternamen muss der Wert für LogName- eine einzelne Zeichenfolge sein. Das Fehlen von eckigen Klammern, die sowohl den Parameternamen als auch den Datentyp einschließen, gibt an, dass LogName- ein erforderlicher Parameter innerhalb dieses bestimmten Parametersatzes ist.

Der zweite Parameter in diesem Parametersatz ist InstanceId. Sowohl der Parametername als auch der Datentyp sind vollständig in eckige Klammern eingeschlossen, was bedeutet, dass InstanceId- ein optionaler Parameter ist.

[[-InstanceId] <System.Int64[]>]

Darüber hinaus weist InstanceId ein eigenes Paar eckigen Klammern auf, das angibt, dass es sich um einen Positionsparameter ähnlich dem LogName-Parameter ist. Nach dem Datentyp bedeutet eine leere Gruppe von eckigen Klammern, dass InstanceId- mehrere Werte akzeptieren kann.

Parameter wechseln

Ein Parameter, der keinen Wert erfordert, wird als Switch-Parameter bezeichnet. Sie können Switch-Parameter leicht identifizieren, da kein Datentyp nach dem Parameternamen vorhanden ist. Wenn Sie einen Schalterparameter angeben, ist sein Wert true. Wenn Sie einen Schalterparameter nicht angeben, ist der Wert false.

Der zweite Parametersatz enthält einen List-Parameter, bei dem es sich um einen Switch-Parameter handelt. Wenn Sie den parameter List angeben, wird eine Liste der Ereignisprotokolle auf dem lokalen Computer zurückgegeben.

[-List]

Ein vereinfachter Ansatz für die Syntax

Es gibt eine benutzerfreundlichere Methode, um die gleichen Informationen wie die kryptische Befehlssyntax für einige Befehle abzurufen, mit Ausnahme in einfachem Englisch. PowerShell gibt den vollständigen Hilfeartikel zurück, wenn sie Get-Help mit dem Parameter "Full" verwenden, wodurch die Verwendung eines Befehls einfacher zu verstehen ist.

Get-Help -Name Get-Help -Full

Nehmen Sie sich einen Moment Zeit, um das Beispiel auf Ihrem Computer auszuführen, überprüfen Sie die Ausgabe, und beobachten Sie, wie das Hilfesystem die Informationen organisiert.

  • NAME
  • ZUSAMMENFASSUNG
  • SYNTAX
  • BESCHREIBUNG
  • PARAMETER
  • EINGABEN
  • AUSGABEN
  • NOTIZEN
  • BEISPIELE
  • VERWANDTE LINKS

Durch Angeben des Parameters Full mit dem Cmdlet Get-Help enthält die Ausgabe mehrere zusätzliche Abschnitte. Unter diesen Abschnitten bietet PARAMETERS häufig eine detaillierte Erläuterung für jeden Parameter. Der Umfang dieser Informationen variiert jedoch je nach dem spezifischen Befehl, den Sie untersuchen.

...
    -Detailed <System.Management.Automation.SwitchParameter>
        Adds parameter descriptions and examples to the basic help display.
        This parameter is effective only when the help files are installed
        on the computer. It has no effect on displays of conceptual ( About_
        ) help.

        Required?                    true
        Position?                    named
        Default value                False
        Accept pipeline input?       False
        Accept wildcard characters?  false

    -Examples <System.Management.Automation.SwitchParameter>
        Displays only the name, synopsis, and examples. This parameter is
        effective only when the help files are installed on the computer. It
        has no effect on displays of conceptual ( About_ ) help.

        Required?                    true
        Position?                    named
        Default value                False
        Accept pipeline input?       False
        Accept wildcard characters?  false

    -Full <System.Management.Automation.SwitchParameter>
        Displays the entire help article for a cmdlet. Full includes
        parameter descriptions and attributes, examples, input and output
        object types, and additional notes.

        This parameter is effective only when the help files are installed
        on the computer. It has no effect on displays of conceptual ( About_
        ) help.

        Required?                    false
        Position?                    named
        Default value                False
        Accept pipeline input?       False
        Accept wildcard characters?  false
...

Wenn Sie den vorherigen Befehl ausgeführt haben, um die Hilfe für den Befehl Get-Help anzuzeigen, haben Sie wahrscheinlich bemerkt, dass die Ausgabe zu schnell gescrollt wurde, um sie lesen zu können.

Wenn Sie die PowerShell-Konsole, windows Terminal oder VS Code verwenden und einen Hilfeartikel anzeigen müssen, kann die help-Funktion hilfreich sein. Sie übergibt die Ausgabe von Get-Help an more.com, wobei jeweils eine Seite mit Hilfeinhalten angezeigt wird. Ich empfehle die Verwendung der help-Funktion anstelle des cmdlets Get-Help, da sie eine bessere Benutzererfahrung bietet und weniger einzugeben ist.

Hinweis

Der ISE unterstützt die Verwendung von more.comnicht, sodass das Ausführen von help auf die gleiche Weise wie Get-Helpfunktioniert.

Führen Sie jeden der folgenden Befehle in PowerShell auf Ihrem Computer aus.

Get-Help -Name Get-Help -Full
help -Name Get-Help -Full
help Get-Help -Full

Haben Sie Variationen in der Ausgabe beobachtet, als Sie die vorherigen Befehle ausgeführt haben?

Im vorherigen Beispiel verwendet die erste Zeile das Cmdlet Get-Help, die zweite verwendet die funktion help, und in der dritten Zeile wird der parameter Name weggelassen, während die help-Funktion verwendet wird. Da Name ein Positionsparameter ist, nutzt das dritte Beispiel seine Position, anstatt explizit den Namen des Parameters anzugeben.

Der Unterschied besteht darin, dass die letzten beiden Befehle ihre Ausgabe seitenweise anzeigen. Wenn Sie die help-Funktion verwenden, drücken Sie die LEERTASTE, um die nächste Seite des Inhalts anzuzeigen, oder Q, um zu beenden. Wenn Sie einen Befehl beenden müssen, der interaktiv in PowerShell ausgeführt wird, drücken Sie STRG+C.

Um schnell Informationen zu einem bestimmten Parameter zu finden, verwenden Sie den parameter Parameter. Dieser Ansatz gibt Inhalte zurück, die nur die parameterspezifischen Informationen enthalten, und nicht den gesamten Hilfeartikel. Dies ist die einfachste Möglichkeit, Informationen zu einem bestimmten Parameter zu finden.

Im folgenden Beispiel wird die Funktion help mit dem Parameter Parameter verwendet, um Informationen aus dem Hilfeartikel für den Parameter Name von Get-Help zurückzugeben.

help Get-Help -Parameter Name

Die Hilfsinformationen zeigen, dass der Name-Parameter positionsabhängig ist und in der ersten Position (Position Null) angegeben werden muss, wenn er positionsbezogen verwendet wird.

-Name <System.String>
    Gets help about the specified command or concept. Enter the name of a
    cmdlet, function, provider, script, or workflow, such as `Get-Member`,
    a conceptual article name, such as `about_Objects`, or an alias, such
    as `ls`. Wildcard characters are permitted in cmdlet and provider
    names, but you can't use wildcard characters to find the names of
    function help and script help articles.

    To get help for a script that isn't located in a path that's listed in
    the `$env:Path` environment variable, type the script's path and file
    name.

    If you enter the exact name of a help article, `Get-Help` displays the
    article contents.

    If you enter a word or word pattern that appears in several help
    article titles, `Get-Help` displays a list of the matching titles.

    If you enter any text that doesn't match any help article titles,
    `Get-Help` displays a list of articles that include that text in their
    contents.

    The names of conceptual articles, such as `about_Objects`, must be
    entered in English, even in non-English versions of PowerShell.

    Required?                    false
    Position?                    0
    Default value                None
    Accept pipeline input?       True (ByPropertyName)
    Accept wildcard characters?  true

Der parameter Name erwartet einen Zeichenfolgenwert, der durch den Datentyp <String> neben dem Parameternamen identifiziert wird.

Es gibt mehrere andere Parameter, die Sie mit Get-Help angeben können, um eine Teilmenge eines Hilfeartikels zurückzugeben. Um zu sehen, wie sie funktionieren, führen Sie die folgenden Befehle auf Ihrem Computer aus.

Get-Help -Name Get-Command -Full
Get-Help -Name Get-Command -Detailed
Get-Help -Name Get-Command -Examples
Get-Help -Name Get-Command -Online
Get-Help -Name Get-Command -Parameter Noun
Get-Help -Name Get-Command -ShowWindow

Normalerweise verwende ich help <command name> mit dem Parameter Full oder Online. Wenn Sie nur an den Beispielen interessiert sind, verwenden Sie die Examples Parameter. Wenn Sie nur an einem bestimmten Parameter interessiert sind, verwenden Sie den parameter Parameter.

Wenn Sie den parameter ShowWindow verwenden, wird der Hilfeinhalt in einem separaten durchsuchbaren Fenster angezeigt. Sie können dieses Fenster auf einen anderen Monitor verschieben, wenn Sie über mehrere Monitore verfügen. Der ShowWindow Parameter weist jedoch einen bekannten Fehler auf, der die Anzeige des gesamten Hilfeartikels verhindern kann. Für den ShowWindow Parameter ist auch ein Betriebssystem mit grafischer Benutzeroberfläche (GUI) erforderlich. Es wird ein Fehler zurückgegeben, wenn Sie versuchen, ihn unter Windows Server Core zu verwenden.

Wenn Sie über Internetzugang verfügen, können Sie stattdessen den Parameter Online verwenden. Der Parameter Online öffnet den Hilfeartikel in Ihrem Standardwebbrowser. Die Online-Inhalte sind die aktuellsten Inhalte. Mit dem Browser können Sie den Hilfeinhalt durchsuchen und andere verwandte Hilfeartikel anzeigen.

Hinweis

Der Parameter Online wird für Artikel zu Informationen nicht unterstützt.

help Get-Command -Online

Suchen von Befehlen mit Get-Help

Wenn Sie Befehle mit Get-Helpsuchen möchten, geben Sie einen Suchbegriff an, der von Sternchen (*) für den Wert des Name-Parameters umgeben ist. Im folgenden Beispiel wird der Parameter Name positionell verwendet.

help *process*
Name                              Category  Module                    Synops
----                              --------  ------                    ------
Enter-PSHostProcess               Cmdlet    Microsoft.PowerShell.Core Con...
Exit-PSHostProcess                Cmdlet    Microsoft.PowerShell.Core Clo...
Get-PSHostProcessInfo             Cmdlet    Microsoft.PowerShell.Core Get...
Debug-Process                     Cmdlet    Microsoft.PowerShell.M... Deb...
Get-Process                       Cmdlet    Microsoft.PowerShell.M... Get...
Start-Process                     Cmdlet    Microsoft.PowerShell.M... Sta...
Stop-Process                      Cmdlet    Microsoft.PowerShell.M... Sto...
Wait-Process                      Cmdlet    Microsoft.PowerShell.M... Wai...
Invoke-LapsPolicyProcessing       Cmdlet    LAPS                      Inv...
ConvertTo-ProcessMitigationPolicy Cmdlet    ProcessMitigations        Con...
Get-ProcessMitigation             Cmdlet    ProcessMitigations        Get...
Set-ProcessMitigation             Cmdlet    ProcessMitigations        Set...

In diesem Szenario müssen Sie die * Wildcardzeichen nicht hinzufügen. Wenn Get-Help keinen Befehl finden kann, der dem von Ihnen angegebenen Wert entspricht, wird eine Volltextsuche für diesen Wert ausgeführt. Im folgenden Beispiel werden die gleichen Ergebnisse erzielt, wie wenn das Wildcard-Zeichen * an jedem Ende von processangegeben wird.

help process

Wenn Sie ein Wildcardzeichen innerhalb des Werts angeben, sucht Get-Help nur nach Befehlen, die dem von Ihnen bereitgestellten Muster entsprechen. Es führt keine Volltextsuche durch. Der folgende Befehl gibt keine Ergebnisse zurück.

help pr*cess

PowerShell generiert einen Fehler, wenn Sie einen Wert angeben, der mit einem Gedankenstrich beginnt, ohne ihn in Anführungszeichen einzuschließen, da er ihn als Parameternamen interpretiert. Für das Cmdlet Get-Help ist kein solcher Parametername vorhanden.

help -process

Wenn Sie versuchen, nach Befehlen zu suchen, die mit -processenden, müssen Sie am Anfang des Werts eine * hinzufügen.

help *-process

Wenn Sie nach PowerShell-Befehlen mit Get-Helpsuchen, ist es besser, vage und nicht zu spezifisch zu sein.

Wenn Sie vorher nach process gesucht haben, lieferten die Ergebnisse nur Befehle, die process in ihrem Namen enthalten. Wenn Sie jedoch nach processessuchen, werden keine Übereinstimmungen für Befehlsnamen gefunden. Wie bereits erwähnt, führt die Hilfe, wenn keine Übereinstimmungen gefunden werden, eine umfassende Volltextsuche aller Hilfeartikel in Ihrem System durch und gibt diese Ergebnisse zurück. Diese Art von Suche erzeugt häufig mehr Ergebnisse als erwartet, einschließlich Informationen, die für Sie nicht relevant sind.

help processes
Name                              Category  Module                    Synops
----                              --------  ------                    ------
Disconnect-PSSession              Cmdlet    Microsoft.PowerShell.Core Dis...
Enter-PSHostProcess               Cmdlet    Microsoft.PowerShell.Core Con...
ForEach-Object                    Cmdlet    Microsoft.PowerShell.Core Per...
Get-PSHostProcessInfo             Cmdlet    Microsoft.PowerShell.Core Get...
Get-PSSessionConfiguration        Cmdlet    Microsoft.PowerShell.Core Get...
New-PSSessionOption               Cmdlet    Microsoft.PowerShell.Core Cre...
New-PSTransportOption             Cmdlet    Microsoft.PowerShell.Core Cre...
Out-Host                          Cmdlet    Microsoft.PowerShell.Core Sen...
Start-Job                         Cmdlet    Microsoft.PowerShell.Core Sta...
Where-Object                      Cmdlet    Microsoft.PowerShell.Core Sel...
Debug-Process                     Cmdlet    Microsoft.PowerShell.M... Deb...
Get-Process                       Cmdlet    Microsoft.PowerShell.M... Get...
Get-WmiObject                     Cmdlet    Microsoft.PowerShell.M... Get...
Start-Process                     Cmdlet    Microsoft.PowerShell.M... Sta...
Stop-Process                      Cmdlet    Microsoft.PowerShell.M... Sto...
Wait-Process                      Cmdlet    Microsoft.PowerShell.M... Wai...
Clear-Variable                    Cmdlet    Microsoft.PowerShell.U... Del...
Convert-String                    Cmdlet    Microsoft.PowerShell.U... For...
ConvertFrom-Csv                   Cmdlet    Microsoft.PowerShell.U... Con...
ConvertFrom-Json                  Cmdlet    Microsoft.PowerShell.U... Con...
ConvertTo-Html                    Cmdlet    Microsoft.PowerShell.U... Con...
ConvertTo-Xml                     Cmdlet    Microsoft.PowerShell.U... Cre...
Debug-Runspace                    Cmdlet    Microsoft.PowerShell.U... Sta...
Export-Csv                        Cmdlet    Microsoft.PowerShell.U... Con...
Export-FormatData                 Cmdlet    Microsoft.PowerShell.U... Sav...
Format-List                       Cmdlet    Microsoft.PowerShell.U... For...
Format-Table                      Cmdlet    Microsoft.PowerShell.U... For...
Get-Unique                        Cmdlet    Microsoft.PowerShell.U... Ret...
Group-Object                      Cmdlet    Microsoft.PowerShell.U... Gro...
Import-Clixml                     Cmdlet    Microsoft.PowerShell.U... Imp...
Import-Csv                        Cmdlet    Microsoft.PowerShell.U... Cre...
Measure-Object                    Cmdlet    Microsoft.PowerShell.U... Cal...
Out-File                          Cmdlet    Microsoft.PowerShell.U... Sen...
Out-GridView                      Cmdlet    Microsoft.PowerShell.U... Sen...
Select-Object                     Cmdlet    Microsoft.PowerShell.U... Sel...
Set-Variable                      Cmdlet    Microsoft.PowerShell.U... Set...
Sort-Object                       Cmdlet    Microsoft.PowerShell.U... Sor...
Tee-Object                        Cmdlet    Microsoft.PowerShell.U... Sav...
Trace-Command                     Cmdlet    Microsoft.PowerShell.U... Con...
Write-Information                 Cmdlet    Microsoft.PowerShell.U... Spe...
Export-BinaryMiLog                Cmdlet    CimCmdlets                Cre...
Get-CimAssociatedInstance         Cmdlet    CimCmdlets                Ret...
Get-CimInstance                   Cmdlet    CimCmdlets                Get...
Import-BinaryMiLog                Cmdlet    CimCmdlets                Use...
Invoke-CimMethod                  Cmdlet    CimCmdlets                Inv...
New-CimInstance                   Cmdlet    CimCmdlets                Cre...
Remove-CimInstance                Cmdlet    CimCmdlets                Rem...
Set-CimInstance                   Cmdlet    CimCmdlets                Mod...
Compress-Archive                  Function  Microsoft.PowerShell.A... Cre...
Get-Counter                       Cmdlet    Microsoft.PowerShell.D... Get...
Invoke-WSManAction                Cmdlet    Microsoft.WSMan.Manage... Inv...
Remove-WSManInstance              Cmdlet    Microsoft.WSMan.Manage... Del...
Get-WSManInstance                 Cmdlet    Microsoft.WSMan.Manage... Dis...
New-WSManInstance                 Cmdlet    Microsoft.WSMan.Manage... Cre...
Set-WSManInstance                 Cmdlet    Microsoft.WSMan.Manage... Mod...
about_Arithmetic_Operators        HelpFile
about_Arrays                      HelpFile
about_Environment_Variables       HelpFile
about_Execution_Policies          HelpFile
about_Functions                   HelpFile
about_Jobs                        HelpFile
about_Logging                     HelpFile
about_Methods                     HelpFile
about_Objects                     HelpFile
about_Pipelines                   HelpFile
about_Preference_Variables        HelpFile
about_Remote                      HelpFile
about_Remote_Jobs                 HelpFile
about_Session_Configuration_Files HelpFile
about_Simplified_Syntax           HelpFile
about_Switch                      HelpFile
about_Variables                   HelpFile
about_Variable_Provider           HelpFile
about_Windows_PowerShell_5.1      HelpFile
about_WQL                         HelpFile
about_WS-Management_Cmdlets       HelpFile
about_Foreach-Parallel            HelpFile
about_Parallel                    HelpFile
about_Sequence                    HelpFile

Wenn Sie nach processgesucht haben, wurden 12 Ergebnisse zurückgegeben. Bei der Suche nach processeswurden jedoch 78 Ergebnisse erzielt. Wenn ihre Suche nur eine Übereinstimmung findet, zeigt Get-Help den Hilfeinhalt an, anstatt die Suchergebnisse aufzulisten.

help *hotfix*
NAME
    Get-HotFix

SYNOPSIS
    Gets the hotfixes that are installed on local or remote computers.


SYNTAX
    Get-HotFix [-ComputerName <System.String[]>] [-Credential
    <System.Management.Automation.PSCredential>] [-Description
    <System.String[]>] [<CommonParameters>]

    Get-HotFix [[-Id] <System.String[]>] [-ComputerName <System.String[]>]
    [-Credential <System.Management.Automation.PSCredential>]
    [<CommonParameters>]


DESCRIPTION
    > This cmdlet is only available on the Windows platform. The
    `Get-HotFix` cmdlet uses the Win32_QuickFixEngineering WMI class to
    list hotfixes that are installed on the local computer or specified
    remote computers.


RELATED LINKS
    Online Version: https://learn.microsoft.com/powershell/module/microsoft.
    powershell.management/get-hotfix?view=powershell-5.1&WT.mc_id=ps-gethelp
    about_Arrays
    Add-Content
    Get-ComputerRestorePoint
    Get-Credential
    Win32_QuickFixEngineering class

REMARKS
    To see the examples, type: "Get-Help Get-HotFix -Examples".
    For more information, type: "Get-Help Get-HotFix -Detailed".
    For technical information, type: "Get-Help Get-HotFix -Full".
    For online help, type: "Get-Help Get-HotFix -Online"

Sie können auch Befehle finden, die keine Hilfeartikel mit Get-Helpenthalten, obwohl diese Funktion nicht allgemein bekannt ist. Die more-Funktion ist einer der Befehle, die keinen Hilfeartikel enthalten. Um zu bestätigen, dass Sie Befehle mit Get-Help finden können, die keine Hilfeartikel enthalten, verwenden Sie die funktion help, um morezu finden.

help *more*

Die Suche hat nur eine Übereinstimmung gefunden, sodass die grundlegenden Syntaxinformationen zurückgegeben wurden, die angezeigt werden, wenn ein Befehl keinen Hilfeartikel enthält.

NAME
    more

SYNTAX
    more [[-paths] <string[]>]

ALIASES
    None

REMARKS
    None

Das PowerShell-Hilfesystem enthält auch konzeptionelle Hilfeartikel zu Informationen. Sie müssen den Hilfeinhalt auf Ihrem System aktualisieren, um die Artikel zu Informationen zu erhalten. Weitere Informationen finden Sie im Abschnitt Aktualisieren der Hilfe dieses Kapitels.

Verwenden Sie den folgenden Befehl, um eine Liste aller About Hilfeartikel auf Ihrem System anzuzeigen.

help About_*

Wenn Sie die Ergebnisse auf einen Infoartikel zu beschränken, zeigt Get-Help den Inhalt dieses Artikels an.

help about_Updatable_Help

Aktualisieren der Hilfe

Weiter oben in diesem Kapitel haben Sie die PowerShell-Hilfeartikel auf Ihrem Computer aktualisiert, wenn Sie das cmdlet Get-Help zum ersten Mal ausgeführt haben. Sie sollten das Cmdlet Update-Help regelmäßig auf Ihrem Computer ausführen, um Aktualisierungen für den Hilfeinhalt zu erhalten.

Wichtig

In Windows PowerShell 5.1 müssen Sie Update-Help als Administrator in einer PowerShell-Sitzung mit erhöhten Rechten ausführen.

Im folgenden Beispiel lädt Update-Help den PowerShell-Hilfeinhalt für alle Module herunter, die auf Ihrem Computer installiert sind. Sie sollten den Parameter Force verwenden, um sicherzustellen, dass Sie die neueste Version des Hilfeinhalts herunterladen.

Update-Help -Force

Wie in den folgenden Ergebnissen gezeigt, hat ein Modul einen Fehler zurückgegeben. Fehler sind nicht ungewöhnlich und treten in der Regel auf, wenn der Autor des Moduls keine aktualisierbare Hilfe richtig konfiguriert.

Update-Help : Failed to update Help for the module(s) 'BitsTransfer' with UI
culture(s) {en-US} : Unable to retrieve the HelpInfo XML file for UI culture
en-US. Make sure the HelpInfoUri property in the module manifest is valid or
check your network connection and then try the command again.
At line:1 char:1
+ Update-Help
+ ~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [Update-Help], Except
   ion
    + FullyQualifiedErrorId : UnableToRetrieveHelpInfoXml,Microsoft.PowerShe
   ll.Commands.UpdateHelpCommand

Update-Help erfordert Internetzugriff, um den Hilfeinhalt herunterzuladen. Wenn Ihr Computer keinen Internetzugang hat, verwenden Sie das Cmdlet Save-Help auf einem Computer mit Internetzugang, um den aktualisierten Hilfeinhalt herunterzuladen und zu speichern. Verwenden Sie dann den SourcePath Parameter von Update-Help, um den Speicherort des gespeicherten aktualisierten Hilfeinhalts anzugeben.

Get-Command

Get-Command ist ein weiterer mehrfunktionsfähiger Befehl, mit dem Sie Befehle finden können. Wenn Sie Get-Command ohne Parameter ausführen, wird eine Liste aller PowerShell-Befehle auf Ihrem System zurückgegeben. Sie können auch Get-Command verwenden, um befehlssyntax ähnlich wie Get-Helpabzurufen.

Wie bestimmen Sie die Syntax für Get-Command? Sie können Get-Help verwenden, um den Hilfeartikel für Get-Commandanzuzeigen, wie im Abschnitt Get-Help dieses Kapitels gezeigt. Sie können auch Get-Command mit dem parameter Syntax verwenden, um die Syntax für jeden Befehl anzuzeigen. Mit dieser Tastenkombination können Sie schnell ermitteln, wie sie einen Befehl verwenden, ohne durch den Hilfeinhalt zu navigieren.

Get-Command -Name Get-Command -Syntax

Die Verwendung von Get-Command mit dem parameter Syntax bietet eine präzisere Ansicht der Syntax, die die Parameter und deren Werttypen anzeigt, ohne die spezifischen zulässigen Werte wie Get-Help aufzulisten.

Get-Command [[-ArgumentList] <Object[]>] [-Verb <string[]>]
[-Noun <string[]>] [-Module <string[]>]
[-FullyQualifiedModule <ModuleSpecification[]>] [-TotalCount <int>]
[-Syntax] [-ShowCommandInfo] [-All] [-ListImported]
[-ParameterName <string[]>] [-ParameterType <PSTypeName[]>]
[<CommonParameters>]

Get-Command [[-Name] <string[]>] [[-ArgumentList] <Object[]>]
[-Module <string[]>] [-FullyQualifiedModule <ModuleSpecification[]>]
[-CommandType <CommandTypes>] [-TotalCount <int>] [-Syntax]
[-ShowCommandInfo] [-All] [-ListImported] [-ParameterName <string[]>]
[-ParameterType <PSTypeName[]>] [<CommonParameters>]

Wenn Sie ausführlichere Informationen zur Verwendung eines Befehls benötigen, verwenden Sie Get-Help.

help Get-Command -Full

Der SYNTAX Abschnitt von Get-Help bietet eine benutzerfreundlichere Anzeige, indem aufgezählte Werte für Parameter erweitert werden. Es zeigt Ihnen die tatsächlichen Werte, die Sie verwenden können, wodurch die verfügbaren Optionen leichter zu verstehen sind.

...
    Get-Command [[-Name] <System.String[]>] [[-ArgumentList]
    <System.Object[]>] [-All] [-CommandType {Alias | Function | Filter |
    Cmdlet | ExternalScript | Application | Script | Workflow |
    Configuration | All}] [-FullyQualifiedModule
    <Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported]
    [-Module <System.String[]>] [-ParameterName <System.String[]>]
    [-ParameterType <System.Management.Automation.PSTypeName[]>]
    [-ShowCommandInfo] [-Syntax] [-TotalCount <System.Int32>]
    [<CommonParameters>]

    Get-Command [[-ArgumentList] <System.Object[]>] [-All]
    [-FullyQualifiedModule
    <Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported]
    [-Module <System.String[]>] [-Noun <System.String[]>] [-ParameterName
    <System.String[]>] [-ParameterType
    <System.Management.Automation.PSTypeName[]>] [-ShowCommandInfo]
    [-Syntax] [-TotalCount <System.Int32>] [-Verb <System.String[]>]
    [<CommonParameters>]
...

Im Abschnitt PARAMETERS der Hilfe für Get-Command wird angezeigt, dass die Parameter Name, Substantivund Verb Wildcardzeichen akzeptieren.

...
    -Name <System.String[]>
        Specifies an array of names. This cmdlet gets only commands that
        have the specified name. Enter a name or name pattern. Wildcard
        characters are permitted.

        To get commands that have the same name, use the All parameter. When
        two commands have the same name, by default, `Get-Command` gets the
        command that runs when you type the command name.

        Required?                    false
        Position?                    0
        Default value                None
        Accept pipeline input?       True (ByPropertyName, ByValue)
        Accept wildcard characters?  true

    -Noun <System.String[]>
        Specifies an array of command nouns. This cmdlet gets commands,
        which include cmdlets, functions, and aliases, that have names that
        include the specified noun. Enter one or more nouns or noun
        patterns. Wildcard characters are permitted.

        Required?                    false
        Position?                    named
        Default value                None
        Accept pipeline input?       True (ByPropertyName)
        Accept wildcard characters?  true
    -Verb <System.String[]>
        Specifies an array of command verbs. This cmdlet gets commands,
        which include cmdlets, functions, and aliases, that have names that
        include the specified verb. Enter one or more verbs or verb
        patterns. Wildcard characters are permitted.

        Required?                    false
        Position?                    named
        Default value                None
        Accept pipeline input?       True (ByPropertyName)
        Accept wildcard characters?  true
...

Im folgenden Beispiel wird das * Wildcardzeichen mit dem Wert für den Parameter Name von Get-Command verwendet.

Get-Command -Name *service*

Wenn Sie Platzhalterzeichen mit dem parameter Name von Get-Commandverwenden, werden PowerShell-Befehle und systemeigene Befehle zurückgegeben, wie in den folgenden Ergebnissen dargestellt.


CommandType     Name                                               Version
-----------     ----                                               -------
Function        Get-NetFirewallServiceFilter                       2.0.0.0
Function        Set-NetFirewallServiceFilter                       2.0.0.0
Cmdlet          Get-Service                                        3.1.0.0
Cmdlet          New-Service                                        3.1.0.0
Cmdlet          New-WebServiceProxy                                3.1.0.0
Cmdlet          Restart-Service                                    3.1.0.0
Cmdlet          Resume-Service                                     3.1.0.0
Cmdlet          Set-Service                                        3.1.0.0
Cmdlet          Start-Service                                      3.1.0.0
Cmdlet          Stop-Service                                       3.1.0.0
Cmdlet          Suspend-Service                                    3.1.0.0
Application     SecurityHealthService.exe                          10.0.2...
Application     SensorDataService.exe                              10.0.2...
Application     services.exe                                       10.0.2...
Application     services.msc                                       0.0.0.0
Application     TieringEngineService.exe                           10.0.2...
Application     Windows.WARP.JITService.exe                        10.0.2...

Sie können die Ergebnisse von Get-Command mithilfe des CommandType-Parameters auf PowerShell-Befehle beschränken.

Get-Command -Name *service* -CommandType Cmdlet, Function, Alias, Script

Eine weitere Option könnte es sein, entweder den Verb-Parameter oder den Substantiv-Parameter oder beide zu verwenden, da nur PowerShell-Befehle Verben und Substantive haben.

Im folgenden Beispiel werden Get-Command verwendet, um Befehle auf Ihrem Computer zu finden, die mit Prozessen arbeiten. Verwenden Sie den Nomen Parameter, und geben Sie Process als Wert an.

Get-Command -Noun Process
CommandType     Name                                               Version
-----------     ----                                               -------
Cmdlet          Debug-Process                                      3.1.0.0
Cmdlet          Get-Process                                        3.1.0.0
Cmdlet          Start-Process                                      3.1.0.0
Cmdlet          Stop-Process                                       3.1.0.0
Cmdlet          Wait-Process                                       3.1.0.0

Zusammenfassung

In diesem Kapitel haben Sie erfahren, wie Sie Befehle mit Get-Help und Get-Commandfinden. Außerdem haben Sie erfahren, wie Sie das Hilfesystem verwenden, um zu verstehen, wie Sie Befehle verwenden können, sobald Sie sie gefunden haben. Darüber hinaus haben Sie erfahren, wie Sie das Hilfesystem auf Ihrem Computer aktualisieren, wenn neue Hilfeinhalte verfügbar sind.

Rezension

  1. Ist der Parameter DisplayName von Get-Service positionell?
  2. Über wie viele Parametersätze verfügt das Cmdlet Get-Process?
  3. Welche PowerShell-Befehle sind für das Arbeiten mit Ereignisprotokollen vorhanden?
  4. Was ist der PowerShell-Befehl zum Zurückgeben einer Liste von PowerShell-Prozessen, die auf Ihrem Computer ausgeführt werden?
  5. Wie aktualisieren Sie die auf Ihrem Computer gespeicherten PowerShell-Hilfeinhalte?

Referenzen

Weitere Informationen zu den in diesem Kapitel behandelten Konzepten finden Sie in den folgenden PowerShell-Hilfeartikeln.

Nächste Schritte

Im nächsten Kapitel erfahren Sie mehr über Objekte, Eigenschaften, Methoden und das cmdlet Get-Member.