Kapitola 2 - Systém nápovědy

Dvě skupiny IT specialistů získaly napsaný test bez přístupu k počítači, aby bylo možné určit ú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 úroveň dovedností mezi těmito dvěma skupinami není moc rozdílná. 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 na úrovni dovedností mezi těmito dvěma skupinami. Odborníci odpovědi vždy nezná, ale vědí, jak tyto odpovědi zjistit.

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

Rozdíly pozorované 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. Díky tomu můžou najít potřebné příkazy v případě potřeby a jak tyto příkazy používat, jakmile je najdete.

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

Zvládnutí systému nápovědy je klíčem k úspěchu pomocí PowerShellu.

Zjistitelnost

Kompilované příkazy v PowerShellu se nazývají rutiny. Rutina se vyslovuje "command-let" (ne CMD-let). Názvy rutin mají formu příkazů s jednotným slovesem-podstatným jménem, aby je bylo možné snadno zjistit. Například rutina pro určení spuštěných Get-Process procesů a rutiny pro načtení seznamu služeb a jejich stavů .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 (pokryté kapitolou 3)

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

Get-Help

Get-Help je příkaz s více účely. 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 jiným a nepřímým způsobem v porovnání s Get-Command.

Pokud Get-Help se používá k vyhledání příkazů, nejprve vyhledá zástupné závislosti názvů příkazů na základě zadaného vstupu. Pokud nenajde shodu, vyhledá samotná témata nápovědy a pokud nenajde žádnou shodu, vrátí se chyba. Na rozdíl od populární víry Get-Help lze použít k vyhledání příkazů, 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 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 nápověda k PowerShellu nedoručuje s operačním systémem. Při prvním Get-Help spuštění příkazu se zobrazí předchozí zpráva. help Pokud se místo rutiny používá Get-Help funkce nebo man alias, nezobrazí se tato výzva.

Když stisknete klávesu Y , spustí se Update-Help rutina, která ve výchozím nastavení vyžaduje přístup k internetu. Y lze zadat velkým nebo menším písmenem.

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, představuje parametr způsob, jak zadat vstup do příkazu. Get-Help obsahuje 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 uvedené šestkrá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 podíváte blíže, 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ů:

  • Úplný
  • Podrobné
  • 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 s PowerShellem novinkou, a nemusí ji používat každý den.

Další informace o lepším pochopení kryptografické syntaxe 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ý parametrGet-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 switch, jeho hodnota je true a pokud není, její hodnota je false.

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

Help je funkce, která kanáluje 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. V ISE to 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ě psaní.

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 samodokumentování, což usnadňuje jejich pochopení. Zamyslete se nad další osobou, která musí číst a pochopit vaše příkazy. Mohl bys to být ty. Díky svým spolupracovníkům a budoucímu vlastnímu budoucnosti.

Zkuste v konzole PowerShellu na počítači s testovacím prostředím Windows 10 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 testovacím prostředím s Windows 10?

Jiné rozdíly než poslední dvě možnosti vracejí výsledky po jedné stránce. Mezerník slouží k zobrazení další stránky obsahu při použití Help funkce a Kombinace kláves 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ím způsobem. To znamená, že hodnotu lze zadat bez zadání názvu parametru, pokud je samotná hodnota zadána ve správném umístění. Jak jsem věděli, 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 Parameter 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, co se někdy zdá jako stostrárkové téma nápovědy.

Na základě těchto výsledků můžete vidět, že parametr Name je poziční a při použití musí být zadán na pozici nula (první pozice). Pořadí, ve které 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 testovacím prostředím s Windows 10 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ám zájem jenom o 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 prohledávatelném okně, které lze umístit na jiný monitor, pokud máte více monitorů. Vyhnul jsem se parametru ShowWindow , protože existuje známá chyba, kdy se nezobrazuje celé téma nápovědy.

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

help Get-Command -Full | Out-GridView

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

Pokud chcete příkazy Get-Help 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 doprostřed hodnoty přidáte zástupný znak, 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čí -process, stačí na začátek hodnoty přidat * zástupný znak.

help *-process

Při hledání příkazů PowerShellu Get-Helps , chcete být trochu vágní, místo abyste byli příliš konkrétní s tím, co hledáte.

Hledání dříve nalezených process 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...

Hledání Help vrácených process 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 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, že Help v PowerShellu můžete najít jenom příkazy, které mají 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 neobsahuje 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 o 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, soubory nebudou 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 jakýchkoli parametrů vrátí seznam všech příkazů ve vašem systému. Následující příklad ukazuje použití rutiny Get-Command 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ého jména . 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 Verb 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škem použití zástupných znaků s parametrem Name , Get-Command protože také vrací spustitelné soubory, které nejsou nativními příkazy PowerShellu.

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

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

Lepší možností je použít buď 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ě 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. Platíte ho nejen tím, že opravíte nesprávné informace pro sebe, ale i všechny ostatní. 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 pro všechny uživatele.

Aktualizace nápovědy

Místní kopie témat nápovědy PowerShellu byla dříve aktualizována při prvním vyžádání nápovědy k příkazu. Doporučuje se pravidelně aktualizovat systém nápovědy, protože obsah nápovědy může občas aktualizovat. Rutina Update-Help slouží k aktualizaci témat nápovědy. Ve výchozím nastavení vyžaduje přístup k internetu a pro spuštění PowerShellu 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átily chyby, které nejsou 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-Help SourcePath určit toto umístění v síti pro témata nápovědy.

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

Shrnutí

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

Přehled

  1. Je parametr DisplayName poziceGet-Service?
  2. Kolik sad parametrů má rutina Get-Process ?
  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 seznámíte s rutinou Get-Member a objekty, vlastnostmi a metodami.