Kapitel 2 – Hjälpsystemet

Två grupper av IT-proffs fick ett skriftligt test utan åtkomst till en dator för att fastställa deras kompetensnivå med PowerShell. PowerShell-nybörjare placerades i en grupp och experter i en annan. Baserat på resultatet av testet verkade det inte vara någon större skillnad på färdighetsnivån mellan de två grupperna. Båda grupperna fick ett andra test som liknar det första. Den här gången fick de åtkomst till en dator med PowerShell som inte hade åtkomst till Internet. Resultatet av det andra testet visade en enorm skillnad i skicklighetsnivån mellan de två grupperna. Experter vet inte alltid svaren, men de vet hur de ska räkna ut svaren.

Vad var skillnaden i resultatet av det första och andra testet mellan dessa två grupper?

Skillnaderna i de här två testerna beror på att experter inte memorerar hur man använder tusentals kommandon i PowerShell. De lär sig att använda hjälpsystemet i PowerShell mycket bra. På så sätt kan de hitta de nödvändiga kommandona när det behövs och hur de ska användas när de har hittat dem.

Jag har hört Jeffrey Snover, uppfinnaren av PowerShell, berätta en liknande historia ett antal gånger.

Att hantera hjälpsystemet är nyckeln till att lyckas med PowerShell.

Upptäckbarhet

Kompilerade kommandon i PowerShell kallas cmdletar. Cmdleten uttalas "command-let" (inte CMD-let). Cmdlets-namn har formatet "Verb-Noun"-kommandon för att göra dem enkla att identifiera. Cmdleten för att avgöra vilka processer som körs är Get-Process till exempel och cmdleten för att hämta en lista över tjänster och deras statusar är Get-Service. Det finns andra typer av kommandon i PowerShell, till exempel alias och funktioner som beskrivs senare i den här boken. Termen PowerShell-kommando är en allmän term som ofta används för att referera till alla typer av kommandon i PowerShell, oavsett om det är en cmdlet, funktion eller ett alias.

Cmdletarna med tre kärnor i PowerShell

  • Get-Command
  • Get-Help
  • Get-Member (beskrivs i kapitel 3)

En fråga som jag ofta får är hur du ska ta reda på vilka kommandon som finns i PowerShell? Både Get-Command och Get-Help kan användas för att fastställa kommandona.

Get-Help

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

När Get-Help används för att hitta kommandon söker den först efter jokerteckenmatchningar av kommandonamn baserat på angivna indata. Om den inte hittar någon matchning söker den igenom själva hjälpavsnitten och om ingen matchning hittas returneras ett fel. I motsats till vad många tror Get-Help kan användas för att hitta kommandon som inte har hjälpämnen.

Det första du behöver veta om hjälpsystemet i PowerShell är hur du använder cmdleten Get-Help . Följande kommando används för att visa hjälpavsnittet för Get-Help.

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

Från och med PowerShell version 3 levereras inte PowerShell-hjälpen med operativsystemet. Första gången Get-Help körs för ett kommando visas föregående meddelande. Om funktionen eller man aliaset help används i stället för cmdleten Get-Help får du inte den här uppmaningen.

Om du svarar ja genom att trycka på Y körs cmdleten Update-Help , som kräver Internetåtkomst som standard. Y kan anges i versaler eller gemener.

När hjälpen har laddats ned och uppdateringen är klar returneras hjälpavsnittet för det angivna kommandot:

Get-Help -Name Get-Help

Ta en stund att köra exemplet på datorn, granska utdata och notera hur informationen grupperas:

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

Som du ser kan hjälpavsnitt innehålla en enorm mängd information och det här är inte ens hela hjälpavsnittet.

Även om det inte är specifikt för PowerShell är en parameter ett sätt att ange indata till ett kommando. Get-Help har många parametrar som kan anges för att returnera hela hjälpavsnittet eller en delmängd av det.

Syntaxavsnittet i hjälpavsnittet som visas i den tidigare resultatuppsättningen visar alla parametrar för Get-Help. Vid första anblicken verkar samma parametrar visas sex olika gånger. Vart och ett av de olika blocken i syntaxavsnittet är en parameteruppsättning. Det innebär att cmdleten Get-Help har sex olika parameteruppsättningar. Om du tar en närmare titt ser du att minst en parameter skiljer sig åt i varje parameteruppsättning.

Parameteruppsättningar är ömsesidigt uteslutande. När en unik parameter som bara finns i en av parameteruppsättningarna används kan endast parametrar som ingår i parameteruppsättningen användas. Det gick till exempel inte att ange parametrarna Fullständig och Detaljerad samtidigt eftersom de finns i olika parameteruppsättningar.

Var och en av följande parametrar finns i olika parameteruppsättningar:

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

All kryptisk syntax som kvadrat- och vinkelparenteser i syntaxavsnittet betyder något men kommer att täckas i bilaga A i den här boken. Även om det är viktigt är det ofta svårt att lära sig den kryptiska syntaxen för någon som är ny i PowerShell och kanske inte använder den varje dag.

Mer information för att bättre förstå den kryptiska syntaxen finns i Bilaga A.

För nybörjare finns det ett enklare sätt att ta reda på samma information förutom på vanligt språk.

När den fullständiga parametern Get-Help för anges returneras hela hjälpavsnittet.

Get-Help -Name Get-Help -Full

Ta en stund att köra exemplet på datorn, granska utdata och notera hur informationen grupperas:

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

Observera att med hjälp av parametern Full returnerades flera ytterligare avsnitt, varav ett är avsnittet PARAMETRAR som innehåller mer information än avsnittet med kryptisk SYNTAX.

Den fullständiga parametern är en växelparameter. En parameter som inte kräver något värde kallas för en växelparameter. När en växelparameter anges är dess värde sant och när det inte är det är dess värde falskt.

Om du har gått igenom det här kapitlet i PowerShell-konsolen märkte du att föregående kommando för att visa hela hjälpavsnittet för Get-Help flög förbi på skärmen utan att ge dig en chans att läsa det. Det finns ett bättre sätt.

Help är en funktion som växlar Get-Help till en funktion med namnet more, som är en omslutning för den more.com körbara filen i Windows. I PowerShell-konsolen help finns en sida med hjälp i taget. I ISE fungerar det på samma sätt som Get-Help. Min rekommendation är att använda help funktionen i stället för cmdleten Get-Help eftersom den ger en bättre upplevelse och är mindre att skriva.

Mindre inmatning är dock inte alltid bra. Om du ska spara dina kommandon som ett skript eller dela dem med någon annan måste du använda fullständiga cmdlet- och parameternamn. De fullständiga namnen är självdokumentering, vilket gör dem lättare att förstå. Tänk på nästa person som måste läsa och förstå dina kommandon. Det kan vara du. Dina medarbetare och framtida jag kommer att tacka dig.

Prova att köra följande kommandon i PowerShell-konsolen på Windows 10-labbmiljödatorn.

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

Märkte du några skillnader i utdata från kommandona som visades tidigare när du körde dem på Windows 10-labbmiljödatorn?

Det finns inga andra skillnader än de två sista alternativen som returnerar resultatet en sida i taget. Blankstegsfältet används för att visa nästa sida med innehåll när du använder Help funktionen och Ctrl+C avbryter kommandon som körs i PowerShell-konsolen.

I det första exemplet används cmdleten Get-Help , den andra använder Help funktionen och den tredje utelämnar parametern Name när funktionen används Help . Name är en positionsparameter och används positionellt i det exemplet. Det innebär att värdet kan anges utan att ange parameternamnet, så länge själva värdet anges i rätt position. Hur visste jag vilken position jag skulle ange värdet i? Genom att läsa hjälpen enligt följande exempel.

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

Observera att parameterparametern i föregående exempel användes med hjälpfunktionen för att endast returnera information från hjälpavsnittet för parametern Name. Detta är mycket mer koncist än att manuellt sålla igenom vad som ibland verkar vara ett hundrasidigt hjälpavsnitt.

Baserat på dessa resultat kan du se att parametern Name är positionell och måste anges i position noll (den första positionen) när den används positionellt. Den ordning som parametrar anges i spelar ingen roll om parameternamnet har angetts.

En annan viktig information är att parametern Name förväntar sig att datatypen för dess värde ska vara en enda sträng, som anges av <String>. Om den accepterade flera strängar visas datatypen som <String[]>.

Ibland vill du helt enkelt inte visa hela hjälpavsnittet för ett kommando. Det finns ett antal andra parametrar förutom Fullständig som kan anges med Get-Help eller Help. Prova att köra följande kommandon på Windows 10-labbmiljö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 Fullständig eller Online . Om jag bara är intresserad av exemplen använder jag parametern Exempel och om jag bara är intresserad av en specifik parameter använder jag parametern . Parametern ShowWindow öppnar hjälpavsnittet i ett separat sökbart fönster som kan placeras på en annan bildskärm om du har flera övervakare. Jag har undvikit parametern ShowWindow eftersom det finns en känd bugg där den inte visar hela hjälpavsnittet.

Om du vill ha hjälp i ett separat fönster rekommenderar jag att du antingen använder parametern Online eller använder parametern Fullständig och skickar resultatet till Out-GridView, som du ser i följande exempel.

help Get-Command -Full | Out-GridView

Både cmdleten Out-GridView och parametern ShowWindow för cmdleten Get-Help kräver ett operativsystem med ett grafiskt användargränssnitt (grafiskt användargränssnitt). De genererar ett felmeddelande om du försöker använda någon av dem på Windows Server som har installerats med installationsalternativet Server Core (no-GUI).

Om du vill använda Get-Help för att hitta kommandon använder du jokertecknet asterisk (*) med parametern Namn . Ange en term som du söker efter kommandon på som värde för parametern Namn enligt följande exempel.

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

I föregående exempel * krävs inte jokertecken och om du utelämnar dem får du samma resultat. Get-Help lägger automatiskt till jokertecken i bakgrunden.

help process

Föregående kommando ger samma resultat som när * jokertecknet anges i varje processslut.

Jag föredrar att lägga till dem eftersom det är det alternativ som alltid fungerar konsekvent. Annars krävs de i vissa scenarier och inte i andra. Så snart du lägger till ett jokertecken i mitten av värdet läggs de inte längre automatiskt till i bakgrunden till det värde som du har angett.

help pr*cess

Inga resultat returneras av det kommandot om inte * jokertecknet läggs till i början, slutet eller både början och slutet av pr*cess.

Om det angivna värdet börjar med ett bindestreck genereras ett fel eftersom PowerShell tolkar det som ett parameternamn och det inte finns något sådant parameternamn för cmdleten Get-Help .

help -process

Om det du försöker söka efter är kommandon som slutar med -processbehöver du bara lägga * till jokertecknet i början av värdet.

help *-process

När du söker efter PowerShell-kommandon med Get-Helpvill du vara lite mer vag i stället för att vara för specifik för det du söker efter.

process Sökning efter tidigare hittade endast kommandon som finns process i namnet på kommandot och returnerade endast dessa resultat. När Get-Help används för processesatt söka efter hittar den inga matchningar för kommandonamn, så den utför en sökning i varje hjälpavsnitt i PowerShell i systemet och returnerar eventuella matchningar som hittas. Detta gör att den returnerar ett enormt antal resultat.

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

Genom att söka Help efter process returnerade 10 resultat och använda det för processes att söka efter returnerade 68 resultat. Om bara ett resultat hittas visas själva hjälpavsnittet i stället för en lista med kommandon.

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 kan du avslöja myten om att Help i PowerShell bara kan hitta kommandon som har hjälpämnen.

help *more*
NAME
    more

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


ALIASES
    None


REMARKS
    None

Observera i föregående exempel att det more inte finns något hjälpavsnitt, men Help systemet i PowerShell kunde hitta det. Den hittade bara en matchning och returnerade grundläggande syntaxinformation som du ser när ett kommando inte har något hjälpavsnitt.

PowerShell innehåller flera begreppsmässiga hjälpavsnitt (Om). Följande kommando kan användas för att returnera en lista över alla Om hjälpavsnitt i systemet.

help About_*

Om du begränsar resultatet till ett enda Om hjälpavsnitt visas det faktiska hjälpavsnittet i stället för att returnera en lista.

help about_Updatable_Help

Hjälpsystemet i PowerShell måste uppdateras för att hjälpavsnitten Om ska finnas. Om den första uppdateringen av hjälpsystemet av någon anledning misslyckades på datorn är filerna inte tillgängliga förrän cmdleten Update-Help har körts.

Get-Command

Get-Command är utformad för att hjälpa dig att hitta kommandon. Om du kör Get-Command utan parametrar returneras en lista över alla kommandon i systemet. I följande exempel visas hur du använder cmdleten Get-Command för att avgöra vilka kommandon som finns för att arbeta med processer:

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

Observera att i föregående exempel där Get-Command kördes används substantivparametern och Process anges som värde för substantivparametern . Vad händer om du inte vet hur du använder cmdleten Get-Command ? Du kan använda Get-Help för att visa hjälpavsnittet för Get-Command.

Parametrarna Namn, Substantiv och Verb accepterar jokertecken. I följande exempel visas jokertecken som används med parametern Namn :

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

Jag gillar inte att använda jokertecken med name-parametern Get-Command för eftersom det också returnerar körbara filer som inte är interna PowerShell-kommandon.

Om du ska använda jokertecken med parametern Namn rekommenderar jag att du begränsar resultatet med parametern CommandType .

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

Ett bättre alternativ är att använda antingen verb - eller substantivparametern eller båda eftersom endast PowerShell-kommandon har både verb och substantiv.

Har du hittat något fel med ett hjälpavsnitt? Den goda nyheten är att hjälpavsnitten för PowerShell har öppen källkod och är tillgängliga på PowerShell-Docs-lagringsplatsen på GitHub. Betala det framåt genom att inte bara åtgärda felaktig information för dig själv, men alla andra också. Förgrena bara Lagringsplatsen för PowerShell-dokumentation på GitHub, uppdatera hjälpavsnittet och skicka en pull-begäran. När pull-begäran har accepterats är den korrigerade dokumentationen tillgänglig för alla.

Uppdatera hjälpen

Den lokala kopian av PowerShell-hjälpavsnitten uppdaterades tidigare första gången hjälpen för ett kommando begärdes. Vi rekommenderar att du regelbundet uppdaterar hjälpsystemet eftersom det kan finnas uppdateringar av hjälpinnehållet då och då. Cmdleten Update-Help används för att uppdatera hjälpavsnitten. Det kräver internetåtkomst som standard och för att du ska kunna köra PowerShell förhöjt som administratör.

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

Ett par av modulerna returnerade fel, vilket inte är ovanligt. Om datorn inte hade Internetåtkomst kan du använda cmdleten Save-Help på en annan dator som har Internetåtkomst för att först spara den uppdaterade hjälpinformationen till en filresurs i nätverket och sedan använda SourcePath-parameternUpdate-Help för för att ange den här nätverksplatsen för hjälpavsnitten.

Överväg att konfigurera en schemalagd aktivitet eller lägga till logik i ditt profilskript i PowerShell för att regelbundet uppdatera hjälpinnehållet på datorn. Profilskript diskuteras i ett kommande kapitel.

Sammanfattning

I det här kapitlet har du lärt dig att hitta kommandon med både Get-Help och Get-Command. Du har lärt dig hur du använder hjälpsystemet för att ta reda på hur du använder kommandon när du hittar dem. Du har också lärt dig hur du uppdaterar innehållet i hjälpavsnitten när uppdateringar är tillgängliga.

Min utmaning för dig är att lära dig ett PowerShell-kommando om dagen.

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

Genomgång

  1. Är parametern DisplayName för Get-Service 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?

Om du vill veta mer om de ämnen som beskrivs i det här kapitlet rekommenderar jag att du läser följande PowerShell-hjälpavsnitt.

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