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 verwaltet, wobei der erste, aber mit einem wesentlichen Unterschied gespiegelt wurde: Teilnehmer hatten Zugriff auf einen Offlinecomputer, der mit PowerShell ausgestattet ist. 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 an die Antworten kommen können.

Die ergebnisse, die in den Ergebnissen der beiden Tests beobachtet wurden, waren, weil Experten tausende von PowerShell-Befehlen nicht merken. Stattdessen verwenden sie das Hilfesystem in PowerShell, sodass sie befehle bei Bedarf ermitteln und erlernen können.

Der Erfolg von PowerShell ist der Schlüssel zum Erfolg mit PowerShell.

Ich hörte Jeffrey Snover, der Schöpfer von PowerShell, eine ähnliche Geschichte mehrmals.

Erkennbarkeit

Kompilierte Befehle in PowerShell werden als Cmdlets bezeichnet, die als "command-let" und nicht "CMD-let" ausgesprochen werden. Die Benennungskonvention für Cmdlets folgt einem einzigartigen Verb-Nomen-Format , um sie leicht auffindbar zu machen. Beispielsweise ist das Cmdlet, um zu bestimmen, Get-Process 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 (wird in Kapitel 3 behandelt)

Ich bin oft gefragt: "Wie können Sie herausfinden, welche Befehle in PowerShell vorhanden sind?". Sowohl als Get-Command auch Get-Help wertvolle Ressourcen zum Ermitteln und Verständnis von Befehlen in PowerShell.

Get-Help

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

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 Befehle suchen, aber in einer anderen und indirekteren Weise im Vergleich zu Get-Command.

Wenn Sie Get-Help Befehle suchen, 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 Get-Help Sie den Hilfeinhalt für das Get-Help Cmdlet anzeigen.

Get-Help -Name Get-Help

Ab PowerShell Version 3.0 werden die Hilfeinhalte nicht mit dem Betriebssystem vorinstalliert. Wenn Sie zum ersten Mal ausgeführt werden Get-Help , 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 Update-Help Cmdlet 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 Update-Help Sie sie 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 was Sie standardmäßig sehen, nicht der gesamte Hilfeartikel.

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 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

Beachten Sie beim Überprüfen des SYNTAX-AbschnittsGet-Help, dass die Informationen sechsmal wiederholt werden. Jeder dieser Blöcke ist ein einzelner Parametersatz, der angibt, dass das Get-Help Cmdlet sechs verschiedene Sätze von Parametern 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. Beispielsweise können Sie die Parameter Get-Help "Vollständig" und "Detailliert" nicht zusammen verwenden, da sie zu verschiedenen Parametersätzen gehören.

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

  • Vollständig
  • Detailliert
  • Beispiele
  • Online
  • Parameter
  • ShowWindow

Die Befehlssyntax

Wenn Sie mit PowerShell noch nicht fertig sind, kann das Verständnis der kryptischen Informationen , die durch eckige und winkelige Klammern gekennzeichnet sind, im ABSCHNITT SYNTAX als ü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 folgende 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.
  • Ein leerer Satz von eckigen Klammern nach einem Datentyp, z <string[]>. B. , gibt an, dass der Parameter mehrere Werte akzeptieren kann, die als Array oder ein Auflistungsobjekt ü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. Die Positionsinformationen für einen Parameter finden Sie im Abschnitt "PARAMETERS " des Hilfeartikels eines Befehls. Wenn Sie Parameternamen explizit angeben, können Sie die Parameter in beliebiger Reihenfolge verwenden.

Für das Get-EventLog Cmdlet lautet der erste Parameter im ersten Parametersatz LogName. LogName ist in eckige Klammern eingeschlossen und gibt an, 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 verfügt InstanceId über ein eigenes Paar eckige Klammern, 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.

Switch-Parameter

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 Switch-Parameter angeben, lautet trueder Wert . Wenn Sie keinen Switch-Parameter angeben, lautet falseder Wert .

Der zweite Parametersatz enthält einen List-Parameter , bei dem es sich um einen Switch-Parameter handelt. Wenn Sie den List-Parameter angeben, wird eine Liste von Ereignisprotokollen 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 er mit dem Parameter "Full" verwendet Get-Help wird, sodass 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
  • PARAMETERS
  • EINGABEN
  • AUSGABEN
  • HINWEISE
  • BEISPIELE
  • VERWANDTE LINKS

Durch Angeben des Parameters "Full" mit dem Get-Help Cmdlet 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 Get-Help Befehl anzuzeigen, bemerkten Sie wahrscheinlich, dass die Ausgabe zu schnell gescrollt wurde, um sie zu lesen.

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" und zeigt jeweils eine Seite mit Hilfeinhalten an. Ich empfehle die Verwendung der help Funktion anstelle des Get-Help Cmdlets, da sie eine bessere Benutzererfahrung bietet und weniger einzugeben ist.

Hinweis

Der ISE unterstützt die Verwendung more.comnicht, sodass die Ausführung help auf die gleiche Weise funktioniert wie Get-Help.

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 Get-Help Cmdlet, die zweite verwendet die help Funktion, und in der dritten Zeile wird der Parameter Name bei Verwendung der help Funktion weggelassen. 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 jeweils die Ausgabe einer Seite anzeigen. Wenn Sie die help Funktion verwenden, drücken Sie die LEERTASTE , um die nächste Seite des Inhalts anzuzeigen, oder Q , um den Vorgang zu beenden. Wenn Sie einen Befehl beenden müssen, der interaktiv in PowerShell ausgeführt wird, drücken Sie STRG+C.

Verwenden Sie den Parameter , um schnell Informationen zu einem bestimmten Parameter zu finden. 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 help Funktion mit dem Parameter Parameter verwendet, um Informationen aus dem Hilfeartikel für den Parameter Name zurückzugeben Get-Help.

help Get-Help -Parameter Name

Die Hilfeinformationen zeigen, dass der Name-Parameter positional ist und bei der Verwendung in der ersten Position (Position Null) angegeben werden muss.

-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 Name-Parameter erwartet einen Zeichenfolgenwert, der durch den <String> Datentyp neben dem Parameternamen identifiziert wird.

Es gibt mehrere andere Parameter, mit Get-Help denen Sie eine Teilmenge eines Hilfeartikels zurückgeben können. 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

In der Regel verwende ich help <command name> mit dem Parameter Full oder Online. Wenn Sie nur an den Beispielen interessiert sind, verwenden Sie den Parameter "Examples ". Wenn Sie nur interesse an einem bestimmten Parameter haben, 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 Parameter ShowWindow weist jedoch einen bekannten Fehler auf, der die Anzeige des gesamten Hilfeartikels möglicherweise verhindert. Der Parameter ShowWindow erfordert auch ein Betriebssystem mit einer grafischen Benutzeroberfläche (GUI). Es wird ein Fehler zurückgegeben, wenn Sie versuchen, ihn unter Windows Server Core zu verwenden.

Wenn Sie über Internetzugriff verfügen, können Sie stattdessen den Online-Parameter verwenden. Der Parameter "Online" öffnet den Hilfeartikel in Ihrem Standardwebbrowser. Die Onlineinhalte 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"

Um Befehle mit Get-Helpzu finden, geben Sie einen Suchbegriff an, der von Sternchen (*) Wildcardzeichen für den Wert des Name-Parameters umgeben ist. Im folgenden Beispiel wird der Name-Parameter positional 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 kein Befehl gefunden werden kann, der dem von Ihnen angegebenen Wert entspricht, führt er eine Volltextsuche nach diesem Wert durch. Das folgende Beispiel erzeugt dieselben Ergebnisse wie das Angeben des * Wildcardzeichens auf jedem Ende von process.

help process

Wenn Sie ein Wildcardzeichen innerhalb des Werts angeben, wird nur nach Befehlen gesucht, Get-Help die dem angegebenen 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 Get-Help Cmdlet ist kein solcher Parametername vorhanden.

help -process

Wenn Sie versuchen, nach Befehlen zu suchen, die enden, -processmüssen Sie am Anfang des Werts einen * Wert hinzufügen.

help *-process

Wenn Sie nach PowerShell-Befehlen suchen, Get-Helpist es besser, vage statt zu spezifisch zu sein.

Wenn Sie zuvor gesucht haben process , haben die Ergebnisse nur Befehle zurückgegeben, die in ihrem Namen enthalten sind process . Wenn Sie jedoch danach 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 danach gesucht haben process, wurden 12 Ergebnisse zurückgegeben. Bei der Suche nach der Suche processeshat es jedoch 78 Ergebnisse erzielt. Wenn ihre Suche nur eine Übereinstimmung findet, wird der Hilfeinhalt angezeigt, Get-Help 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, bei Get-Helpdenen Hilfeartikel fehlen, 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 finden können, die Get-Help keine Hilfeartikel enthalten, verwenden Sie die help Funktion, um zu suchen more.

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 Artikel zu Hilfeartikeln. Sie müssen den Hilfeinhalt auf Ihrem System aktualisieren, um die Artikel zu erhalten. Weitere Informationen finden Sie im Abschnitt "Aktualisieren von Hilfe " in diesem Kapitel.

Verwenden Sie den folgenden Befehl, um eine Liste aller Infoartikel zu Ihrem System zurückzugeben.

help About_*

Wenn Sie die Ergebnisse auf einen Artikel "Info " beschränken, Get-Help wird der Inhalt dieses Artikels angezeigt.

help about_Updatable_Help

Aktualisieren der Hilfe

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

Wichtig

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

Im folgenden Beispiel laden Sie den PowerShell-Hilfeinhalt für alle Module herunter, Update-Help 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 Save-Help Cmdlet auf einem Computer mit Internetzugang, um den aktualisierten Hilfeinhalt herunterzuladen und zu speichern. Verwenden Sie dann den SourcePath-ParameterUpdate-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 ohne Parameter ausgeführt werden Get-Command , wird eine Liste aller PowerShell-Befehle auf Ihrem System zurückgegeben. Sie können auch befehlssyntax Get-Command ähnlich wie Get-Help.

Wie bestimmen Sie die Syntax für Get-Command? Sie können den Hilfeartikel für Get-Help Get-Command, wie im Abschnitt "Get-Help " dieses Kapitels gezeigt, anzeigen. Sie können auch Get-Command mit dem Syntaxparameter die Syntax für einen beliebigen Befehl anzeigen. 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 Get-Command mit dem Syntaxparameter bietet eine präzisere Ansicht der Syntax, die die Parameter und deren Werttypen anzeigt, ohne die spezifischen zulässigen Werte aufzulisten, z Get-Help . B.

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 bietet Get-Help eine benutzerfreundlichere Anzeige durch Erweitern von aufgezählten Werten für Parameter. 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 wird Get-Command angezeigt, dass die Parameter "Name", "Noun" und "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-Commandverwendet.

Get-Command -Name *service*

Wenn Sie Platzhalterzeichen mit dem Parameter Get-Command"Name" verwenden, 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 PowerShell-Befehlen mithilfe des Get-Command CommandType-Parameters einschränken.

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

Eine weitere Option ist möglicherweise die Verwendung des Verb - oder Nomenparameters oder beides, da nur PowerShell-Befehle Verben und Substantive aufweisen.

Im folgenden Beispiel werden Get-Command Befehle auf Ihrem Computer gesucht, die mit Prozessen arbeiten. Verwenden Sie den Noun-Parameter , und geben Sie als Wert an Process .

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 gelernt, wie Sie Befehle mit Get-Help und .Get-Command 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.

Überprüfung

  1. Ist der Parameter DisplayName von Get-Service positionell?
  2. Wie viele Parametersätze hat das Cmdlet Get-Process?
  3. Welche PowerShell-Befehle gibt es für das Arbeiten mit Ereignisprotokollen?
  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?

References

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 Get-Member Cmdlet.