Rozdział 2 — System pomocy

Dwie grupy profesjonalistów IT otrzymały napisany test bez dostępu do komputera w celu określenia poziomu umiejętności za pomocą programu PowerShell. Początkujący użytkownicy programu PowerShell zostali umieszczeni w jednej grupie i eksperci w innej. Na podstawie wyników testu nie wydaje się być wiele różnic w poziomie umiejętności między dwiema grupami. Obie grupy otrzymały drugi test podobny do pierwszego. Tym razem otrzymali dostęp do komputera z programem PowerShell, który nie miał dostępu do Internetu. Wyniki drugiego testu wykazały ogromną różnicę w poziomie umiejętności między dwiema grupami. Eksperci nie zawsze znają odpowiedzi, ale wiedzą, jak ustalić odpowiedzi.

Jaka była różnica w wynikach pierwszego i drugiego testu między tymi dwiema grupami?

Różnice zaobserwowane w tych dwóch testach były spowodowane tym, że eksperci nie zapamiętują sposobu używania tysięcy poleceń w programie PowerShell. Dowiedzą się, jak bardzo dobrze korzystać z systemu pomocy w programie PowerShell. Dzięki temu można znaleźć niezbędne polecenia w razie potrzeby i jak używać tych poleceń po ich znalezieniu.

Słyszałem Jeffrey Snover, wynalazca programu PowerShell, opowiada podobną historię kilka razy.

Opanowanie systemu pomocy jest kluczem do pomyślnego zakończenia pracy z programem PowerShell.

Odnajdywania

Kompilowane polecenia w programie PowerShell są nazywane poleceniami cmdlet. Polecenie cmdlet jest wymawiane jako "command-let" (nie CMD-let). Nazwy poleceń cmdlet mają postać pojedynczych poleceń "Verb-Noun", aby ułatwić ich odnajdywanie. Na przykład polecenie cmdlet do określania, jakie procesy są uruchomione Get-Process , i polecenie cmdlet do pobierania listy usług i ich stanów to Get-Service. W programie PowerShell istnieją inne typy poleceń, takie jak aliasy i funkcje, które zostaną omówione w dalszej części tej książki. Termin polecenie programu PowerShell to ogólny termin, który jest często używany do odwoływania się do dowolnego typu polecenia w programie PowerShell, niezależnie od tego, czy jest to polecenie cmdlet, funkcja lub alias.

Trzy podstawowe polecenia cmdlet w programie PowerShell

  • Get-Command
  • Get-Help
  • Get-Member (omówiony w rozdziale 3)

Jednym z często zadawanych pytań jest to, jak dowiedzieć się, jakie polecenia są w programie PowerShell? Zarówno, jak Get-Command i Get-Help może służyć do określania poleceń.

Get-Help

Get-Help jest poleceniem wielozadaniowym. Get-Help pomaga dowiedzieć się, jak używać poleceń po ich znalezieniu. Get-Help może również służyć do lokalizowania poleceń, ale w inny i bardziej pośredni sposób w porównaniu do Get-Command.

Gdy Get-Help jest używany do lokalizowania poleceń, najpierw wyszukuje symbole wieloznaczne nazw poleceń na podstawie podanych danych wejściowych. Jeśli nie znajdzie dopasowania, przeszukuje same tematy pomocy i jeśli nie zostanie zwrócony błąd. W przeciwieństwie do popularnego przekonania, można użyć do znajdowania poleceń, Get-Help które nie mają tematów pomocy.

Pierwszą rzeczą, którą musisz wiedzieć o systemie pomocy w programie PowerShell, jest sposób użycia Get-Help polecenia cmdlet. Następujące polecenie służy do wyświetlania tematu pomocy dla Get-Helpprogramu .

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

Począwszy od programu PowerShell w wersji 3, pomoc programu PowerShell nie jest dostarczana z systemem operacyjnym. Przy pierwszym Get-Help uruchomieniu polecenia zostanie wyświetlony poprzedni komunikat. Jeśli funkcja help lub man alias jest używana zamiast polecenia cmdlet, nie otrzymujesz tego monitu Get-Help .

Udzielenie odpowiedzi tak przez naciśnięcie klawisza Update-HelpY powoduje uruchomienie polecenia cmdlet, które domyślnie wymaga dostępu do Internetu. Y można określić w wielkie lub małe litery.

Po pobraniu pomocy i zakończeniu aktualizacji temat pomocy zostanie zwrócony dla określonego polecenia:

Get-Help -Name Get-Help

Poświęć chwilę na uruchomienie tego przykładu na komputerze, przejrzyj dane wyjściowe i zanotuj sposób grupowania informacji:

  • NAME
  • STRESZCZENIE
  • SKŁADNIA
  • OPIS
  • POWIĄZANE LINKI
  • UWAGI

Jak widać, tematy pomocy mogą zawierać ogromną ilość informacji i nie jest to nawet cały temat pomocy.

Chociaż nie jest specyficzny dla programu PowerShell, parametr jest sposobem dostarczania danych wejściowych do polecenia. Get-Help ma wiele parametrów, które można określić w celu zwrócenia całego tematu pomocy lub podzbioru.

Sekcja składni tematu pomocy pokazana w poprzednim zestawie wyników zawiera listę wszystkich parametrów dla elementu Get-Help. Na pierwszy rzut oka wydaje się, że te same parametry są wyświetlane sześć razy. Każdy z tych różnych bloków w sekcji składni jest zestawem parametrów. Oznacza to, że Get-Help polecenie cmdlet ma sześć różnych zestawów parametrów. Jeśli przyjrzysz się bliżej, zauważysz, że co najmniej jeden parametr różni się w każdym z zestawów parametrów.

Zestawy parametrów wykluczają się wzajemnie. Gdy używany jest unikatowy parametr, który istnieje tylko w jednym z zestawów parametrów, można użyć tylko parametrów zawartych w tym zestawie parametrów. Na przykład nie można jednocześnie określić parametrów Pełny i Szczegółowy , ponieważ znajdują się one w różnych zestawach parametrów.

Każdy z następujących parametrów jest w różnych zestawach parametrów:

  • Pełne
  • szczegółowo
  • Przykłady
  • Tryb online
  • Parametr
  • Pokażwindow

Cała składnia cryptic, taka jak nawiasy kwadratowe i kątowe w sekcji składni, oznacza coś, ale zostaną omówione w dodatku A tej książki. Chociaż ważne, uczenie się składni kriptycznej jest często trudne do zachowania dla kogoś, kto jest nowy w programie PowerShell i może nie używać go codziennie.

Aby uzyskać więcej informacji, aby lepiej zrozumieć składnię krzywą, zobacz Dodatek A.

Dla początkujących jest łatwiejszy sposób na ustalenie tych samych informacji z wyjątkiem zwykłego języka.

Po określeniu pełnego parametru zostanie Get-Help zwrócony cały temat pomocy.

Get-Help -Name Get-Help -Full

Poświęć chwilę na uruchomienie tego przykładu na komputerze, przejrzyj dane wyjściowe i zanotuj sposób grupowania informacji:

  • NAME
  • STRESZCZENIE
  • SKŁADNIA
  • OPIS
  • PARAMETRY
  • DANE WEJŚCIOWE
  • DANE WYJŚCIOWE
  • UWAGI
  • PRZYKŁADY
  • POWIĄZANE LINKI

Zwróć uwagę, że użycie parametru Full zwróciło kilka dodatkowych sekcji, z których jedna jest sekcją PARAMETERS, która zawiera więcej informacji niż w sekcji SKŁADNIa kriptyczna.

Pełny parametr jest parametrem przełącznika. Parametr, który nie wymaga wartości, jest nazywany parametrem przełącznika. Po określeniu parametru przełącznika jego wartość jest prawdziwa, a gdy nie, jego wartość jest fałszem.

Jeśli korzystasz z tego rozdziału w konsoli programu PowerShell, zauważysz, że poprzednie polecenie wyświetliło pełny temat pomocy dla Get-Help poleciał na ekranie bez możliwości przeczytania go. Jest lepszy sposób.

Help to funkcja, która potokuje Get-Help do funkcji o nazwie more, która jest otoką more.com pliku wykonywalnego w systemie Windows. W konsoli help programu PowerShell udostępnia jedną stronę pomocy w danym momencie. W środowisku ISE działa tak samo jak Get-Help. Moim zaleceniem jest użycie help funkcji zamiast Get-Help polecenia cmdlet, ponieważ zapewnia lepsze środowisko i jest mniej do wpisywania.

Mniej wpisywania nie zawsze jest jednak dobrą rzeczą. Jeśli zamierzasz zapisać polecenia jako skrypt lub udostępnić je innej osobie, pamiętaj, aby użyć pełnych nazw poleceń cmdlet i parametrów. Pełne nazwy to samodzielne dokumentowanie, co ułatwia ich zrozumienie. Pomyśl o następnej osobie, która musi przeczytać i zrozumieć swoje polecenia. To może być ty. Twoi współpracownicy i przyszłe ja dziękują.

Spróbuj uruchomić następujące polecenia w konsoli programu PowerShell na komputerze środowiska laboratoryjnego Windows 10.

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

Czy podczas uruchamiania ich na komputerze Windows 10 środowisku laboratoryjnym wystąpiły różnice w danych wyjściowych z poprzednio wymienionych poleceń?

Nie ma żadnych różnic innych niż dwie ostatnie opcje, które zwracają wyniki po jednej stronie naraz. Pasek spacji służy do wyświetlania następnej strony zawartości podczas korzystania z Help funkcji i ctrl+C anuluje polecenia uruchomione w konsoli programu PowerShell.

W pierwszym przykładzie Get-Help użyto polecenia cmdlet , drugi używa Help funkcji, a trzeci pomija parametr Name podczas korzystania z Help funkcji. Nazwa jest parametrem pozycyjnym i jest używana pozycyjnie w tym przykładzie. Oznacza to, że wartość można określić bez określania nazwy parametru, o ile sama wartość jest określona w prawidłowej pozycji. Jak sprawdzić, w jakiej pozycji należy określić wartość? Czytając pomoc, jak pokazano w poniższym przykładzie.

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

Zwróć uwagę, że w poprzednim przykładzie parametr Parametr był używany z funkcją Pomoc tylko do zwracania informacji z tematu pomocy dla parametru Name . Jest to o wiele bardziej zwięzłe niż próba ręcznego przesiewania tego, co czasami wydaje się sto stron temat pomocy.

Na podstawie tych wyników widać, że parametr Name jest pozycyjny i musi być określony w pozycji zero (pierwszej pozycji), gdy jest używany pozycyjnie. Kolejność, w jaką określono parametry, nie ma znaczenia, czy określono nazwę parametru.

Innym ważnym elementem informacji jest to, że parametr Name oczekuje, że typ danych jego wartości będzie pojedynczym ciągiem, który jest oznaczony przez <String>. Jeśli zaakceptowano wiele ciągów, typ danych zostanie wyświetlony jako <String[]>.

Czasami po prostu nie chcesz wyświetlać całego tematu pomocy dla polecenia. Istnieje wiele innych parametrów oprócz pełnej , które można określić za pomocą Get-Help polecenia lub Help. Spróbuj uruchomić następujące polecenia na komputerze środowiska laboratoryjnego Windows 10:

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

Zazwyczaj używam help <command name> z parametrem Full lub Online . Jeśli interesuje mnie tylko przykłady, użyję parametru Examples i jeśli interesuje mnie tylko określony parametr, użyję parametru Parametr . Parametr ShowWindow otwiera temat pomocy w osobnym oknie z możliwością wyszukiwania, które można umieścić na innym monitorze, jeśli masz wiele monitorów. Unikałem parametru ShowWindow , ponieważ występuje znana usterka, w której nie wyświetla całego tematu pomocy.

Jeśli potrzebujesz pomocy w osobnym oknie, moim zaleceniem jest użycie parametru Online lub użycie parametru Full i potoku wyników do Out-GridViewmetody , jak pokazano w poniższym przykładzie.

help Get-Command -Full | Out-GridView

Zarówno polecenie cmdlet, Out-GridView jak i parametr Get-HelpShowWindow polecenia cmdlet wymagają systemu operacyjnego z graficznym interfejsem użytkownika . Wygenerują komunikat o błędzie, jeśli spróbujesz użyć jednego z nich w systemie Windows Server, który został zainstalowany przy użyciu opcji instalacji server core (bez graficznego interfejsu użytkownika).

Aby użyć Get-Help polecenia do znajdowania poleceń, użyj symbolu wieloznakowego gwiazdki (*) z parametrem Name . Określ termin, dla którego szukasz poleceń jako wartość parametru Name , jak pokazano w poniższym przykładzie.

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

W poprzednim przykładzie * symbole wieloznaczne nie są wymagane i pomijanie ich powoduje wygenerowanie tego samego wyniku. Get-Help automatycznie dodaje symbole wieloznaczne za kulisami.

help process

Poprzednie polecenie generuje takie same wyniki, jak określanie symbolu * wieloznacznych na każdym końcu procesu.

Wolę je dodać, ponieważ jest to opcja, która zawsze działa konsekwentnie. W przeciwnym razie są one wymagane w niektórych scenariuszach, a nie w innych. Po dodaniu symbolu wieloznakowego w środku wartości nie są one już automatycznie dodawane w tle do określonej wartości.

help pr*cess

Żadne wyniki nie są zwracane przez to polecenie, chyba że * symbol wieloznaczny jest dodawany do początku, końca lub zarówno początku, jak i końca pr*cess.

Jeśli określona wartość zaczyna się od kreski, zostanie wygenerowany błąd, ponieważ program PowerShell interpretuje ją jako nazwę parametru i nie istnieje taka nazwa parametru Get-Help dla polecenia cmdlet.

help -process

Jeśli szukasz poleceń kończących się ciągiem -process, wystarczy dodać * symbol wieloznaczny na początku wartości.

help *-process

Podczas wyszukiwania poleceń programu PowerShell za pomocą Get-Helppolecenia należy być nieco bardziej niejasne zamiast być zbyt szczegółowe z szukanymi elementami.

process Wyszukiwanie wcześniej znalezionych tylko poleceń zawartych process w nazwie polecenia i zwróciło tylko te wyniki. Gdy Get-Help jest używany do wyszukiwania processes, nie znajdzie żadnych dopasowań dla nazw poleceń, więc wykonuje wyszukiwanie każdego tematu pomocy w programie PowerShell w systemie i zwraca wszelkie znalezione dopasowania. Powoduje to zwrócenie ogromnej liczby wyników.

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

Użyj polecenia Help , aby wyszukać process zwrócone 10 wyników i użyć go do wyszukiwania processes zwróconych 68 wyników. Jeśli zostanie znaleziony tylko jeden wynik, sam temat pomocy zostanie wyświetlony zamiast listy poleceń.

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"

Teraz, aby obalić mit, że Help w programie PowerShell można znaleźć tylko polecenia, które mają tematy pomocy.

help *more*
NAME
    more

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


ALIASES
    None


REMARKS
    None

Zwróć uwagę, że more w poprzednim przykładzie nie ma tematu pomocy, ale Help system w programie PowerShell był w stanie go znaleźć. Znaleziono tylko jedno dopasowanie i zwróciło podstawowe informacje o składni, które zobaczysz, gdy polecenie nie ma tematu pomocy.

Program PowerShell zawiera wiele tematów pomocy koncepcyjnych (Informacje). Następujące polecenie może służyć do zwracania listy wszystkich tematów pomocy about w systemie.

help About_*

Ograniczenie wyników do jednego tematu pomocy Informacje zawiera rzeczywisty temat pomocy zamiast zwracania listy.

help about_Updatable_Help

System pomocy w programie PowerShell musi zostać zaktualizowany, aby można było zapoznać się z tematami Pomocy — informacje. Jeśli z jakiegoś powodu początkowa aktualizacja systemu pomocy nie powiodła się na komputerze, pliki nie będą dostępne do momentu pomyślnego Update-Help uruchomienia polecenia cmdlet.

Get-Command

Get-Command jest przeznaczony do ułatwienia lokalizowania poleceń. Uruchomienie Get-Command bez żadnych parametrów zwraca listę wszystkich poleceń w systemie. W poniższym przykładzie Get-Command pokazano użycie polecenia cmdlet w celu określenia, jakie polecenia istnieją do pracy z procesami:

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

Zwróć uwagę, że w poprzednim przykładzie, w którym Get-Command uruchomiono polecenie , jest używany parametr rzeczownika i Process jest określony jako wartość parametru rzeczownik . Co zrobić, jeśli nie wiesz, jak używać Get-Command polecenia cmdlet? Możesz użyć Get-Help polecenia , aby wyświetlić temat pomocy dla elementu Get-Command.

Parametry Name, Noun i Verb akceptują symbole wieloznaczne. W poniższym przykładzie pokazano symbole wieloznaczne używane z 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...

Nie jestem fanem używania symboli wieloznacznych z parametrem Name , Get-Command ponieważ zwraca również pliki wykonywalne, które nie są natywnymi poleceniami programu PowerShell.

Jeśli zamierzasz używać symboli wieloznacznych z parametrem Name , zalecamy ograniczenie wyników za pomocą parametru CommandType .

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

Lepszym rozwiązaniem jest użycie parametru Czasownik lub Czasownik albo oba te polecenia, ponieważ tylko polecenia programu PowerShell mają zarówno czasowniki, jak i czasowniki.

Znaleziono coś złego w temacie pomocy? Dobrą wiadomością jest temat pomocy dla programu PowerShell, który został otwarty i dostępny w repozytorium PowerShell-Docs w witrynie GitHub. Zapłać go do przodu, nie tylko naprawiając nieprawidłowe informacje dla siebie, ale także wszystkich innych. Wystarczy utworzyć rozwidlenie repozytorium dokumentacji programu PowerShell w usłudze GitHub, zaktualizować temat pomocy i przesłać żądanie ściągnięcia. Po zaakceptowaniu żądania ściągnięcia poprawiona dokumentacja jest dostępna dla wszystkich użytkowników.

Aktualizowanie Pomocy

Lokalna kopia tematów pomocy programu PowerShell została wcześniej zaktualizowana podczas pierwszego żądania pomocy dotyczącej polecenia. Zaleca się okresowe aktualizowanie systemu pomocy, ponieważ od czasu do czasu mogą być dostępne aktualizacje zawartości pomocy. Polecenie Update-Help cmdlet służy do aktualizowania tematów pomocy. Domyślnie wymaga ona dostępu do Internetu i do uruchamiania programu PowerShell z podwyższonym poziomem uprawnień jako administrator.

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

Kilka modułów zwróciło błędy, co nie jest rzadkością. Jeśli komputer nie ma dostępu do Internetu, możesz użyć Save-Help polecenia cmdlet na innej maszynie, która ma dostęp do Internetu, aby najpierw zapisać zaktualizowane informacje pomocy w udziale plików w sieci, a następnie użyć parametru SourcePath , Update-Help aby określić tę lokalizację sieciową dla tematów pomocy.

Rozważ skonfigurowanie zaplanowanego zadania lub dodanie logiki do skryptu profilu w programie PowerShell w celu okresowego aktualizowania zawartości pomocy na komputerze. Skrypty profilu zostaną omówione w nadchodzącym rozdziale.

Podsumowanie

W tym rozdziale przedstawiono sposób znajdowania poleceń przy użyciu poleceń i Get-HelpGet-Command. Wiesz już, jak używać systemu pomocy, aby dowiedzieć się, jak używać poleceń po ich znalezieniu. Wiesz również, jak zaktualizować zawartość tematów pomocy, gdy aktualizacje są dostępne.

Moim wyzwaniem jest nauczenie się polecenia programu PowerShell dziennie.

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

Przegląd

  1. Czy parametr DisplayName ma wartość pozycyjną Get-Service ?
  2. Ile zestawów parametrów Get-Process ma polecenie cmdlet?
  3. Jakie polecenia programu PowerShell istnieją do pracy z dziennikami zdarzeń?
  4. Jakie polecenie programu PowerShell służy do zwracania listy procesów programu PowerShell uruchomionych na komputerze?
  5. Jak zaktualizować zawartość pomocy programu PowerShell przechowywaną na komputerze?

Jeśli chcesz dowiedzieć się więcej o tematach omówionych w tym rozdziale, zalecam zapoznanie się z następującymi tematami pomocy programu PowerShell.

W następnym rozdziale poznasz Get-Member polecenie cmdlet, a także obiekty, właściwości i metody.