Hoofdstuk 2 - Het Help-systeem

Twee groepen IT-professionals kregen een geschreven test zonder toegang tot een computer om hun vaardigheidsniveau met PowerShell te bepalen. PowerShell-beginners zijn in één groep en experts in een andere geplaatst. Op basis van de resultaten van de test leek er niet veel verschil in het vaardigheidsniveau tussen de twee groepen. Beide groepen kregen een tweede test die vergelijkbaar is met de eerste. Deze keer kregen ze toegang tot een computer met PowerShell die geen toegang tot internet had. De resultaten van de tweede test vertoonden een enorm verschil in het vaardigheidsniveau tussen de twee groepen. Experts kennen de antwoorden niet altijd, maar ze weten hoe ze de antwoorden kunnen bepalen.

Wat was het verschil in de resultaten van de eerste en tweede test tussen deze twee groepen?

De verschillen die in deze twee tests werden waargenomen, waren omdat experts niet onthouden hoe ze duizenden opdrachten in PowerShell kunnen gebruiken. Ze leren hoe ze het Help-systeem in PowerShell zeer goed kunnen gebruiken. Hierdoor kunnen ze de benodigde opdrachten vinden wanneer dat nodig is en hoe ze deze opdrachten kunnen gebruiken zodra ze ze hebben gevonden.

Ik heb Jeffrey Snover, de uitvinder van PowerShell, een vergelijkbaar verhaal gehoord.

Het helpsysteem beheersen is de sleutel om succesvol te zijn met PowerShell.

Vindbaarheid

Gecompileerde opdrachten in PowerShell worden cmdlets genoemd. Cmdlet wordt uitgesproken als 'command-let' (niet CMD-let). Namen van cmdlets hebben de vorm van enkelvoudige opdrachten 'Werkwoord-Zelfstandig naamwoord' om ze gemakkelijk te detecteren. De cmdlet voor het bepalen van de processen die worden uitgevoerd, is Get-Process bijvoorbeeld de cmdlet voor het ophalen van een lijst met services en hun statussen Get-Service. Er zijn andere typen opdrachten in PowerShell, zoals aliassen en functies die verderop in dit boek worden behandeld. De term PowerShell-opdracht is een algemene term die vaak wordt gebruikt om te verwijzen naar elk type opdracht in PowerShell, ongeacht of het een cmdlet, functie of alias is.

De drie kern-cmdlets in PowerShell

  • Get-Command
  • Get-Help
  • Get-Member (behandeld in hoofdstuk 3)

Een vraag die ik vaak heb gesteld, is hoe weet u wat de opdrachten zijn in PowerShell? Beide Get-Command en Get-Help kunnen worden gebruikt om de opdrachten te bepalen.

Get-Help

Get-Help is een opdracht voor meerdere doeleinden. Get-Help helpt u te leren hoe u opdrachten gebruikt zodra u ze hebt gevonden. Get-Help kan ook worden gebruikt om opdrachten te vinden, maar op een andere en meer indirecte manier in vergelijking met Get-Command.

Wanneer Get-Help wordt gebruikt om opdrachten te vinden, wordt eerst gezocht naar jokertekenovereenkomsten met opdrachtnamen op basis van de opgegeven invoer. Als er geen overeenkomst wordt gevonden, wordt in de Help-onderwerpen zelf gezocht en wordt er een fout geretourneerd als er geen overeenkomst wordt gevonden. In tegenstelling tot populaire overtuigingen, Get-Help kan worden gebruikt om opdrachten te vinden die geen Help-onderwerpen hebben.

Het eerste wat u moet weten over het Help-systeem in PowerShell is het gebruik van de Get-Help cmdlet. De volgende opdracht wordt gebruikt om het Help-onderwerp voor Get-Helpweer te geven.

Get-Help -Name Get-Help
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 http://go.microsoft.com/fwlink/?LinkId=210614.
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"):

Vanaf PowerShell versie 3 wordt PowerShell niet geleverd met het besturingssysteem. De eerste keer Get-Help dat een opdracht wordt uitgevoerd, wordt het vorige bericht weergegeven. Als de help functie of man alias wordt gebruikt in plaats van de Get-Help cmdlet, ontvangt u deze prompt niet.

Als u ja beantwoordt door op Y te drukken, wordt de Update-Help cmdlet uitgevoerd. Hiervoor is standaard internettoegang vereist. Y kan worden opgegeven in hoofdletters of kleine letters.

Zodra de Help is gedownload en de update is voltooid, wordt het Help-onderwerp geretourneerd voor de opgegeven opdracht:

Get-Help -Name Get-Help

Neem even de tijd om dat voorbeeld op uw computer uit te voeren, bekijk de uitvoer en noteer hoe de gegevens zijn gegroepeerd:

  • NAAM
  • SAMENVATTING
  • SYNTAXIS
  • BESCHRIJVING
  • GERELATEERDE KOPPELINGEN
  • OPMERKINGEN

Zoals u kunt zien, kunnen Help-onderwerpen een enorme hoeveelheid informatie bevatten en dit is niet eens het hele Help-onderwerp.

Hoewel dit niet specifiek is voor PowerShell, is een parameter een manier om invoer voor een opdracht op te geven. Get-Help bevat veel parameters die kunnen worden opgegeven om het hele Help-onderwerp of een subset ervan te retourneren.

De syntaxissectie van het Help-onderwerp dat in de vorige set met resultaten wordt weergegeven, bevat een lijst met alle parameters voor Get-Help. Op het eerste gezicht worden dezelfde parameters zes verschillende keren weergegeven. Elk van deze verschillende blokken in de syntaxissectie is een parameterset. Dit betekent dat de Get-Help cmdlet zes verschillende parametersets heeft. Als u nader kijkt, ziet u dat ten minste één parameter verschilt in elk van de parametersets.

Parametersets sluiten elkaar wederzijds uit. Zodra een unieke parameter in een van de parametersets wordt gebruikt, kunnen alleen parameters in die parameterset worden gebruikt. De parameters Volledig en Gedetailleerd kunnen bijvoorbeeld niet tegelijkertijd worden opgegeven omdat ze zich in verschillende parametersets bevinden.

Elk van de volgende parameters bevinden zich in verschillende parametersets:

  • Volledig
  • Gedetailleerde
  • Voorbeelden
  • Online
  • Parameter
  • ShowWindow

Alle cryptische syntaxis, zoals vierkante haakjes en hoekhaken in de syntaxissectie, betekent iets maar wordt behandeld in bijlage A van dit boek. Hoewel belangrijk, is het leren van de cryptische syntaxis vaak moeilijk te behouden voor iemand die niet bekend is met PowerShell en deze mogelijk niet dagelijks gebruikt.

Zie bijlage A voor meer informatie over de cryptische syntaxis.

Voor beginners is er een eenvoudigere manier om dezelfde informatie te achterhalen, behalve in gewone taal.

Wanneer de parameter Volledig is Get-Help opgegeven, wordt het hele Help-onderwerp geretourneerd.

Get-Help -Name Get-Help -Full

Neem even de tijd om dat voorbeeld op uw computer uit te voeren, bekijk de uitvoer en noteer hoe de gegevens zijn gegroepeerd:

  • NAAM
  • SAMENVATTING
  • SYNTAXIS
  • BESCHRIJVING
  • PARAMETERS
  • INVOER
  • UITVOER
  • OPMERKINGEN
  • VOORBEELDEN
  • GERELATEERDE KOPPELINGEN

U ziet dat met behulp van de parameter Volledig verschillende extra secties zijn geretourneerd. Dit is de sectie PARAMETERS die meer informatie biedt dan de sectie cryptische SYNTAXIS.

De parameter Volledig is een schakelparameter. Een parameter waarvoor geen waarde is vereist, wordt een schakelparameter genoemd. Wanneer een switchparameter is opgegeven, is de waarde waar en wanneer dit niet het geval is, is de waarde onwaar.

Als u dit hoofdstuk in de PowerShell-console hebt doorlopen, hebt u gemerkt dat met de vorige opdracht het volledige Help-onderwerp wordt weergegeven dat u Get-Help op het scherm hebt gevlogen zonder dat u het kunt lezen. Er is een betere manier.

Helpis een functie die een functie met de naam morekrijgtGet-Help, een wrapper voor het more.com uitvoerbare bestand in Windows. In de PowerShell-console help vindt u één pagina met Help-informatie tegelijk. In de ISE werkt het op dezelfde manier als Get-Help. Mijn aanbeveling is om de help functie te gebruiken in plaats van de Get-Help cmdlet, omdat deze een betere ervaring biedt en het minder is om te typen.

Minder typen is echter niet altijd een goede zaak. Als u uw opdrachten opslaat als een script of deze met iemand anders deelt, moet u de volledige cmdlet- en parameternamen gebruiken. De volledige namen zijn zelfdocumenterend, waardoor ze gemakkelijker te begrijpen zijn. Denk na over de volgende persoon die uw opdrachten moet lezen en begrijpen. Het kan jij zijn. Uw collega's en toekomstige zelf zullen u bedanken.

Voer de volgende opdrachten uit in de PowerShell-console op uw Windows 10-testomgevingscomputer.

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

Zag u verschillen in de uitvoer van de eerder vermelde opdrachten toen u ze uitvoerde op uw Windows 10-testomgevingscomputer?

Er zijn geen andere verschillen dan de laatste twee opties die de resultaten één pagina tegelijk retourneren. De spatiebalk wordt gebruikt om de volgende pagina met inhoud weer te geven wanneer u de Help functie gebruikt en Ctrl+C annuleert opdrachten die worden uitgevoerd in de PowerShell-console.

In het eerste voorbeeld wordt de Get-Help cmdlet gebruikt, het tweede gebruikt de Help functie en het derde laat de parameter Name weg wanneer u de Help functie gebruikt. De naam is een positionele parameter en wordt in dat voorbeeld positioneel gebruikt. Dit betekent dat de waarde kan worden opgegeven zonder de parameternaam op te geven, zolang de waarde zelf op de juiste positie is opgegeven. Hoe weet ik in welke positie de waarde moet worden opgegeven? Door de Help te lezen, zoals wordt weergegeven in het volgende voorbeeld.

help Get-Help -Parameter Name
-Name <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 a word that doesn't match any help article titles, Get-Help displays a list of
    articles that include that word 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

U ziet dat in het vorige voorbeeld de parameter parameter is gebruikt met de Help-functie om alleen informatie te retourneren uit het Help-onderwerp voor de parameter Name . Dit is veel beknopter dan het handmatig doorzoeken van wat soms een honderd pagina-Help-onderwerp lijkt.

Op basis van deze resultaten kunt u zien dat de parameter Name positioneel is en moet worden opgegeven in positie nul (de eerste positie) wanneer deze positioneel wordt gebruikt. De volgorde waarin parameters zijn opgegeven, maakt niet uit of de parameternaam is opgegeven.

Een ander belangrijk stukje informatie is dat de parameter Name verwacht dat het gegevenstype voor de waarde één tekenreeks is, die wordt aangeduid door <String>. Als het meerdere tekenreeksen heeft geaccepteerd, wordt het gegevenstype weergegeven als <String[]>.

Soms wilt u het hele Help-onderwerp voor een opdracht niet weergeven. Er zijn een aantal andere parameters naast Full die kunnen worden opgegeven met Get-Help of Help. Voer de volgende opdrachten uit op uw Windows 10-testomgevingcomputer:

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

Normaal gesproken gebruik help <command name> ik met de parameter Volledig of Online . Als ik alleen geïnteresseerd ben in de voorbeelden, gebruik ik de parameter Voorbeelden en als ik alleen geïnteresseerd ben in een specifieke parameter, gebruik ik de parameter Parameter . De parameter ShowWindow opent het Help-onderwerp in een afzonderlijk doorzoekbaar venster dat op een andere monitor kan worden geplaatst als u meerdere beeldschermen hebt. Ik heb de parameter ShowWindow vermeden omdat er een bekende bug is waarbij het hele Help-onderwerp niet wordt weergegeven.

Als u hulp in een apart venster wilt, is het raadzaam om de onlineparameter te gebruiken of de parameter Volledig te gebruiken en de resultaten door te Out-GridViewgeven, zoals wordt weergegeven in het volgende voorbeeld.

help Get-Command -Full | Out-GridView

Zowel de Out-GridView cmdlet als de parameter ShowWindow van de Get-Help cmdlet vereisen een besturingssysteem met een GUI (Graphical User Interface). Er wordt een foutbericht gegenereerd als u probeert een van deze te gebruiken op Windows Server die is geïnstalleerd met behulp van de server core (no-GUI) installatieoptie.

Get-Help Als u opdrachten wilt zoeken, gebruikt u het jokerteken sterretje (*) met de parameter Naam. Geef een term op waarvoor u opdrachten zoekt als de waarde voor de parameter Naam , zoals wordt weergegeven in het volgende voorbeeld.

help *process*
Name                              Category  Module                    Synopsis
----                              --------  ------                    --------
Enter-PSHostProcess               Cmdlet    Microsoft.PowerShell.Core Connects to and ...
Exit-PSHostProcess                Cmdlet    Microsoft.PowerShell.Core Closes an intera...
Get-PSHostProcessInfo             Cmdlet    Microsoft.PowerShell.Core
Debug-Process                     Cmdlet    Microsoft.PowerShell.M... Debugs one or mo...
Get-Process                       Cmdlet    Microsoft.PowerShell.M... Gets the process...
Start-Process                     Cmdlet    Microsoft.PowerShell.M... Starts one or mo...
Stop-Process                      Cmdlet    Microsoft.PowerShell.M... Stops one or mor...
Wait-Process                      Cmdlet    Microsoft.PowerShell.M... Waits for the pr...
Get-AppvVirtualProcess            Function  AppvClient                ...
Start-AppvVirtualProcess          Function  AppvClient                ...

In het vorige voorbeeld zijn de * jokertekens niet vereist en worden ze weggelaten, waardoor hetzelfde resultaat wordt gegenereerd. Get-Help voegt automatisch de jokertekens achter de schermen toe.

help process

De vorige opdracht produceert dezelfde resultaten als het opgeven van het * jokerteken aan elk einde van het proces.

Ik voeg ze liever toe, omdat dat de optie is die altijd consistent werkt. Anders zijn ze vereist in bepaalde scenario's en niet in andere. Zodra u een jokerteken in het midden van de waarde toevoegt, worden deze niet meer automatisch achter de opgegeven waarde toegevoegd.

help pr*cess

Er worden geen resultaten geretourneerd door deze opdracht, tenzij het * jokerteken wordt toegevoegd aan het begin, einde of zowel het begin als het einde van pr*cess.

Als de waarde die u hebt opgegeven, begint met een streepje, wordt er een fout gegenereerd omdat powerShell deze interpreteert als een parameternaam en er geen dergelijke parameternaam bestaat voor de Get-Help cmdlet.

help -process

Als wat u zoekt, opdrachten zijn waarmee u eindigt -process, hoeft u alleen het * jokerteken toe te voegen aan het begin van de waarde.

help *-process

Wanneer u zoekt naar PowerShell-opdrachten, Get-Helpwilt u wat vaager zijn in plaats van te specifiek te zijn met wat u zoekt.

process Zoeken naar eerder gevonden alleen opdrachten die zijn opgenomen process in de naam van de opdracht en alleen die resultaten hebben geretourneerd. Wanneer Get-Help wordt gebruikt om naar te zoeken processes, vindt het geen overeenkomsten voor opdrachtnamen, dus voert het een zoekopdracht uit van elk Help-onderwerp in PowerShell op uw systeem en retourneert eventuele overeenkomsten die worden gevonden. Dit zorgt ervoor dat het een enorm aantal resultaten retourneert.

Get-Help processes
Name                              Category  Module                    Synopsis
----                              --------  ------                    --------
Disconnect-PSSession              Cmdlet    Microsoft.PowerShell.Core Disconnects from...
Enter-PSHostProcess               Cmdlet    Microsoft.PowerShell.Core Connects to and ...
ForEach-Object                    Cmdlet    Microsoft.PowerShell.Core Performs an oper...
Get-PSSessionConfiguration        Cmdlet    Microsoft.PowerShell.Core Gets the registe...
New-PSTransportOption             Cmdlet    Microsoft.PowerShell.Core Creates an objec...
Out-Host                          Cmdlet    Microsoft.PowerShell.Core Sends output to ...
Where-Object                      Cmdlet    Microsoft.PowerShell.Core Selects objects ...
Clear-Variable                    Cmdlet    Microsoft.PowerShell.U... Deletes the valu...
Compare-Object                    Cmdlet    Microsoft.PowerShell.U... Compares two set...
Convert-String                    Cmdlet    Microsoft.PowerShell.U... Formats a string...
ConvertFrom-Csv                   Cmdlet    Microsoft.PowerShell.U... Converts object ...
ConvertTo-Html                    Cmdlet    Microsoft.PowerShell.U... Converts Microso...
ConvertTo-Xml                     Cmdlet    Microsoft.PowerShell.U... Creates an XML-b...
Debug-Runspace                    Cmdlet    Microsoft.PowerShell.U... Starts an intera...
Export-Csv                        Cmdlet    Microsoft.PowerShell.U... Converts objects...
Export-FormatData                 Cmdlet    Microsoft.PowerShell.U... Saves formatting...
Format-List                       Cmdlet    Microsoft.PowerShell.U... Formats the outp...
Format-Table                      Cmdlet    Microsoft.PowerShell.U... Formats the outp...
Get-Random                        Cmdlet    Microsoft.PowerShell.U... Gets a random nu...
Get-Unique                        Cmdlet    Microsoft.PowerShell.U... Returns unique i...
Group-Object                      Cmdlet    Microsoft.PowerShell.U... Groups objects t...
Import-Clixml                     Cmdlet    Microsoft.PowerShell.U... Imports a CLIXML...
Import-Csv                        Cmdlet    Microsoft.PowerShell.U... Creates table-li...
Measure-Object                    Cmdlet    Microsoft.PowerShell.U... Calculates the n...
Out-File                          Cmdlet    Microsoft.PowerShell.U... Sends output to ...
Out-GridView                      Cmdlet    Microsoft.PowerShell.U... Sends output to ...
Select-Object                     Cmdlet    Microsoft.PowerShell.U... Selects objects ...
Set-Variable                      Cmdlet    Microsoft.PowerShell.U... Sets the value o...
Sort-Object                       Cmdlet    Microsoft.PowerShell.U... Sorts objects by...
Tee-Object                        Cmdlet    Microsoft.PowerShell.U... Saves command ou...
Trace-Command                     Cmdlet    Microsoft.PowerShell.U... Configures and s...
Write-Output                      Cmdlet    Microsoft.PowerShell.U... Sends the specif...
Debug-Process                     Cmdlet    Microsoft.PowerShell.M... Debugs one or mo...
Get-Process                       Cmdlet    Microsoft.PowerShell.M... Gets the process...
Get-WmiObject                     Cmdlet    Microsoft.PowerShell.M... Gets instances o...
Start-Process                     Cmdlet    Microsoft.PowerShell.M... Starts one or mo...
Stop-Process                      Cmdlet    Microsoft.PowerShell.M... Stops one or mor...
Wait-Process                      Cmdlet    Microsoft.PowerShell.M... Waits for the pr...
Get-Counter                       Cmdlet    Microsoft.PowerShell.D... Gets performance...
Invoke-WSManAction                Cmdlet    Microsoft.WSMan.Manage... Invokes an actio...
Remove-WSManInstance              Cmdlet    Microsoft.WSMan.Manage... Deletes a manage...
Get-WSManInstance                 Cmdlet    Microsoft.WSMan.Manage... Displays managem...
New-WSManInstance                 Cmdlet    Microsoft.WSMan.Manage... Creates a new in...
Set-WSManInstance                 Cmdlet    Microsoft.WSMan.Manage... Modifies the man...
about_Arithmetic_Operators        HelpFile                            Describes the op...
about_Arrays                      HelpFile                            Describes arrays...
about_Debuggers                   HelpFile                            Describes the Wi...
about_Execution_Policies          HelpFile                            Describes the Wi...
about_ForEach-Parallel            HelpFile                            Describes the Fo...
about_Foreach                     HelpFile                            Describes a lang...
about_Functions                   HelpFile                            Describes how to...
about_Language_Keywords           HelpFile                            Describes the ke...
about_Methods                     HelpFile                            Describes how to...
about_Objects                     HelpFile                            Provides essenti...
about_Parallel                    HelpFile                            Describes the Pa...
about_Pipelines                   HelpFile                            Combining comman...
about_Preference_Variables        HelpFile                            Variables that c...
about_Remote                      HelpFile                            Describes how to...
about_Remote_Output               HelpFile                            Describes how to...
about_Sequence                    HelpFile                            Describes the Se...
about_Session_Configuration_Files HelpFile                            Describes sessio...
about_Variables                   HelpFile                            Describes how va...
about_Windows_PowerShell_5.0      HelpFile                            Describes new fe...
about_WQL                         HelpFile                            Describes WMI Qu...
about_WS-Management_Cmdlets       HelpFile                            Provides an over...
about_ForEach-Parallel            HelpFile                            Describes the Fo...
about_Parallel                    HelpFile                            Describes the Pa...
about_Sequence                    HelpFile                            Describes the Se...

Hiermee Help zoekt u process naar geretourneerde 10 resultaten en gebruikt u deze om te zoeken naar processes 68 geretourneerde resultaten. Als er slechts één resultaat wordt gevonden, wordt het Help-onderwerp zelf weergegeven in plaats van een lijst met opdrachten.

get-help *hotfix*
NAME
    Get-HotFix

SYNOPSIS
    Gets the hotfixes that have been applied to the local and remote computers.


SYNTAX
    Get-HotFix [-ComputerName <String[]>] [-Credential <PSCredential>] [-Description
    <String[]>] [<CommonParameters>]

    Get-HotFix [[-Id] <String[]>] [-ComputerName <String[]>] [-Credential
    <PSCredential>] [<CommonParameters>]


DESCRIPTION
    The Get-Hotfix cmdlet gets hotfixes (also called updates) that have been installed
    on either the local computer (or on specified remote computers) by Windows Update,
    Microsoft Update, or Windows Server Update Services; the cmdlet also gets hotfixes
    or updates that have been installed manually by users.


RELATED LINKS
    Online Version: http://go.microsoft.com/fwlink/?LinkId=821586
    Win32_QuickFixEngineering http://go.microsoft.com/fwlink/?LinkID=145071
    Get-ComputerRestorePoint
    Add-Content

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"

Nu om de mythe te ontmaskeren die Help in PowerShell alleen opdrachten met Help-onderwerpen kunnen vinden.

help *more*
NAME
    more

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


ALIASES
    None


REMARKS
    None

U ziet in het vorige voorbeeld dat more geen Help-onderwerp heeft, maar het Help systeem in PowerShell kon het vinden. Er is slechts één overeenkomst gevonden en de basissyntaxisgegevens geretourneerd die u ziet wanneer een opdracht geen Help-onderwerp heeft.

PowerShell bevat talloze help-onderwerpen voor conceptuele (info) De volgende opdracht kan worden gebruikt voor het retourneren van een lijst met alle Help-onderwerpen over uw systeem.

help About_*

Als u de resultaten beperkt tot één Help-onderwerp Over help, wordt het werkelijke Help-onderwerp weergegeven in plaats van een lijst te retourneren.

help about_Updatable_Help

Het Help-systeem in PowerShell moet worden bijgewerkt om de Help-onderwerpen Over te kunnen presenteren. Als de eerste update van het Help-systeem om een of andere reden is mislukt op uw computer, zijn de bestanden pas beschikbaar als de Update-Help cmdlet is uitgevoerd.

Get-Command

Get-Command is ontworpen om u te helpen bij het vinden van opdrachten. Uitvoeren Get-Command zonder parameters retourneert een lijst met alle opdrachten op uw systeem. In het volgende voorbeeld ziet u hoe u de Get-Command cmdlet gebruikt om te bepalen welke opdrachten er bestaan voor het werken met processen:

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

In het vorige voorbeeld waarin Get-Command de parameter Zelfstandig naamwoord is uitgevoerd, wordt de parameter Zelfstandig naamwoord gebruikt en Process opgegeven als de waarde voor de parameter Zelfstandig naamwoord. Wat gebeurt er als u niet wist hoe u de Get-Command cmdlet moet gebruiken? U kunt het Help-onderwerp voor Get-HelpGet-Commandweergeven.

De parameters Naam, Zelfstandig naamwoord en Werkwoord accepteren jokertekens. In het volgende voorbeeld ziet u jokertekens die worden gebruikt met de parameter Name :

Get-Command -Name *service*
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        Get-NetFirewallServiceFilter                       2.0.0.0    NetSecurity
Function        Set-NetFirewallServiceFilter                       2.0.0.0    NetSecurity
Cmdlet          Get-Service                                        3.1.0.0    Microsof...
Cmdlet          New-Service                                        3.1.0.0    Microsof...
Cmdlet          New-WebServiceProxy                                3.1.0.0    Microsof...
Cmdlet          Restart-Service                                    3.1.0.0    Microsof...
Cmdlet          Resume-Service                                     3.1.0.0    Microsof...
Cmdlet          Set-Service                                        3.1.0.0    Microsof...
Cmdlet          Start-Service                                      3.1.0.0    Microsof...
Cmdlet          Stop-Service                                       3.1.0.0    Microsof...
Cmdlet          Suspend-Service                                    3.1.0.0    Microsof...
Application     AgentService.exe                                   10.0.14... C:\Windo...
Application     SensorDataService.exe                              10.0.14... C:\Windo...
Application     services.exe                                       10.0.14... C:\Windo...
Application     services.msc                                       0.0.0.0    C:\Windo...
Application     TieringEngineService.exe                           10.0.14... C:\Windo...

Ik ben geen fan van het gebruik van jokertekens met de parameter Name van Get-Command , omdat het ook uitvoerbare bestanden retourneert die geen systeemeigen PowerShell-opdrachten zijn.

Als u jokertekens wilt gebruiken met de parameter Name , raad ik u aan de resultaten te beperken met de parameter CommandType .

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

Een betere optie is om de parameter Werkwoord of Zelfstandig naamwoord of beide te gebruiken, omdat alleen PowerShell-opdrachten zowel werkwoorden als zelfstandige naamwoorden hebben.

Hebt u iets mis met een Help-onderwerp? Het goede nieuws is dat de Help-onderwerpen voor PowerShell open source zijn en beschikbaar zijn in de PowerShell-Docs-opslagplaats op GitHub. Betaal het door door, niet alleen door de onjuiste informatie voor uzelf te corrigeren, maar ook door alle anderen. U hoeft alleen de PowerShell-documentatieopslagplaats op GitHub te splitsen, het Help-onderwerp bij te werken en een pull-aanvraag in te dienen. Zodra de pull-aanvraag is geaccepteerd, is de gecorrigeerde documentatie beschikbaar voor iedereen.

Help bijwerken

De lokale kopie van de Help-onderwerpen van PowerShell is eerder bijgewerkt. De eerste keer dat u hulp nodig hebt voor een opdracht, is aangevraagd. Het wordt aanbevolen om het Help-systeem periodiek bij te werken, omdat er van tijd tot tijd updates voor de Help-inhoud kunnen zijn. De Update-Help cmdlet wordt gebruikt om de Help-onderwerpen bij te werken. Hiervoor is standaard internettoegang vereist en moet u PowerShell uitvoeren als beheerder.

Update-Help
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          : InvalidOperation: (:) [Update-Help], Exception
    + FullyQualifiedErrorId : InvalidHelpInfoUri,Microsoft.PowerShell.Commands.UpdateHel
   pCommand

Update-Help : Failed to update Help for the module(s) 'NetworkControllerDiagnostics,
StorageReplica' 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], Exception
    + FullyQualifiedErrorId : UnableToRetrieveHelpInfoXml,Microsoft.PowerShell.Commands.
   UpdateHelpCommand

Een aantal van de modules heeft fouten geretourneerd, wat niet ongebruikelijk is. Als de computer geen internettoegang heeft, kunt u de Save-Help cmdlet gebruiken op een andere computer die wel internettoegang heeft om eerst de bijgewerkte Help-informatie op te slaan in een bestandsshare in uw netwerk en vervolgens de parameter Update-Help SourcePath te gebruiken om deze netwerklocatie op te geven voor de Help-onderwerpen.

Overweeg om een geplande taak in te stellen of om logica toe te voegen aan uw profielscript in PowerShell om de Help-inhoud op uw computer periodiek bij te werken. Profielscripts worden in een volgend hoofdstuk besproken.

Samenvatting

In dit hoofdstuk hebt u geleerd hoe u opdrachten kunt vinden met zowel Get-Help als Get-Command. U hebt geleerd hoe u het Help-systeem kunt gebruiken om erachter te komen hoe u opdrachten gebruikt zodra u ze hebt gevonden. U hebt ook geleerd hoe u de inhoud van de Help-onderwerpen bijwerkt wanneer er updates beschikbaar zijn.

Mijn uitdaging voor u is om een PowerShell-opdracht per dag te leren.

Get-Command | Get-Random | Get-Help -Full

Beoordelen

  1. Is de parameter DisplayNameGet-Service positioneel?
  2. Hoeveel parametersets heeft de Get-Process cmdlet?
  3. Welke PowerShell-opdrachten bestaan voor het werken met gebeurtenislogboeken?
  4. Wat is de PowerShell-opdracht voor het retourneren van een lijst met PowerShell-processen die op uw computer worden uitgevoerd?
  5. Hoe werkt u de Help-inhoud van PowerShell bij die op uw computer is opgeslagen?

Als u meer informatie wilt over de onderwerpen die in dit hoofdstuk worden behandeld, raad ik u aan de volgende Help-onderwerpen voor PowerShell te lezen.

In het volgende hoofdstuk leert u meer over de Get-Member cmdlet, evenals objecten, eigenschappen en methoden.