Kapitola 2 – Systém nápovědy

Dvě skupiny IT specialistů získaly psaný test bez přístupu k počítači, aby určily úroveň dovedností pomocí PowerShellu. Začátečníci PowerShellu byli umístěni v jedné skupině a odborníci na jinou. Na základě výsledků testu se zdá, že mezi těmito dvěma skupinami není moc rozdíl v úrovni dovednosti. Obě skupiny měly druhý test podobný prvnímu. Tentokrát jim byl udělen přístup k počítači pomocí PowerShellu, který neměl přístup k internetu. Výsledky druhého testu ukázaly obrovský rozdíl v úrovni dovedností mezi dvěma skupinami. Odborníci odpovědi vždy nezná, ale vědí, jak zjistit odpovědi.

Jaký byl rozdíl ve výsledcích prvního a druhého testu mezi těmito dvěma skupinami?

Rozdíly v těchto dvou testech byly způsobené tím, že si odborníci nepamatují, jak používat tisíce příkazů v PowerShellu. Naučí se používat systém nápovědy v PowerShellu velmi dobře. To jim umožní najít potřebné příkazy v případě potřeby a jak tyto příkazy používat, jakmile je najdou.

Slyšel jsem, že Jeffrey Snover, vynálezce PowerShellu, několikrát řekl podobný příběh.

Mastering the help system is the key to being successful with PowerShell.

Zjistitelnost

Zkompilované příkazy v PowerShellu se nazývají rutiny. Rutina se vyslovuje jako command-let (ne CMD-let). Názvy rutin mají formu jedinečných příkazů Sloveso-Podstatné jméno, aby je bylo možné snadno zjistit. Například rutina pro určení, které procesy jsou spuštěné Get-Process , a rutina pro načtení seznamu služeb a jejich stavů je Get-Service. V PowerShellu existují další typy příkazů, jako jsou aliasy a funkce, které budou popsané dále v této knize. Výraz PowerShell je obecný termín, který se často používá k odkazování na jakýkoli typ příkazu v PowerShellu bez ohledu na to, jestli se jedná o rutinu, funkci nebo alias.

Tři základní rutiny v PowerShellu

  • Get-Command
  • Get-Help
  • Get-Member (na kapitolu 3)

Jednou z otázek, na kterou se často ptám, je, jak zjistíte, jaké příkazy jsou v PowerShellu? Příkazy Get-Command lze použít k Get-Help určení příkazů.

Get-Help

Get-Help je příkaz multipurpose. Get-Help vám pomůže naučit se používat příkazy, jakmile je najdete. Get-Help lze také použít k vyhledání příkazů, ale v jiném a nepřímojším způsobu v porovnání s Get-Command.

Když Get-Help se příkazy používají k vyhledání příkazů, nejprve vyhledá shodu se zástupnýmimimimi sadou názvů příkazů na základě zadaného vstupu. Pokud nenajde shodu, prohledá sama témata nápovědy a pokud se nenajde žádná shoda, vrátí se chyba. Na rozdíl od oblíbené víry lze použít k vyhledání příkazů, Get-Help které nemají témata nápovědy.

První věc, kterou potřebujete vědět o systému nápovědy v PowerShellu, je způsob použití rutiny Get-Help . Následující příkaz slouží k zobrazení tématu nápovědy pro 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"):

Počínaje PowerShellem verze 3 se powershellová nápověda nedoručí s operačním systémem. Při prvním Get-Help spuštění příkazu se zobrazí předchozí zpráva. Pokud se místo rutiny help používá Get-Help funkce nebo man alias, nezobrazí se tato výzva.

Když stisknete klávesu Y, stisknutím klávesy Y spustíte rutinu Update-Help , která ve výchozím nastavení vyžaduje přístup k internetu. Y lze zadat v obou velkých nebo malých písmenech.

Po stažení nápovědy a dokončení aktualizace se téma nápovědy vrátí pro zadaný příkaz:

Get-Help -Name Get-Help

Chvíli spusťte tento příklad na počítači, zkontrolujte výstup a poznamenejte si, jak se informace seskupují:

  • NAME
  • SYNOPSE
  • SYNTAXE
  • POPIS
  • SOUVISEJÍCÍ ODKAZY
  • POZNÁMKY

Jak vidíte, témata nápovědy můžou obsahovat obrovské množství informací, a to ani celé téma nápovědy.

I když není specifický pro PowerShell, parametr je způsob, jak zadat vstup do příkazu. Get-Help má mnoho parametrů, které lze zadat, aby se vrátilo celé téma nápovědy nebo podmnožina.

Část syntaxe tématu nápovědy zobrazená v předchozí sadě výsledků obsahuje seznam všech parametrů pro Get-Help. Na první pohled se zobrazí stejné parametry, které jsou uvedeny šest různýchkrát. Každý z těchto různých bloků v oddílu syntaxe je sada parametrů. To znamená, že rutina Get-Help má šest různých sad parametrů. Pokud se podrobněji podíváte, všimnete si, že se v každé sadě parametrů liší alespoň jeden parametr.

Sady parametrů se vzájemně vylučují. Jakmile se použije jedinečný parametr, který existuje pouze v jedné ze sad parametrů, lze použít pouze parametry obsažené v této sadě parametrů. Například úplné i podrobné parametry nelze zadat současně, protože jsou v různých sadách parametrů.

Každý z následujících parametrů je v různých sadách parametrů:

  • Do bloku
  • Detailed
  • Příklady
  • Online
  • Parametr
  • ShowWindow

Veškerá kryptografická syntaxe, jako jsou hranaté a úhlové závorky v oddílu syntaxe, znamená něco, ale bude pokryta v dodatku A této knihy. I když je důležité, učení kryptografické syntaxe je často obtížné zachovat pro někoho, kdo je v PowerShellu novinkou, a nemusí ji používat každý den.

Další informace, které vám pomohou lépe porozumět kryptografické syntaxi, najdete v dodatku A.

Pro začátečníky existuje jednodušší způsob, jak zjistit stejné informace s výjimkou prostého jazyka.

Pokud je zadán úplný parametr Get-Help , vrátí se celé téma nápovědy.

Get-Help -Name Get-Help -Full

Chvíli spusťte tento příklad na počítači, zkontrolujte výstup a poznamenejte si, jak se informace seskupují:

  • NAME
  • SYNOPSE
  • SYNTAXE
  • POPIS
  • PARAMETRY
  • VSTUP
  • VÝSTUP
  • POZNÁMKY
  • PŘÍKLADY
  • SOUVISEJÍCÍ ODKAZY

Všimněte si, že použití úplného parametru vrátilo několik dalších částí, z nichž jeden je oddíl PARAMETERS, který poskytuje více informací než oddíl kryptografické syntaxe.

Úplný parametr je parametr přepínače. Parametr, který nevyžaduje hodnotu, se nazývá parametr přepínače. Pokud je zadán parametr přepínače, jeho hodnota je true a pokud není, její hodnota je false.

Pokud jste si prošli tuto kapitolu v konzole PowerShellu, všimli jste si, že předchozí příkaz zobrazující celé téma nápovědy pro Get-Help letět na obrazovce, aniž byste si ho mohli přečíst. Existuje lepší způsob.

Help je funkce, která předá Get-Help funkci s názvem more, což je obálka spustitelného more.com souboru ve Windows. V konzole help PowerShellu poskytuje současně jednu stránku nápovědy. Ve službě ISE funguje stejně jako Get-Help. Doporučujeme místo rutiny help použít funkci Get-Help , protože poskytuje lepší prostředí a je méně typové.

Méně psaní ale není vždy dobrá věc. Pokud příkazy uložíte jako skript nebo je nasdílíte někomu jinému, nezapomeňte použít úplné názvy rutin a parametrů. Úplná jména jsou samodokumentovaná, což jim usnadňuje pochopení. Zamyslete se nad další osobou, která si musí přečíst a pochopit vaše příkazy. Mohl bys to být ty. Děkuji vám vaši spolupracovníci a budoucí sebe sama.

Zkuste v konzole PowerShellu na počítači s Windows 10 testovacím prostředím spustit následující příkazy.

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

Všimli jste si rozdílů ve výstupu z dříve uvedených příkazů, když jste je spustili na počítači s Windows 10 testovacím prostředím?

Žádné rozdíly nejsou jiné než poslední dvě možnosti, které vrací výsledky po jedné stránce. Mezerník slouží k zobrazení další stránky obsahu při použití Help funkce a Ctrl+C zruší příkazy spuštěné v konzole PowerShellu.

První příklad používá rutinu Get-Help , druhá používá Help funkci a třetí vynechá parametr Name při použití Help funkce. Název je poziční parametr a v tomto příkladu se používá poziční. To znamená, že hodnotu lze zadat bez zadání názvu parametru, pokud je samotná hodnota zadaná ve správné pozici. Jak jsem věděl, v jaké pozici se má zadat hodnota? Když si přečtete nápovědu, jak je znázorněno v následujícím příkladu.

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

Všimněte si, že v předchozím příkladu byl parametr Parametr použit s funkcí Nápověda k vrácení pouze informací z tématu nápovědy pro parametr Name . To je mnohem stručnější, než se snažíte ručně projít tím, co se někdy zdá jako stostránkové téma nápovědy.

Na základě těchto výsledků vidíte, že parametr Name je poziční a při použití musí být zadán na pozici nula (první pozice). Pořadí, ve jakém jsou parametry zadané, nezáleží na tom, jestli je zadaný název parametru.

Jednou z dalších důležitých informací je, že parametr Name očekává, že datový typ pro jeho hodnotu bude jeden řetězec, který je označený <String>. Pokud přijal více řetězců, datový typ by byl uveden jako <String[]>.

Někdy prostě nechcete zobrazit celé téma nápovědy pro příkaz. Existuje několik dalších parametrů kromě Full , které lze zadat pomocí Get-Help nebo Help. Zkuste na počítači s Windows 10 testovacím prostředím spustit následující příkazy:

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

Obvykle používám help <command name> s parametrem Full nebo Online . Pokud mě zajímají jenom příklady, použijem parametr Příklady a pokud mě zajímá jenom konkrétní parametr, použijem parametr Parametr . Parametr ShowWindow otevře téma nápovědy v samostatném vyhledávacím okně, které lze umístit na jiný monitor, pokud máte více monitorů. Vyhnul(a) jsem se parametru ShowWindow , protože existuje známá chyba, ve které se nezobrazuje celé téma nápovědy.

Pokud chcete pomoct v samostatném okně, doporučujeme buď použít parametr Online , nebo použít úplný parametr a pište výsledky Out-GridViewtak, jak je znázorněno v následujícím příkladu.

help Get-Command -Full | Out-GridView

Rutina Out-GridView i parametr Get-HelpShowWindow rutiny vyžadují operační systém s grafickým uživatelským rozhraním ( grafické uživatelské rozhraní). Vygenerují chybovou zprávu, pokud se pokusíte použít některý z nich na Windows Serveru, který je nainstalován pomocí možnosti instalace jádra serveru (bez grafického uživatelského rozhraní).

Get-Help Pokud chcete příkazy najít, použijte zástupný znak hvězdičky (*) s parametrem Name. Zadejte termín, pro který hledáte příkazy jako hodnotu parametru Name , jak je znázorněno v následujícím příkladu.

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

V předchozím příkladu * nejsou zástupné znaky povinné a vynechání je vytvoří stejný výsledek. Get-Help automaticky přidá zástupné znaky na pozadí.

help process

Předchozí příkaz vytvoří stejné výsledky jako zadání zástupného znaku * na každém konci procesu.

Raději je přidám, protože to je možnost, která vždy funguje konzistentně. V opačném případě se vyžadují v určitých scénářích, nikoli v jiných scénářích. Jakmile přidáte zástupný znak uprostřed hodnoty, nebudou se už automaticky přidávat na pozadí k zadané hodnotě.

help pr*cess

Tento příkaz nevrácí žádné výsledky, pokud * není zástupný znak přidán na začátek, konec nebo začátek i konec pr*cess.

Pokud zadaná hodnota začíná pomlčkou, vygeneruje se chyba, protože PowerShell ji interpretuje jako název parametru a pro rutinu neexistuje žádný takový název parametru Get-Help .

help -process

Pokud se pokoušíte hledat příkazy, které končí, -processstačí na začátek hodnoty přidat * zástupný znak.

help *-process

Když hledáte příkazy PowerShellu, Get-Helpchcete být trochu neurčitější místo toho, abyste byli příliš konkrétní s tím, co hledáte.

process Hledání dříve nalezených pouze příkazů obsažených process v názvu příkazu a vrácení pouze těchto výsledků. Pokud Get-Help se používá k hledání processes, nenajde žádné shody pro názvy příkazů, takže provede hledání každého tématu nápovědy v PowerShellu ve vašem systému a vrátí všechny nalezené shody. To způsobí, že vrátí obrovský počet výsledků.

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

Použití Help k vyhledání process vrácené 10 výsledků a jeho použití k vyhledání processes vrácených 68 výsledků. Pokud se najde jenom jeden výsledek, místo seznamu příkazů se místo seznamu příkazů zobrazí samotné téma nápovědy.

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"

Teď, když chcete zrušit mýt, který Help v PowerShellu dokáže najít jenom příkazy, které obsahují témata nápovědy.

help *more*
NAME
    more

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


ALIASES
    None


REMARKS
    None

Všimněte si v předchozím příkladu, že more téma nápovědy nemá, ale Help systém v PowerShellu ho mohl najít. Našla pouze jednu shodu a vrátila základní informace o syntaxi, které uvidíte, když příkaz nemá téma nápovědy.

PowerShell obsahuje mnoho koncepčních témat nápovědy (O produktu). Následující příkaz lze použít k vrácení seznamu všech témat nápovědy v systému.

help About_*

Omezení výsledků na jedno téma nápovědy o nápovědě místo vrácení seznamu zobrazí skutečné téma nápovědy.

help about_Updatable_Help

Systém nápovědy v PowerShellu se musí aktualizovat, aby byla k dispozici témata nápovědy O produktu. Pokud se z nějakého důvodu počáteční aktualizace systému nápovědy na vašem počítači nezdařila, nebudou soubory k dispozici, dokud Update-Help se rutina úspěšně nespustí.

Get-Command

Get-Command je navržený tak, aby vám pomohl najít příkazy. Spuštění Get-Command bez parametrů vrátí seznam všech příkazů ve vašem systému. Následující příklad ukazuje použití Get-Command rutiny k určení, které příkazy existují pro práci s procesy:

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

Všimněte si, že v předchozím příkladu, kde Get-Command byl spuštěn, se použije parametr Podstatné jméno a Process je zadán jako hodnota parametru Podstatné jméno . Co když jste nevěděli, jak tuto rutinu Get-Command používat? Můžete použít Get-Help k zobrazení tématu nápovědy pro Get-Command.

Parametry Name, Noun a Slovesa přijímají zástupné cardy. Následující příklad ukazuje použití zástupných znaků s parametrem Name :

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

Nejsem fanoušek používání zástupných znaků s parametrem Get-CommandName, protože také vrací spustitelné soubory, které nejsou nativními příkazy PowerShellu.

Pokud použijete zástupné znaky s parametrem Name , doporučujeme omezit výsledky parametrem CommandType .

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

Lepší možností je použít parametr Sloveso nebo Podstatné jméno nebo obojí, protože pouze příkazy PowerShellu mají příkazy i podstatná jména.

Našli jste něco špatného s tématem nápovědy? Dobrou zprávou jsou témata nápovědy pro PowerShell, která jsou opensourcová a dostupná v úložišti PowerShell-Docs na GitHubu. Přeposílejte ji nejen opravou nesprávných informací pro sebe, ale také všemi ostatními. Jednoduše vytvořte fork úložiště dokumentace PowerShellu na GitHubu, aktualizujte téma nápovědy a odešlete žádost o přijetí změn. Po přijetí žádosti o přijetí změn je k dispozici opravená dokumentace všem uživatelům.

Aktualizace nápovědy

Místní kopie témat nápovědy PowerShellu byla dříve aktualizována první nápověda k příkazu. Doporučuje se pravidelně aktualizovat systém nápovědy, protože obsah nápovědy může být aktualizován od času. Rutina Update-Help slouží k aktualizaci témat nápovědy. Vyžaduje přístup k internetu ve výchozím nastavení a aby byl spuštěný PowerShell se zvýšenými oprávněními jako správce.

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

Několik modulů vrátilo chyby, což není neobvyklé. Pokud počítač nemá přístup k internetu, můžete použít rutinu Save-Help na jiném počítači, který má přístup k internetu, a nejprve uložit aktualizované informace nápovědy do sdílené složky ve vaší síti a potom pomocí parametru Update-HelpSourcePath určit toto umístění sítě pro témata nápovědy.

Zvažte nastavení naplánované úlohy nebo přidání logiky do skriptu profilu v PowerShellu, abyste pravidelně aktualizovali obsah nápovědy na vašem počítači. Skripty profilu se probírají v nadcházející kapitole.

Souhrn

V této kapitole jste se naučili, jak najít příkazy s oběma Get-Help a Get-Command. Naučili jste se, jak pomocí systému nápovědy zjistit, jak používat příkazy, jakmile je najdete. Dozvěděli jste se také, jak aktualizovat obsah témat nápovědy, když jsou k dispozici aktualizace.

Mým úkolem je naučit se powershellový příkaz denně.

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

Opakování

  1. Je parametr Get-ServiceDisplayName pozice?
  2. Kolik sad parametrů rutina Get-Process obsahuje?
  3. Jaké příkazy PowerShellu existují pro práci s protokoly událostí?
  4. Jaký je příkaz PowerShellu pro vrácení seznamu procesů PowerShellu spuštěných na vašem počítači?
  5. Jak aktualizujete obsah nápovědy PowerShellu, který je uložený na vašem počítači?

Pokud chcete získat další informace o tématech popsaných v této kapitole, doporučujeme přečíst si následující témata nápovědy k PowerShellu.

V další kapitole se dozvíte o rutině Get-Member i o objektech, vlastnostech a metodách.