Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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-Help
finden 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.com
nicht, sodass das Ausführen von help
auf die gleiche Weise wie Get-Help
funktioniert.
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-Help
suchen 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 process
angegeben 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 -process
enden, müssen Sie am Anfang des Werts eine *
hinzufügen.
help *-process
Wenn Sie nach PowerShell-Befehlen mit Get-Help
suchen, 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 processes
suchen, 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 process
gesucht haben, wurden 12 Ergebnisse zurückgegeben. Bei der Suche nach processes
wurden 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-Help
enthalten, 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 more
zu 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-Help
abzurufen.
Wie bestimmen Sie die Syntax für Get-Command
? Sie können Get-Help
verwenden, um den Hilfeartikel für Get-Command
anzuzeigen, 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-Command
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 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-Command
finden. 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
- Ist der Parameter DisplayName von
Get-Service
positionell? - Über wie viele Parametersätze verfügt das Cmdlet
Get-Process
? - Welche PowerShell-Befehle sind für das Arbeiten mit Ereignisprotokollen vorhanden?
- Was ist der PowerShell-Befehl zum Zurückgeben einer Liste von PowerShell-Prozessen, die auf Ihrem Computer ausgeführt werden?
- 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.
- Get-Help
- Get-Command
- Aktualisierungshilfe
- Hilfe zum Speichern
- über_Aktualisierbare_Hilfe
- über_Befehlssyntax
Nächste Schritte
Im nächsten Kapitel erfahren Sie mehr über Objekte, Eigenschaften, Methoden und das cmdlet Get-Member
.