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-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
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 true
der Wert . Wenn Sie keinen Switch-Parameter angeben, lautet false
der 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.com
nicht, 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-Help
zu 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, -process
müssen Sie am Anfang des Werts einen *
Wert hinzufügen.
help *-process
Wenn Sie nach PowerShell-Befehlen suchen, Get-Help
ist 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 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 danach gesucht haben process
, wurden 12 Ergebnisse zurückgegeben. Bei der Suche nach der Suche processes
hat 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-Help
denen 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-Command
verwendet.
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
- Ist der Parameter DisplayName von
Get-Service
positionell? - Wie viele Parametersätze hat das Cmdlet
Get-Process
? - Welche PowerShell-Befehle gibt es für das Arbeiten mit Ereignisprotokollen?
- 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?
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.