2. fejezet – A súgórendszer

Az informatikai szakemberek két csoportja egy számítógéphez való hozzáférés nélküli írásbeli tesztet kapott, hogy megállapítsa a powershell-lel kapcsolatos képzettségi szintjét. A PowerShell kezdők az egyik csoportba kerültek, a szakértők pedig egy másikba. A teszt eredményei alapján úgy tűnik, nem volt nagy különbség a két csoport közötti készségszintben. Mindkét csoportot az elsőhöz hasonló második tesztnek adták ki. Ezúttal olyan számítógéphez kaptak hozzáférést, amely nem rendelkezik internet-hozzáféréssel a PowerShell-lel. A második teszt eredményei hatalmas különbséget mutattak a két csoport közötti készségszintben. A szakértők nem mindig ismerik a válaszokat, de tudják, hogyan kell kitalálni a válaszokat.

Mi volt a különbség a két csoport közötti első és második teszt eredményeiben?

A két tesztben megfigyelt különbségek azért voltak, mert a szakértők nem memorizálják, hogyan kell több ezer parancsot használni a PowerShellben. Azt tanulják meg, hogyan használhatják rendkívül jól a súgórendszert a PowerShellben. Ez lehetővé teszi számukra, hogy szükség esetén megtalálják a szükséges parancsokat, és hogy hogyan használják ezeket a parancsokat, miután megtalálták őket.

Hallottam Jeffrey Snovert, a PowerShell feltalálóját, aki többször mesélt hasonló történetet.

A súgórendszer elsajátítása a PowerShell sikerességének kulcsa.

Felfedező

A PowerShellben lefordított parancsokat parancsmagoknak nevezzük. A parancsmag kimondottan "command-let" (nem CMD-let). A parancsmagok nevei egyedi "Verb-Főnév" parancsok formájában vannak, hogy könnyen felfedezhetők legyenek. Például a futó Get-Process folyamatok meghatározására szolgáló parancsmag, valamint a szolgáltatások listájának és állapotának lekérésére szolgáló parancsmag.Get-Service A PowerShellben más típusú parancsok is léteznek, például aliasok és függvények, amelyekről a könyv későbbi részében lesz szó. A PowerShell-parancs kifejezés egy általános kifejezés, amelyet gyakran használnak a PowerShell bármely parancstípusára való hivatkozáshoz, függetlenül attól, hogy parancsmagról, függvényről vagy aliasról van-e szó.

A PowerShell három alapvető parancsmagja

  • Get-Command
  • Get-Help
  • Get-Member (a 3. fejezet foglalkozik)

Az egyik gyakori kérdés, hogy hogyan állapíthatja meg, hogy mik a parancsok a PowerShellben? Get-Help Mindkettő Get-Command használható a parancsok meghatározásához.

Get-Help

Get-Help A egy többcélú parancs. Get-Help A segítségével megtudhatja, hogyan használhatja a parancsokat, miután megtalálta őket. Get-Help is használható a parancsok megkereséséhez, de más és közvetettebb módon, mint a Get-Command.

A Get-Help parancsok megkereséséhez először a megadott bemenet alapján keres helyettesítő karakteres egyezéseket a parancsnevekben. Ha nem talál egyezést, magukban a súgótémakörökben keres, és ha nem talál egyezést, hibát ad vissza. Ellentétben a közhiedelemmel, használható olyan parancsok keresésére, Get-Help amelyek nem rendelkeznek súgótémakörökkel.

A PowerShell súgórendszeréről a parancsmag használatának első lépése Get-Help . A következő parancs a súgótémakör megjelenítésére Get-Helpszolgál.

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

A PowerShell 3-as verziójától kezdve a PowerShell súgója nem küldi el az operációs rendszert. A parancsok első futtatásakor Get-Help az előző üzenet jelenik meg. Ha a parancsmag helyett Get-Help a help függvényt vagy man aliast használja, nem jelenik meg ez a kérdés.

Az igen válaszhoz az Y billentyű lenyomásával futtatja a Update-Help parancsmagot, amelyhez alapértelmezés szerint internet-hozzáférés szükséges. Y A kis- és nagybetűkben is megadható.

A súgó letöltése és a frissítés befejezése után a rendszer a megadott parancshoz tartozó súgótémakört adja vissza:

Get-Help -Name Get-Help

Szánjon egy kis időt a példa futtatására a számítógépen, tekintse át a kimenetet, és jegyezze fel az információk csoportosításának módját:

  • NÉV
  • SZINOPSZIS
  • SZINTAXIS
  • LEÍRÁS
  • KAPCSOLÓDÓ HIVATKOZÁSOK
  • MEGJEGYZÉSEK

Mint látható, a súgótémakörök hatalmas mennyiségű információt tartalmazhatnak, és ez nem is a teljes súgótémakör.

Bár a paraméterek nem a PowerShellre jellemzőek, a parancsok bemenetének megadására szolgálnak. Get-Help A számos paraméterrel rendelkezik, amelyek a teljes súgótémakör vagy annak egy részhalmaza visszaadásához adhatók meg.

A súgótémakör szintaxis szakasza az előző eredményhalmazban a következő Get-Helpösszes paraméterét listázza: . Első pillantásra úgy tűnik, hogy ugyanazok a paraméterek hat különböző időpontban vannak felsorolva. A szintaxisszakasz ezen blokkjainak mindegyike egy paraméterkészlet. Ez azt jelenti, hogy a Get-Help parancsmag hat különböző paraméterkészlettel rendelkezik. Ha közelebbről is megvizsgáljuk, megfigyelheti, hogy minden paraméterkészletben legalább egy paraméter eltérő.

A paraméterkészletek kölcsönösen kizárják egymást. Ha egy olyan egyedi paramétert használ, amely csak az egyik paraméterkészletben létezik, csak az adott paraméterkészletben található paraméterek használhatók. Például a Teljes és a Részletes paraméter nem adható meg egyszerre, mert különböző paraméterkészletekben találhatók.

A következő paraméterek mindegyike különböző paraméterkészletekben található:

  • Összes
  • Részletes
  • Példák
  • Online
  • Paraméter
  • ShowWindow

A szintaxisszakasz összes titkosítási szintaxisa, például a szögletes zárójelek és a szögletes zárójelek valamit jelentenek, de a könyv A függeléke ismerteti. Bár fontos, a titkosítási szintaxis elsajátítása gyakran nehezen tartható meg olyan felhasználók számára, akik még nem ismerik a PowerShellt, és nem minden nap használják.

A titkosítási szintaxis jobb megismeréséhez tekintse meg az A függeléket.

Kezdőknek egyszerűbben is kitalálhatja ugyanazt az információt, kivéve az egyszerű nyelvet.

Ha meg van adva a Teljes paraméter Get-Help , a rendszer a teljes súgótémakört adja vissza.

Get-Help -Name Get-Help -Full

Szánjon egy kis időt a példa futtatására a számítógépen, tekintse át a kimenetet, és jegyezze fel az információk csoportosításának módját:

  • NÉV
  • SZINOPSZIS
  • SZINTAXIS
  • LEÍRÁS
  • PARAMÉTEREK
  • BEMENETEK
  • KIMENETEK
  • MEGJEGYZÉSEK
  • PÉLDÁK
  • KAPCSOLÓDÓ HIVATKOZÁSOK

Figyelje meg, hogy a Full paraméter használata több további szakaszt is visszaadott, amelyek közül az egyik a PARAMETERS szakasz, amely több információt biztosít, mint a titkosítási SZINTAXIS szakasz.

A Teljes paraméter egy kapcsolóparaméter. Az értéket nem igénylő paramétereket kapcsolóparaméternek nevezzük. Ha egy kapcsolóparaméter meg van adva, az értéke igaz, és ha nem, akkor az értéke hamis.

Ha már dolgozott ezen a fejezeten a PowerShell-konzolon, észrevette, hogy az előző parancs, amely a teljes súgótémakört Get-Help jeleníti meg a képernyőn, anélkül, hogy lehetősége lenne elolvasni. Van egy jobb módszer.

Help A egy függvény, amely Get-Help a moreWindows végrehajtható fájljának burkolóját more.com jelenti. A PowerShell-konzolon help egyszerre csak egy oldalnyi segítséget nyújt. Az ISE-ben ugyanúgy működik, mint Get-Helpa . Azt javasoljuk, hogy használja a help függvényt a Get-Help parancsmag helyett, mivel jobb élményt nyújt, és kevésbé gépel.

A kevesebb gépelés azonban nem mindig jó dolog. Ha szkriptként menti a parancsokat, vagy megosztja őket másokkal, ügyeljen arra, hogy teljes parancsmag- és paraméterneveket használjon. A teljes nevek önaláírásosak, így könnyebben megérthetők. Gondoljon a következő személyre, akinek el kell olvasnia és megértenie a parancsokat. Lehet, hogy te vagy az. A munkatársainak és a jövő önmagának is köszönetet mond.

Próbálja meg futtatni a következő parancsokat a PowerShell-konzolon a Windows 10 laborkörnyezet számítógépén.

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

Észlelt különbségeket a korábban felsorolt parancsok kimenetében, amikor futtatta őket a Windows 10 tesztkörnyezeti számítógépen?

Az utolsó két lehetőségen kívül nincs különbség az eredmények egy oldalon történő visszaadásán kívül. A szóközbillentyűvel megjelenítheti a következő tartalomoldalt a függvény használatakor, és a HelpCtrl+C megszakítja a PowerShell-konzolon futó parancsokat.

Az első példa a Get-Help parancsmagot, a második a Help függvényt, a harmadik pedig a Name paramétert hagyja ki a Help függvény használatakor. A név egy pozícióparaméter, és ebben a példában pozícióban használjuk. Ez azt jelenti, hogy az érték a paraméternév megadása nélkül is megadható, feltéve, hogy maga az érték a megfelelő pozícióban van megadva. Honnan tudtam, hogy milyen pozícióban adjam meg az értéket? A következő példában látható módon olvassa el a súgót.

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

Figyelje meg, hogy az előző példában a Paraméter paramétert a Súgó függvénnyel használták, hogy csak a Név paraméter súgótémaköréből adjanak vissza információkat. Ez sokkal tömörebb, mint ha kézzel próbálná átolvasni azt, ami néha százoldalas súgótémakörnek tűnik.

Ezen eredmények alapján láthatja, hogy a Name paraméter pozíciós, és pozíciós használat esetén a nullát (az első pozíciót) kell megadni. A paraméterek megadásának sorrendje nem számít, ha a paraméter neve meg van adva.

Egy másik fontos információ, hogy a Name paraméter azt várja, hogy az adattípus értéke egyetlen sztring legyen, amelyet a következő jelöl <String>: . Ha több sztringet is elfogadott, az adattípus a következőképpen <String[]>jelenik meg: .

Néha egyszerűen nem szeretné megjeleníteni egy parancs teljes súgótémakörét. A Full paraméteren kívül számos egyéb paraméter is megadható a (vagyHelp) paraméterrelGet-Help. Próbálja meg futtatni a következő parancsokat a Windows 10 tesztkörnyezeti számítógépen:

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

Általában a Teljes vagy az Online paramétert használomhelp <command name>. Ha csak a példák érdekelnek, a Példák paramétert használom, és ha csak egy adott paraméter érdekel, akkor a Paraméter paramétert használom. A ShowWindow paraméter egy külön kereshető ablakban nyitja meg a súgótémakört, amely több monitor esetén egy másik monitorra helyezhető. Elkerültem a ShowWindow paramétert, mert egy ismert hiba miatt nem jelenik meg a teljes súgótémakör.

Ha egy külön ablakban szeretne segítséget kapni, azt javasoljuk, hogy használja az Online paramétert, vagy használja a Teljes paramétert, és az eredményeket Out-GridViewa következő példában látható módon hajtsa végre.

help Get-Command -Full | Out-GridView

Out-GridView A parancsmaghoz és a Parancsmag ShowWindow paraméteréhez Get-Help is grafikus felhasználói felülettel rendelkező operációs rendszer szükséges. Hibaüzenet jelenik meg, ha valamelyiket a Kiszolgálómag (grafikus felhasználói felület nélküli) telepítési lehetőséggel telepített Windows Serveren próbálja használni.

Get-Help Parancsok kereséséhez használja a csillag (*) helyettesítő karaktert a Name paraméterrel. Adja meg azt a kifejezést, amelyen parancsokat keres a Név paraméter értékeként az alábbi példában látható módon.

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

Az előző példában a * helyettesítő karakterekre nincs szükség, és a kihagyásuk ugyanazt az eredményt eredményezi. Get-Help automatikusan hozzáadja a helyettesítő karaktereket a színfalak mögé.

help process

Az előző parancs ugyanazokat az eredményeket hozza létre, mint a * helyettesítő karakter megadása a folyamat minden végén.

Inkább hozzáadom őket, mivel ez az a lehetőség, amely mindig következetesen működik. Ellenkező esetben bizonyos forgatókönyvekben szükség van rájuk, másokra nem. Amint helyettesítő karaktert ad hozzá az érték közepéhez, azok a továbbiakban nem lesznek automatikusan hozzáadva a színfalak mögött a megadott értékhez.

help pr*cess

A parancs nem ad vissza eredményt, kivéve, ha a * helyettesítő karaktert hozzáadja az elejéhez, a végéhez, vagy mind az elejéhez, mind a végéhez pr*cess.

Ha a megadott érték kötőjellel kezdődik, akkor hiba keletkezik, mert a PowerShell paraméternévként értelmezi, és nem létezik ilyen paraméternév a Get-Help parancsmaghoz.

help -process

Ha olyan parancsokat -processkeres, amelyeket keres, akkor csak a * helyettesítő karaktert kell hozzáadnia az érték elejéhez.

help *-process

A PowerShell-parancsok Get-Helpkeresésekor egy kicsit homályosabb szeretne lenni ahelyett, hogy túlságosan konkrét lenne azzal kapcsolatban, amit keres.

A korábbi keresés process csak a parancs nevében található process parancsokat találta, és csak ezeket az eredményeket adja vissza. A Get-Help kereséskor processesnem talál egyezést a parancsnevekhez, ezért a PowerShellben minden súgótémakörben keresést végez, és visszaadja a talált találatokat. Ez hatalmas mennyiségű eredményt ad vissza.

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

A Help visszaadott 10 találat kereséséhez process és a visszaadott 68 találat kereséséhez processes használható. Ha csak egy találatot talál, maga a súgótémakör jelenik meg a parancsok listája helyett.

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"

Most, hogy eloszlatjuk azt a mítoszt, amely a Help PowerShellben csak súgótémaköröket tartalmazó parancsokat talál.

help *more*
NAME
    more

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


ALIASES
    None


REMARKS
    None

Figyelje meg az előző példában, hogy more nem rendelkezik súgótémakörrel, de a Help PowerShellben lévő rendszer megtalálta azt. Csak egy egyezést talált, és visszaadta azokat az alapvető szintaxisadatokat, amelyeket akkor fog látni, ha egy parancs nem tartalmaz súgótémakört.

A PowerShell számos fogalmi (Névjegy) súgótémaköröket tartalmaz. Az alábbi paranccsal visszaadhatja a rendszer összes About súgótémakörének listáját.

help About_*

Ha az eredményeket egyetlen Információ súgótémakörre korlátozza, a tényleges súgótémakör jelenik meg ahelyett, hogy visszaadná a listát.

help about_Updatable_Help

A PowerShell súgórendszerét frissíteni kell ahhoz, hogy az About súgótémakörök megjelenhessenek. Ha valamilyen okból kifolyólag a súgórendszer kezdeti frissítése meghiúsult a számítógépen, a fájlok nem lesznek elérhetők, amíg a Update-Help parancsmag sikeresen le nem fut.

Get-Command

Get-Command A a parancsok megkeresését segíti. Paraméterek nélkül futtatva Get-Command a rendszer összes parancsának listáját adja vissza. Az alábbi példa bemutatja, hogyan használható a parancsmag a Get-Command folyamatok használatához szükséges parancsok meghatározására:

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

Figyelje meg, hogy az előző példában a Get-Command rendszer a főnév paramétert használja, és Process a főnév paraméter értékeként van megadva. Mi a teendő, ha nem tudta, hogyan kell használni a Get-Command parancsmagot? Használhatja Get-Help a súgótémakör megjelenítéséhez a következőhöz Get-Command: .

A Név, a Főnév és az Ig paraméter helyettesítő karaktereket fogad el. Az alábbi példa a Name paraméterrel használt helyettesítő karaktereket mutatja be:

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

Nem szeretem helyettesítő karaktereket használni a Name paraméterrel Get-Command , mivel olyan végrehajtható fájlokat is visszaad, amelyek nem natív PowerShell-parancsok.

Ha helyettesítő karaktereket fog használni a Name paraméterrel, azt javaslom, hogy korlátozza az eredményeket a CommandType paraméterrel.

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

Jobb megoldás, ha az Ig vagy a Főnév paramétert használja, vagy mindkettőt, mivel csak a PowerShell-parancsok rendelkeznek igével és főnévvel is.

Hiba történt egy súgótémakörben? A jó hír az, hogy a PowerShell súgótémakörök nyílt forráskódúak és elérhetők a GitHub PowerShell-Docs-adattárában . Fizesse tovább, ha nem csak a helytelen információkat rögzíti, hanem mindenki mást is. Egyszerűen elágaztathatja a PowerShell dokumentációs adattárát a GitHubon, frissítheti a súgótémakört, és lekéréses kérelmet küldhet. A lekéréses kérelem elfogadása után a javított dokumentáció mindenki számára elérhető.

Súgó frissítése

A PowerShell súgótémaköreinek helyi példánya korábban frissült, amikor a rendszer először kért segítséget egy parancshoz. Javasoljuk, hogy rendszeresen frissítse a súgórendszert, mert időről időre előfordulhatnak frissítések a súgótartalmakhoz. A Update-Help parancsmag a súgótémakörök frissítésére szolgál. Alapértelmezés szerint internet-hozzáférést igényel, és rendszergazdaként rendszergazdaként kell futtatnia a PowerShellt.

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éhány modul hibát adott vissza, ami nem ritka. Ha a gép nem rendelkezik internet-hozzáféréssel, használhatja a Save-Help parancsmagot egy másik, internet-hozzáféréssel rendelkező gépen, hogy először mentse a frissített súgóinformációkat egy fájlmegosztásba a hálózaton, majd a SourcePath paraméterrel Update-Help adja meg ezt a hálózati helyet a súgótémakörökhöz.

Fontolja meg egy ütemezett feladat beállítását, vagy adjon hozzá valamilyen logikát a profilszkripthez a PowerShellben, hogy rendszeres időközönként frissítse a súgótartalmat a számítógépen. A profilszkripteket egy közelgő fejezet tárgyalja.

Összefoglalás

Ebben a fejezetben megtanulta, hogyan keresheti meg a parancsokat a két Get-Help és Get-Commanda . Megtanulta, hogyan használhatja a súgórendszert a parancsok megkeresése után történő használatához. Azt is megtanulta, hogyan frissítheti a súgótémakörök tartalmát, amikor frissítések érhetők el.

Az a feladatom, hogy napi egy PowerShell-parancsot tanulhassak.

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

Áttekintés

  1. A pozíció DisplayName paramétere Get-Service ?
  2. Hány paraméterkészlettel rendelkezik a Get-Process parancsmag?
  3. Milyen PowerShell-parancsok léteznek az eseménynaplók használatához?
  4. Mi a PowerShell-parancs a számítógépen futó PowerShell-folyamatok listájának visszaadására?
  5. Hogyan frissítheti a számítógépen tárolt PowerShell súgótartalmat?

Ha többet szeretne megtudni az ebben a fejezetben tárgyalt témakörökről, javasoljuk, hogy olvassa el a következő PowerShell-súgótémaköröket.

A következő fejezetben megismerheti a parancsmagot, valamint az Get-Member objektumokat, tulajdonságokat és metódusokat.