Hoofdstuk 2: Het Help-systeem

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

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

De verschillen die in deze twee tests zijn waargenomen, zijn dat experts niet onthouden hoe ze duizenden opdrachten in PowerShell moeten gebruiken. Ze leren heel goed hoe ze het Help-systeem in PowerShell 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 al een aantal keer gehoord van Jeff Snover, de inventariser van PowerShell, die een vergelijkbaar verhaal vertelt.

Het onder de knie krijgen van het Help-systeem is de sleutel tot succes met PowerShell.

Detecteerbaarheid

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 kunnen vinden. De cmdlet om te bepalen welke processen worden uitgevoerd, is bijvoorbeeld en de cmdlet voor het ophalen van een lijst met services en hun Get-Process status is Get-Service . Er zijn andere soorten 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 krijg, is hoe komt u erachter wat de opdrachten in PowerShell zijn? Zowel Get-Command als kunnen worden gebruikt om de opdrachten te Get-Help bepalen.

Get-Help

Get-Help is een opdracht voor meerdere gebruiken. Get-Help helpt u om 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 jokertekens van opdrachtnamen op basis van de opgegeven invoer. Als er geen overeenkomst wordt gevonden, wordt de Help-onderwerpen zelf doorzocht en wordt er een fout geretourneerd als er geen overeenkomst wordt gevonden. In tegenstelling tot populaire mening kan Get-Help worden gebruikt om opdrachten te vinden die geen Help-onderwerpen hebben.

Het eerste wat u moet weten over het Help-systeem in PowerShell is hoe u de Get-Help cmdlet gebruikt. De volgende opdracht wordt gebruikt om het Help-onderwerp voor weer te Get-Help 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 de PowerShell-help niet bij het besturingssysteem gebruikt. De eerste keer Get-Help wordt uitgevoerd voor een opdracht, wordt het vorige bericht weergegeven. Als de help functie of alias wordt gebruikt in plaats van de man Get-Help cmdlet, ontvangt u deze prompt niet.

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

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, controleer de uitvoer en noteer hoe de informatie is gegroepeerd:

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

Zoals u ziet, kunnen Help-onderwerpen een enorme hoeveelheid informatie bevatten en dit is zelfs niet 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 heeft 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 resultaten wordt weergegeven, bevat een lijst met alle parameters voor Get-Help . Op het eerste gezicht lijkt het alsof dezelfde parameters zes verschillende keren worden weergegeven. Elk van deze verschillende blokken in de syntaxissectie is een parameterset. Dit betekent dat Get-Help de cmdlet zes verschillende parametersets heeft. Als u de parametersets nader bekijkt, ziet u dat ten minste één parameter verschilt in elk van de parametersets.

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

Elk van de volgende parameters zijn in verschillende parametersets:

  • Volledig
  • Gedetailleerd
  • Voorbeelden
  • Online
  • Parameter
  • ShowWindow

Alle cryptische syntaxis, zoals vierkante haken en punthaken in de syntaxissectie, betekent iets, maar wordt behandeld in bijlage A van dit boek. Hoewel het belangrijk is om de cryptische syntaxis te leren, is het vaak moeilijk om deze te behouden voor iemand die geen kennis heeft van PowerShell en deze mogelijk niet elke dag 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 Full van Get-Help is 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, controleer de uitvoer en noteer hoe de informatie is gegroepeerd:

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

U ziet dat met behulp van de parameter Full verschillende extra secties zijn geretourneerd. Een van deze secties is de sectie PARAMETERS die meer informatie biedt dan de cryptic SYNTAX-sectie.

De parameter Full is een switchparameter. Een parameter waarvoor geen waarde is vereist, wordt een switchparameter genoemd. Wanneer een switchparameter is opgegeven, is de waarde true en als dat niet het geval is, is de waarde false.

Als u in dit hoofdstuk in de PowerShell-console hebt gewerkt, hebt u gezien dat met de vorige opdracht het volledige Help-onderwerp voor het op het scherm wordt weergegeven zonder dat u de mogelijkheid hebt om het te Get-Help lezen. Er is een betere manier.

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

Minder typen is echter niet altijd goed. Als u uw opdrachten wilt opslaan als een script of deze wilt delen met iemand anders, moet u de volledige cmdlet en parameternamen gebruiken. De volledige namen zijn zelfdocumenteren, waardoor ze gemakkelijker te begrijpen zijn. Denk na over de volgende persoon die uw opdrachten moet lezen en begrijpen. Dit kan u zijn. Uw collega's en toekomstige collega's zullen u bedankt zijn.

Probeer de volgende opdrachten uit te voeren in de PowerShell-console op Windows 10 computer in uw testomgeving.

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

Zijn er verschillen in de uitvoer van de eerder vermelde opdrachten opgevallen toen u deze uitvoer uitvoerde op Windows 10 labomgevingscomputer?

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

In het eerste voorbeeld wordt de cmdlet gebruikt, in het tweede voorbeeld wordt de functie gebruikt en in het derde voorbeeld wordt de parameter Name weglaat Get-Help bij het gebruik van de functie Help Help . Naam is een positionele parameter die positioneel wordt gebruikt in dat voorbeeld. 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 ik de waarde moet opgeven? 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 functie Help om alleen informatie te retourneren uit het Help-onderwerp voor de parameter Name. Dit is veel beknopter dan het handmatig proberen te bekijken wat soms een help-onderwerp van honderd pagina's lijkt.

Op basis van deze resultaten kunt u zien dat de parameter Naam positioneel is en moet worden opgegeven op 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 ervan één tekenreeks is, die wordt aangeduid met <String> . Als meerdere tekenreeksen worden geaccepteerd, wordt het gegevenstype weergegeven als <String[]> .

Soms wilt u niet het hele Help-onderwerp voor een opdracht weergeven. Er zijn een aantal andere parameters naast Volledig die kunnen worden opgegeven met Get-Help of Help . Probeer de volgende opdrachten uit te voeren op Windows 10 labomgevingscomputer:

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 Full of Online. Als ik alleen geïnteresseerd ben in de voorbeelden, gebruik ik de parameter Examples en als ik alleen geïnteresseerd ben in een specifieke parameter, gebruik ik de parameter Parameter. Met de parameter ShowWindow wordt het Help-onderwerp geopend in een afzonderlijk doorzoekbaar venster dat op een andere monitor kan worden geplaatst als u meerdere monitors hebt. Ik heb de parameter ShowWindow vermeden omdat er een bekende fout is waarbij niet het hele Help-onderwerp wordt weergegeven.

Als u hulp nodig hebt in een afzonderlijk venster, is het mijn aanbeveling om de parameter Online te gebruiken of de parameter Full te gebruiken en de resultaten door te se pijpen naar , zoals wordt weergegeven Out-GridView in het volgende voorbeeld.

help Get-Command -Full | Out-GridView

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

Als u Get-Help wilt gebruiken om opdrachten te vinden, gebruikt u het jokerteken asterisk ( ) met de parameter * Name. Geef een term op waarin 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 levert het * weglaten ervan hetzelfde resultaat op. 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 schermen toegevoegd aan de waarde die u hebt opgegeven.

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 opgegeven waarde 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 u opdrachten wilt zoeken die eindigen op , hoeft u alleen het jokerteken toe te voegen aan het -process * begin van de waarde.

help *-process

Wanneer u zoekt naar PowerShell-opdrachten met , wilt u iets meer onder de aandacht komen in plaats van te specifiek te zijn voor wat Get-Help u zoekt.

Als u zoekt naar eerder, zijn alleen opdrachten gevonden die de naam van de opdracht bevatten process en alleen die resultaten hebben process geretourneerd. Wanneer wordt gebruikt om te zoeken naar , worden er geen overeenkomsten gevonden voor opdrachtnamen, dus wordt een zoekopdracht uitgevoerd op elk Help-onderwerp in PowerShell op uw systeem en worden gevonden overeenkomsten Get-Help processes retourneert. Dit zorgt ervoor dat er een enorm aantal resultaten wordt retourneren.

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

Door Help te zoeken naar process geretourneerde 10 resultaten en deze te gebruiken om te zoeken naar processes geretourneerde 68 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"

U kunt nu het feit ontkrachten dat in PowerShell alleen opdrachten met Help Help-onderwerpen kunnen worden gevonden.

help *more*
NAME
    more

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


ALIASES
    None


REMARKS
    None

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

PowerShell bevat talloze helponderwerpen voor conceptuele (over) onderwerpen. De volgende opdracht kan worden gebruikt om een lijst met alle Help-onderwerpen over uw systeem te retourneren.

help About_*

Als u de resultaten beperkt tot één Over help-onderwerp, 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 zodat de Help-onderwerpen over aanwezig zijn. Als om een of andere reden de eerste update van het Help-systeem op uw computer is mislukt, zijn de bestanden pas beschikbaar wanneer 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 wordt het gebruik van Get-Command de cmdlet gedemonstreerd 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 waar werd uitgevoerd, wordt de parameter Zelfstandig naamwoord gebruikt en wordt deze opgegeven als de waarde Get-Command voor de parameter Zelfstandig Process naamwoord. Wat gebeurt er als u niet weet hoe u de Get-Command cmdlet moet gebruiken? U kunt gebruiken om Get-Help het Help-onderwerp voor weer te Get-Command geven.

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

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 Naam van, omdat er ook uitvoerbare bestanden worden retourneert die geen native Get-Command 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.

Is er iets mis met een Help-onderwerp gevonden? 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 de onjuiste gegevens voor uzelf op te halen, maar ook voor de rest. U hoeft alleen maar de PowerShell-documentatieopslagplaats GitHub, het Help-onderwerp bij te werken en een pull-aanvraag in te dienen. Zodra de pull-aanvraag is geaccepteerd, is de gecorrigeerde documentatie voor iedereen beschikbaar.

Help bijwerken

De lokale kopie van de Help-onderwerpen voor PowerShell is eerder bijgewerkt toen de eerste keer hulp bij een opdracht werd aangevraagd. Het is raadzaam om het Help-systeem periodiek bij te werken, omdat de Help-inhoud van tijd tot tijd kan worden bijgewerkt. De Update-Help cmdlet wordt gebruikt om de Help-onderwerpen bij te werken. Hiervoor is standaard internettoegang vereist en moet u PowerShell uitvoeren met verhoogde bevoegdheid 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 modules heeft fouten geretourneerd, wat niet ongebruikelijk is. Als de computer geen toegang tot internet heeft, kunt u de cmdlet op een andere computer met internettoegang gebruiken om eerst de bijgewerkte Help-informatie op te slaan in een bestands share in uw netwerk en vervolgens de parameter SourcePath van gebruiken om deze netwerklocatie op te geven voor de Save-Help Update-Help Help-onderwerpen.

Overweeg het instellen van een geplande taak of het toevoegen van logica 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 gebruikt om erachter te komen hoe u opdrachten kunt gebruiken zodra u ze hebt gevonden. U hebt ook geleerd hoe u de inhoud van de Help-onderwerpen bij kunt werken wanneer er updates beschikbaar zijn.

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

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

Beoordelen

  1. Is de parameter DisplayName Get-Service positioneel?
  2. Hoeveel parametersets heeft Get-Process de cmdlet?
  3. Welke PowerShell-opdrachten bestaan er 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 PowerShell Help-inhoud bij die is opgeslagen op uw computer?

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 krijgt u informatie over de Get-Member cmdlet, evenals objecten, eigenschappen en methoden.