Dela via


Kapitel 2 – Hjälpsystemet

I ett experiment som utformats för att bedöma kunskaper i PowerShell fick två olika grupper av IT-proffs – nybörjare och experter – först en skriftlig undersökning utan åtkomst till en dator. Överraskande nog visade testresultaten jämförbara färdigheter i båda grupperna. Ett efterföljande test administrerades sedan, vilket speglade det första men med en viktig skillnad: deltagarna hade tillgång till en offlinedator utrustad med PowerShell. Resultaten visade på en betydande kompetensklyfta mellan de två grupperna den här gången.

Vilka faktorer bidrog till de resultat som observerades mellan de två utvärderingarna?

Experter vet inte alltid svaren, men de vet hur de ska räkna ut svaren.

De resultat som observerades i resultatet av de två testerna berodde på att experter inte memorerar tusentals PowerShell-kommandon. I stället är de duktiga på att använda hjälpsystemet i PowerShell, så att de kan identifiera och lära sig att använda kommandon när det behövs.

Att bli skicklig med hjälpsystemet är nyckeln till framgång med PowerShell.

Jag hörde Jeffrey Snover, skaparen av PowerShell, dela en liknande historia vid flera tillfällen.

Upptäckbarhet

Kompilerade kommandon i PowerShell kallas cmdletar, uttalas som "command-let", inte "CMD-let". Namngivningskonventionen för cmdletar följer ett unikt Verb-Noun-format för att göra dem enkla att identifiera. Är till exempel Get-Process cmdleten för att avgöra vilka processer som körs och Get-Service är cmdleten för att hämta en lista över tjänster. Funktioner, även kallade skript-cmdletar, och alias är andra typer av PowerShell-kommandon som beskrivs senare i den här boken. Termen "PowerShell-kommando" beskriver alla kommandon i PowerShell, oavsett om det är en cmdlet, funktion eller ett alias.

Du kan också köra operativsysteminbyggda kommandon från PowerShell, till exempel traditionella kommandoradsprogram som ping.exe och ipconfig.exe.

Cmdletarna med tre kärnor i PowerShell

  • Get-Help
  • Get-Command
  • Get-Member (omfattas av kapitel 3)

Jag blir ofta tillfrågad: "Hur tar du reda på vilka kommandon som finns i PowerShell?". Både Get-Help och Get-Command är ovärderliga resurser för att identifiera och förstå kommandon i PowerShell.

Get-Help

Det första du behöver veta om hjälpsystemet i PowerShell är hur du använder cmdleten Get-Help .

Get-Help är ett flerfunktionskommando som hjälper dig att lära dig hur du använder kommandon när du hittar dem. Du kan också använda Get-Help för att hitta kommandon, men på ett annat och mer indirekt sätt jämfört med Get-Command.

När du använder Get-Help för att hitta kommandon utför den först en sökning med jokertecken efter kommandonamn baserat på dina indata. Om det inte hittar några matchningar utför den en omfattande fulltextsökning i alla PowerShell-hjälpartiklar i systemet. Om det inte heller hittar några resultat returneras ett fel.

Så här använder Get-Help du för att visa hjälpinnehållet för cmdleten Get-Help .

Get-Help -Name Get-Help

Från och med PowerShell version 3.0 levereras inte hjälpinnehållet förinstallerat med operativsystemet. När du kör Get-Help för första gången visas ett meddelande som frågar om du vill ladda ned PowerShell-hjälpfilerna till datorn.

Om du svarar Ja genom att trycka på Y körs cmdleten Update-Help och hjälpinnehållet laddas ned.

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"):

Om du inte får det här meddelandet kör Update-Help du från en upphöjd PowerShell-session som körs som administratör.

När uppdateringen är klar visas hjälpartikeln.

Ta en stund att köra exemplet på datorn, granska utdata och se hur hjälpsystemet organiserar informationen.

  • NAMN
  • SAMMANFATTNING
  • SYNTAX
  • BESKRIVNING
  • RELATERADE LÄNKAR
  • REMARKS

När du granskar utdata bör du tänka på att hjälpartiklar ofta innehåller en stor mängd information, och det du ser som standard är inte hela hjälpartikeln.

Parametrar

När du kör ett kommando i PowerShell kan du behöva ange ytterligare information eller indata till kommandot. Med parametrar kan du ange alternativ och argument som ändrar beteendet för ett kommando. Syntaxavsnittet i varje hjälpartikel beskriver de tillgängliga parametrarna för kommandot.

Get-Help har flera parametrar som du kan ange för att returnera hela hjälpartikeln eller en delmängd för ett kommando. Om du vill visa alla tillgängliga parametrar för Get-Helpläser du avsnittet SYNTAX i hjälpartikeln, som du ser i följande exempel.

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

Parameteruppsättningar

När du granskar syntaxavsnittet för Get-Helpser du att informationen verkar upprepas sex gånger. Vart och ett av dessa block är en enskild parameteruppsättning som anger att cmdleten Get-Help har sex distinkta uppsättningar parametrar. En närmare titt visar att varje parameteruppsättning innehåller minst en unik parameter, vilket gör att den skiljer sig från de andra.

Parameteruppsättningar är ömsesidigt uteslutande. När du har angett en unik parameter som bara finns i en parameteruppsättning begränsar PowerShell dig till att använda parametrarna i parameteruppsättningen. Du kan till exempel inte använda parametrarna Get-Help Fullständig och Detaljerad för tillsammans eftersom de tillhör olika parameteruppsättningar.

Var och en av följande parametrar tillhör en annan parameteruppsättning för cmdleten Get-Help .

  • Fullständig
  • Detaljerad
  • Exempel
  • Online
  • Parameter
  • VisaWindow

Kommandosyntaxen

Om du inte har använt PowerShell tidigare kan det verka överväldigande att förstå den kryptiska informationen – som kännetecknas av hakparenteser och vinkelparenteser – i syntaxavsnittet. Det är dock viktigt att lära sig dessa syntaxelement för att bli skickliga med PowerShell. Ju oftare du använder PowerShell-hjälpsystemet, desto enklare blir det att komma ihåg alla nyanser.

Visa cmdletens Get-EventLog syntax.

Get-Help Get-EventLog

Följande utdata visar relevant del av hjälpartikeln.

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

Syntaxinformationen innehåller par med hakparenteser ([]). Beroende på deras användning har dessa hakparenteser två olika syften.

  • Element som omges av hakparenteser är valfria.
  • En tom uppsättning hakparenteser som följer en datatyp, till exempel <string[]>, anger att parametern kan acceptera flera värden som skickas som en matris eller ett samlingsobjekt.

Positionsparametrar

Vissa cmdletar är utformade för att acceptera positionsparametrar. Med positionsparametrar kan du ange ett värde utan att ange namnet på parametern. När du använder en parameter positionalt måste du ange dess värde i rätt position på kommandoraden. Du hittar positionsinformationen för en parameter i avsnittet PARAMETRAR i hjälpartikeln för ett kommando. När du uttryckligen anger parameternamn kan du använda parametrarna i valfri ordning.

För cmdleten Get-EventLog är den första parametern i den första parameteruppsättningen LogName. LogName omges av hakparenteser, vilket indikerar att det är en positionsparameter.

Get-EventLog [-LogName] <System.String>

Eftersom LogName är en positionsparameter kan du ange den med antingen namn eller position. Enligt vinkelparenteserna efter parameternamnet måste värdet för LogName vara en enda sträng. Avsaknaden av hakparenteser som omger både parameternamnet och datatypen anger att LogName är en obligatorisk parameter i den här parameteruppsättningen.

Den andra parametern i parameteruppsättningen är InstanceId. Både parameternamnet och datatypen omges helt av hakparenteser, vilket betyder att InstanceId är en valfri parameter.

[[-InstanceId] <System.Int64[]>]

Dessutom har InstanceId ett eget par hakparenteser, vilket indikerar att det är en positionsparameter som liknar LogName-parametern. Efter datatypen innebär en tom uppsättning hakparenteser att InstanceId kan acceptera flera värden.

Växla parametrar

En parameter som inte kräver något värde kallas för en växelparameter. Du kan enkelt identifiera växelparametrar eftersom det inte finns någon datatyp som följer parameternamnet. När du anger en växelparameter är truedess värde . När du inte anger en växelparameter är falsedess värde .

Den andra parameteruppsättningen innehåller en listparameter , som är en växelparameter. När du anger parametern List returnerar den en lista över händelseloggar på den lokala datorn.

[-List]

En förenklad metod för syntax

Det finns en mer användarvänlig metod för att hämta samma information som den kryptiska kommandosyntaxen för vissa kommandon, förutom på vanlig engelska. PowerShell returnerar den fullständiga hjälpartikeln när du använder Get-Help med den fullständiga parametern, vilket gör det lättare att förstå användningen av ett kommando.

Get-Help -Name Get-Help -Full

Ta en stund att köra exemplet på datorn, granska utdata och se hur hjälpsystemet organiserar informationen.

  • NAMN
  • SAMMANFATTNING
  • SYNTAX
  • BESKRIVNING
  • PARAMETRAR
  • INDATA
  • UTDATA
  • ANTECKNINGAR
  • EXEMPEL
  • RELATERADE LÄNKAR

Genom att ange den fullständiga parametern med cmdleten Get-Help innehåller utdata flera extra avsnitt. I de här avsnitten ger PARAMETERS ofta en detaljerad förklaring för varje parameter. Omfattningen av den här informationen varierar dock beroende på vilket kommando du undersöker.

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

När du körde föregående kommando för att visa hjälpen Get-Help för kommandot märkte du förmodligen att utdata rullas av för snabbt för att läsa det.

Om du använder PowerShell-konsolen, Windows Terminal eller VS Code och behöver visa en hjälpartikel help kan funktionen vara användbar. Den skickar utdata Get-Help från till more.comoch visar en sida med hjälpinnehåll i taget. Jag rekommenderar att du använder help funktionen i stället för cmdleten Get-Help eftersom den ger en bättre användarupplevelse och den är mindre att skriva.

Kommentar

ISE stöder inte användning av more.com, så körning help fungerar på samma sätt som Get-Help.

Kör vart och ett av följande kommandon i PowerShell på datorn.

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

Observerade du några variationer i utdata när du körde de tidigare kommandona?

I föregående exempel använder den första raden cmdleten Get-Help , den andra använder help funktionen och den tredje raden utelämnar parametern Namn när funktionen används help . Eftersom Name är en positionsparameter drar det tredje exemplet nytta av dess position i stället för att uttryckligen ange parameterns namn.

Skillnaden är att de två sista kommandona visar sina utdata en sida i taget. När du använder help funktionen trycker du på Blanksteg för att visa nästa sida med innehåll eller Q för att avsluta. Om du behöver avsluta ett kommando som körs interaktivt i PowerShell trycker du på Ctrl+C.

Om du snabbt vill hitta information om en specifik parameter använder du parametern Parameter . Den här metoden returnerar innehåll som endast innehåller den parameterspecifika informationen i stället för hela hjälpartikeln. Det här är det enklaste sättet att hitta information om en specifik parameter.

I följande exempel används help funktionen med parameterparametern för att returnera information från hjälpartikeln för parametern NamnGet-Help.

help Get-Help -Parameter Name

Hjälpinformationen visar att parametern Namn är positionell och måste anges i den första positionen (position noll) när den används positionellt.

-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

Parametern Namn förväntar sig ett strängvärde som identifieras av <String> datatypen bredvid parameternamnet.

Det finns flera andra parametrar som du kan ange med Get-Help för att returnera en delmängd av en hjälpartikel. Om du vill se hur de fungerar kör du följande kommandon på datorn.

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

Jag använder help <command name> vanligtvis med parametern Full eller Online . Om du bara är intresserad av exemplen använder du parametern Exempel . Om du bara har ett intresse för en specifik parameter använder du parametern Parameter .

När du använder parametern ShowWindow visas hjälpinnehållet i ett separat sökbart fönster. Du kan flytta fönstret till en annan övervakare om du har flera bildskärmar. Parametern ShowWindow har dock en känd bugg som kan hindra den från att visa hela hjälpartikeln. Parametern ShowWindow kräver också ett operativsystem med ett grafiskt användargränssnitt (GUI). Det returnerar ett fel när du försöker använda det på Windows Server Core.

Om du har internetåtkomst kan du använda parametern Online i stället. Parametern Online öppnar hjälpartikeln i standardwebbläsaren. Onlineinnehållet är det mest aktuella innehållet. Med webbläsaren kan du söka i hjälpinnehållet och visa andra relaterade hjälpartiklar.

Kommentar

Parametern Online stöds inte för Om artiklar.

help Get-Command -Online

Hitta kommandon med Get-Help

Om du vill hitta kommandon med Get-Helpanger du en sökterm omgiven av asterisktecken (*) jokertecken för värdet för parametern Namn . I följande exempel används parametern Name positionally.

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

I det här scenariot behöver du inte lägga * till jokertecken. Om Get-Help det inte går att hitta ett kommando som matchar det värde som du angav, söker det efter det värdet i fulltext. I följande exempel får du samma resultat som när * du anger jokertecknet i varje ände av process.

help process

När du anger ett jokertecken i värdet Get-Help söker du bara efter kommandon som matchar det mönster som du angav. Den utför inte en fulltextsökning. Följande kommando returnerar inga resultat.

help pr*cess

PowerShell genererar ett fel om du anger ett värde som börjar med ett bindestreck utan att omsluta det med citattecken eftersom det tolkar det som ett parameternamn. Det finns inget sådant parameternamn för cmdleten Get-Help .

help -process

Om du försöker söka efter kommandon som slutar med -processmåste du lägga till ett * i början av värdet.

help *-process

När du söker efter PowerShell-kommandon med Get-Helpär det bättre att vara vag snarare än för specifik.

När du sökte efter process tidigare returnerade resultaten endast kommandon som ingår process i deras namn. Men om du söker processesefter hittar den inga matchningar för kommandonamn. Som tidigare nämnts, när hjälpen inte hittar några matchningar, utför den en omfattande fulltextsökning av varje hjälpartikel i systemet och returnerar dessa resultat. Den här typen av sökning ger ofta fler resultat än förväntat, inklusive information som inte är relevant för dig.

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

När du sökte efter processreturnerades 12 resultat. Men när du söker processesefter gav den 78 resultat. Om sökningen bara hittar en matchning Get-Help visar du hjälpinnehållet i stället för att visa sökresultaten.

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"

Du kan också hitta kommandon som saknar hjälpartiklar med Get-Help, även om den här funktionen inte är allmänt känd. Funktionen more är ett av kommandona som inte har någon hjälpartikel. Om du vill bekräfta att du kan hitta kommandon med Get-Help som inte innehåller hjälpartiklar använder du help funktionen för att hitta more.

help *more*

Sökningen hittade bara en matchning, så den returnerade den grundläggande syntaxinformation som du ser när ett kommando inte har någon hjälpartikel.

NAME
    more

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

ALIASES
    None

REMARKS
    None

PowerShell-hjälpsystemet innehåller även konceptuella Om hjälpartiklar. Du måste uppdatera hjälpinnehållet i systemet för att få artiklarna Om . Mer information finns i avsnittet Uppdatera hjälp i det här kapitlet.

Använd följande kommando för att returnera en lista över alla om hjälpartiklar i systemet.

help About_*

När du begränsar resultatet till en Om hjälp-artikel Get-Help visar du innehållet i den artikeln.

help about_Updatable_Help

Uppdatera hjälpen

Tidigare i det här kapitlet uppdaterade du PowerShell-hjälpartiklarna på datorn första gången du körde cmdleten Get-Help . Du bör regelbundet köra cmdleten Update-Help på datorn för att få uppdateringar av hjälpinnehållet.

Viktigt!

I Windows PowerShell 5.1 måste du köra Update-Help som administratör i en upphöjd PowerShell-session.

I följande exempel Update-Help laddar du ned PowerShell-hjälpinnehållet för alla moduler som är installerade på datorn. Du bör använda force-parametern för att se till att du laddar ned den senaste versionen av hjälpinnehållet.

Update-Help -Force

Som visas i följande resultat returnerade en modul ett fel. Fel är inte ovanliga och inträffar vanligtvis när modulens författare inte konfigurerar uppdateringsbar hjälp på rätt sätt.

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 kräver internetåtkomst för att ladda ned hjälpinnehållet. Om datorn inte har internetåtkomst använder du cmdleten Save-Help på en dator med internetåtkomst för att ladda ned och spara det uppdaterade hjälpinnehållet. Använd sedan parametern Update-Help SourcePath för för att ange platsen för det sparade uppdaterade hjälpinnehållet.

Get-Command

Get-Command är ett annat flerfunktionskommando som hjälper dig att hitta kommandon. När du kör Get-Command utan några parametrar returneras en lista över alla PowerShell-kommandon i systemet. Du kan också använda Get-Command för att hämta kommandosyntax som liknar Get-Help.

Hur avgör du syntaxen för Get-Command? Du kan använda Get-Help för att visa hjälpartikeln för Get-Command, som du ser i avsnittet Get-Help i det här kapitlet. Du kan också använda Get-Command med syntaxparametern för att visa syntaxen för alla kommandon. Den här genvägen hjälper dig att snabbt avgöra hur du använder ett kommando utan att gå igenom dess hjälpinnehåll.

Get-Command -Name Get-Command -Syntax

Med hjälp av Get-Command syntaxparametern får du en mer kortfattad vy över syntaxen som visar parametrarna och deras värdetyper, utan att ange de specifika tillåtna värdena som Get-Help visar.

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

Om du behöver mer detaljerad information om hur du använder ett kommando använder du Get-Help.

help Get-Command -Full

Avsnittet Get-Help SYNTAX i ger en mer användarvänlig visning genom att expandera uppräknade värden för parametrar. Den visar de faktiska värden som du kan använda, vilket gör det lättare att förstå de tillgängliga alternativen.

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

Avsnittet PARAMETRAR i hjälpen för Get-Command visar att parametrarna Namn, Substantiv och Verb accepterar jokertecken.

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

I följande exempel används * jokertecknet med värdet för parametern NamnGet-Command.

Get-Command -Name *service*

När du använder jokertecken med parametern Name (Get-CommandNamn) returneras PowerShell-kommandon och interna kommandon, enligt följande resultat.


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

Du kan begränsa resultatet av till PowerShell-kommandon med hjälp av Get-Command parametern CommandType .

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

Ett annat alternativ kan vara att använda antingen verb- eller substantivparametern eller båda eftersom endast PowerShell-kommandon har verb och substantiv.

I följande exempel används Get-Command för att hitta kommandon på datorn som fungerar med processer. Använd substantivparametern och ange Process som dess värde.

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

Sammanfattning

I det här kapitlet har du lärt dig att hitta kommandon med Get-Help och Get-Command. Du har också lärt dig hur du använder hjälpsystemet för att förstå hur du använder kommandon när du hittar dem. Dessutom har du lärt dig hur du uppdaterar hjälpsystemet på datorn när det finns nytt hjälpinnehåll.

Granskning

  1. Är Parametern Get-Service DisplayName positional?
  2. Hur många parameteruppsättningar har cmdleten Get-Process ?
  3. Vilka PowerShell-kommandon finns för att arbeta med händelseloggar?
  4. Vad är PowerShell-kommandot för att returnera en lista över PowerShell-processer som körs på datorn?
  5. Hur uppdaterar du PowerShell-hjälpinnehållet som lagras på datorn?

Referenser

Mer information om de begrepp som beskrivs i det här kapitlet finns i följande PowerShell-hjälpartiklar.

Nästa steg

I nästa kapitel får du lära dig mer om objekt, egenskaper, metoder och cmdleten Get-Member .