Capítulo 2 - O sistema de Ajuda
Em um experimento projetado para avaliar a proficiência em PowerShell, dois grupos distintos de profissionais de TI — iniciantes e especialistas — receberam pela primeira vez um exame escrito sem acesso a um computador. Surpreendentemente, as pontuações do teste indicaram habilidades comparáveis em ambos os grupos. Um teste subsequente foi então administrado, espelhando o primeiro, mas com uma diferença fundamental: os participantes tinham acesso a um computador offline equipado com PowerShell. Desta vez, os resultados revelaram uma diferença significativa de habilidades entre os dois grupos.
Que fatores contribuíram para os resultados observados entre as duas avaliações?
Os especialistas nem sempre sabem as respostas, mas sabem como encontrá-las.
Os resultados observados nos resultados dos dois testes foram porque os especialistas não memorizam milhares de comandos do PowerShell. Em vez disso, eles se destacam no uso do sistema de Ajuda no PowerShell, permitindo que eles descubram e aprendam a usar comandos quando necessário.
Tornar-se proficiente com o sistema de Ajuda é a chave para o sucesso com o PowerShell.
Ouvi Jeffrey Snover, o criador do PowerShell, compartilhar uma história semelhante em várias ocasiões.
Detectabilidade
Os comandos compilados no PowerShell são conhecidos como cmdlets, pronunciados como "command-let", não "CMD-let". A convenção de nomenclatura para cmdlets segue um formato Verbo-Substantivo singular para torná-los facilmente detectáveis. Por exemplo, Get-Process
é o cmdlet para determinar quais processos estão sendo executados e Get-Service
é o cmdlet para recuperar uma lista de serviços. Funções, também conhecidas como cmdlets de script, e aliases são outros tipos de comandos do PowerShell discutidos posteriormente neste livro. O termo "comando do PowerShell" descreve qualquer comando no PowerShell, independentemente de ser um cmdlet, função ou alias.
Você também pode executar comandos nativos do sistema operacional a partir do PowerShell, como programas de linha de comando tradicionais como ping.exe
e ipconfig.exe
.
Os três cmdlets principais no PowerShell
Get-Help
Get-Command
Get-Member
(abordado no capítulo 3)
Muitas vezes me perguntam: "Como você descobre quais são os comandos no PowerShell?". Ambos Get-Help
e Get-Command
são recursos inestimáveis para descobrir e entender comandos no PowerShell.
Get-Help
A primeira coisa que você precisa saber sobre o sistema de Ajuda no PowerShell é como usar o Get-Help
cmdlet.
Get-Help
é um comando multiuso que ajuda você a aprender a usar comandos depois de encontrá-los.
Você também pode usar Get-Help
para localizar comandos, mas de uma maneira diferente e mais indireta quando comparado ao Get-Command
.
Ao usar Get-Help
para localizar comandos, ele inicialmente executa uma pesquisa curinga para nomes de comando com base em sua entrada. Se isso não encontrar correspondências, ele conduzirá uma pesquisa de texto completo abrangente em todos os artigos de ajuda do PowerShell em seu sistema. Se isso também não encontrar nenhum resultado, ele retornará um erro.
Veja como usar Get-Help
para exibir o conteúdo de ajuda do Get-Help
cmdlet.
Get-Help -Name Get-Help
A partir do PowerShell versão 3.0, o conteúdo da ajuda não é fornecido pré-instalado com o sistema operacional. Quando você executa Get-Help
pela primeira vez, uma mensagem pergunta se você deseja baixar os arquivos de ajuda do PowerShell para seu computador.
Responder Sim pressionando Y executa o Update-Help
cmdlet, baixando o conteúdo da ajuda.
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
https:/go.microsoft.com/fwlink/?LinkId=210614.
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
Se você não receber essa mensagem, execute Update-Help
a partir de uma sessão elevada do PowerShell em execução como administrador.
Quando a atualização estiver concluída, o artigo de ajuda será exibido.
Reserve um momento para executar o exemplo em seu computador, revise a saída e observe como o sistema de ajuda organiza as informações.
- NOME
- SINOPSE
- SYNTAX
- DESCRIPTION
- LINKS RELACIONADOS
- COMENTÁRIOS
Ao revisar a saída, lembre-se de que os artigos de ajuda geralmente contêm uma grande quantidade de informações, e o que você vê por padrão não é o artigo de ajuda inteiro.
Parâmetros
Ao executar um comando no PowerShell, talvez seja necessário fornecer informações adicionais ou entrada para o comando. Os parâmetros permitem especificar opções e argumentos que alteram o comportamento de um comando. A seção SYNTAX de cada artigo de ajuda descreve os parâmetros disponíveis para o comando.
Get-Help
tem vários parâmetros que você pode especificar para retornar o artigo de ajuda inteiro ou um subconjunto para um comando. Para exibir todos os parâmetros disponíveis para Get-Help
o , consulte a seção SYNTAX de seu artigo de ajuda, conforme mostrado no exemplo a seguir.
...
SYNTAX
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] [-Full]
[-Functionality <System.String[]>] [-Path <System.String>] [-Role
<System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] -Detailed
[-Functionality <System.String[]>] [-Path <System.String>] [-Role
<System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] -Examples
[-Functionality <System.String[]>] [-Path <System.String>] [-Role
<System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] [-Functionality
<System.String[]>] -Online [-Path <System.String>] [-Role
<System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] [-Functionality
<System.String[]>] -Parameter <System.String> [-Path <System.String>]
[-Role <System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] [-Functionality
<System.String[]>] [-Path <System.String>] [-Role <System.String[]>]
-ShowWindow [<CommonParameters>]
...
Conjuntos de parâmetros
Quando você revisa a seção SINTAXE para Get-Help
, observe que as informações parecem ser repetidas seis vezes. Cada um desses blocos é um conjunto de parâmetros individual, indicando que o Get-Help
cmdlet apresenta seis conjuntos distintos de parâmetros. Um olhar mais atento revela que cada conjunto de parâmetros contém pelo menos um parâmetro exclusivo, tornando-o diferente dos outros.
Os conjuntos de parâmetros são mutuamente exclusivos. Depois de especificar um parâmetro exclusivo que só existe em um conjunto de parâmetros, o PowerShell limita o uso dos parâmetros contidos nesse conjunto de parâmetros.
Por exemplo, você não pode usar os parâmetros Full e Detailed de juntos porque eles pertencem a conjuntos de Get-Help
parâmetros diferentes.
Cada um dos parâmetros a seguir pertence a um conjunto de parâmetros diferente para o Get-Help
cmdlet.
- Completo
- Detalhado
- Exemplos
- Online
- Parâmetro
- ShowWindow
A sintaxe do comando
Se você é novo no PowerShell, compreender as informações enigmáticas — caracterizadas por colchetes quadrados e angulares — na seção SINTAXE pode parecer esmagador. No entanto, aprender esses elementos de sintaxe é essencial para se tornar proficiente com o PowerShell. Quanto mais frequentemente você usar o sistema de Ajuda do PowerShell, mais fácil se torna lembrar de todas as nuances.
Exiba Get-EventLog
a sintaxe do cmdlet.
Get-Help Get-EventLog
A saída a seguir mostra a parte relevante do artigo de ajuda.
...
SYNTAX
Get-EventLog [-LogName] <System.String> [[-InstanceId]
<System.Int64[]>] [-After <System.DateTime>] [-AsBaseObject] [-Before
<System.DateTime>] [-ComputerName <System.String[]>] [-EntryType {Error
| Information | FailureAudit | SuccessAudit | Warning}] [-Index
<System.Int32[]>] [-Message <System.String>] [-Newest <System.Int32>]
[-Source <System.String[]>] [-UserName <System.String[]>]
[<CommonParameters>]
Get-EventLog [-AsString] [-ComputerName <System.String[]>] [-List]
[<CommonParameters>]
...
As informações de sintaxe incluem pares de colchetes ([]
). Dependendo de seu uso, esses colchetes servem a dois propósitos diferentes.
- Os elementos entre colchetes são opcionais.
- Um conjunto vazio de colchetes após um tipo de dados, como
<string[]>
, indica que o parâmetro pode aceitar vários valores passados como uma matriz ou um objeto de coleção.
Parâmetros posicionais
Alguns cmdlets são projetados para aceitar parâmetros posicionais. Os parâmetros posicionais permitem que você forneça um valor sem especificar o nome do parâmetro. Ao usar um parâmetro posicionalmente, você deve especificar seu valor na posição correta na linha de comando. Você pode encontrar as informações posicionais de um parâmetro na seção PARÂMETROS do artigo de ajuda de um comando. Ao especificar explicitamente nomes de parâmetros, você pode usá-los em qualquer ordem.
Para o Get-EventLog
cmdlet, o primeiro parâmetro no primeiro conjunto de parâmetros é LogName.
LogName está entre colchetes, indicando que é um parâmetro posicional.
Get-EventLog [-LogName] <System.String>
Como LogName é um parâmetro posicional, você pode especificá-lo por nome ou posição. De acordo com os colchetes angulares após o nome do parâmetro, o valor de LogName deve ser uma única cadeia de caracteres. A ausência de colchetes entre colchetes que incluem o nome do parâmetro e o tipo de dados indica que LogName é um parâmetro necessário dentro desse conjunto de parâmetros específico.
O segundo parâmetro nesse conjunto de parâmetros é InstanceId. O nome do parâmetro e o tipo de dados estão totalmente entre colchetes, o que significa que InstanceId é um parâmetro opcional.
[[-InstanceId] <System.Int64[]>]
Além disso, InstanceId tem seu próprio par de colchetes, indicando que é um parâmetro posicional semelhante ao parâmetro LogName. Após o tipo de dados, um conjunto vazio de colchetes implica que InstanceId pode aceitar vários valores.
Parâmetros de opção
Um parâmetro que não exige um valor é chamado de parâmetro de opção. Você pode identificar facilmente os parâmetros de switch porque não há nenhum tipo de dados após o nome do parâmetro. Quando você especifica um parâmetro de opção, seu valor é true
. Quando você não especifica um parâmetro de opção, seu valor é false
.
O segundo conjunto de parâmetros inclui um parâmetro List , que é um parâmetro de opção. Quando você especifica o parâmetro List , ele retorna uma lista de logs de eventos no computador local.
[-List]
Uma abordagem simplificada da sintaxe
Há um método mais amigável para obter as mesmas informações que a sintaxe de comando enigmático para alguns comandos, exceto em inglês simples. O PowerShell retorna o artigo de ajuda completo ao usar Get-Help
com o parâmetro Full , facilitando a compreensão do uso de um comando.
Get-Help -Name Get-Help -Full
Reserve um momento para executar o exemplo em seu computador, revise a saída e observe como o sistema de ajuda organiza as informações.
- NOME
- SINOPSE
- SYNTAX
- DESCRIPTION
- PARAMETERS
- ENTRADAS
- SAÍDAS
- OBSERVAÇÕES
- EXEMPLOS
- LINKS RELACIONADOS
Ao especificar o parâmetro Full com o Get-Help
cmdlet, a saída inclui várias seções extras. Entre essas seções, PARAMETERS geralmente fornece uma explicação detalhada para cada parâmetro. No entanto, a extensão dessas informações varia dependendo do comando específico que você está investigando.
...
-Detailed <System.Management.Automation.SwitchParameter>
Adds parameter descriptions and examples to the basic help display.
This parameter is effective only when the help files are installed
on the computer. It has no effect on displays of conceptual ( About_
) help.
Required? true
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-Examples <System.Management.Automation.SwitchParameter>
Displays only the name, synopsis, and examples. This parameter is
effective only when the help files are installed on the computer. It
has no effect on displays of conceptual ( About_ ) help.
Required? true
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-Full <System.Management.Automation.SwitchParameter>
Displays the entire help article for a cmdlet. Full includes
parameter descriptions and attributes, examples, input and output
object types, and additional notes.
This parameter is effective only when the help files are installed
on the computer. It has no effect on displays of conceptual ( About_
) help.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
...
Quando você executou o comando anterior para exibir a ajuda para o Get-Help
comando, você provavelmente notou a saída rolada muito rapidamente para lê-lo.
Se você estiver usando o console do PowerShell, o Terminal do Windows ou o VS Code e precisar exibir um artigo de ajuda, a help
função poderá ser útil. Ele canaliza a saída de Get-Help
para , more.com
exibindo uma página de conteúdo de ajuda por vez. Recomendo Get-Help
usar a help
função em vez do cmdlet porque ela fornece uma melhor experiência do usuário e é menos para digitar.
Observação
O ISE não oferece suporte ao uso more.com
do , portanto, a execução help
funciona da mesma maneira que Get-Help
o .
Execute cada um dos seguintes comandos no PowerShell no seu computador.
Get-Help -Name Get-Help -Full
help -Name Get-Help -Full
help Get-Help -Full
Você observou alguma variação na saída quando executou os comandos anteriores?
No exemplo anterior, a primeira linha usa o Get-Help
cmdlet, a segunda usa a help
função e a terceira linha omite o parâmetro Name ao usar a help
função. Como Name é um parâmetro posicional, o terceiro exemplo aproveita sua posição em vez de declarar explicitamente o nome do parâmetro.
A diferença é que os dois últimos comandos exibem sua saída uma página de cada vez. Ao usar a help
função, pressione a barra de espaço para exibir a próxima página de conteúdo ou Q para sair. Se você precisar encerrar qualquer comando em execução interativa no PowerShell, pressione Ctrl+C.
Para localizar rapidamente informações sobre um parâmetro específico, use o parâmetro Parameter . Essa abordagem retorna conteúdo contendo apenas as informações específicas do parâmetro, em vez de todo o artigo de ajuda. Essa é a maneira mais fácil de encontrar informações sobre um parâmetro específico.
O exemplo a seguir usa a help
função com o parâmetro Parameter para retornar informações do artigo de ajuda para o parâmetro Name de Get-Help
.
help Get-Help -Parameter Name
As informações de ajuda mostram que o parâmetro Name é posicional e deve ser especificado na primeira posição (posição zero) quando usado posicionalmente.
-Name <System.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 any text that doesn't match any help article titles,
`Get-Help` displays a list of articles that include that text 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
O parâmetro Name espera um valor de cadeia de caracteres conforme identificado pelo <String>
tipo de dados ao lado do nome do parâmetro.
Há vários outros parâmetros com os quais você pode especificar para Get-Help
retornar um subconjunto de um artigo de ajuda. Para ver como eles funcionam, execute os seguintes comandos no computador.
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
Normalmente, use help <command name>
com o parâmetro Full ou Online. Se você tiver interesse apenas nos exemplos, use o parâmetro Examples . Se você tiver interesse apenas em um parâmetro específico, use o parâmetro Parameter .
Quando você usa o parâmetro ShowWindow , ele exibe o conteúdo da ajuda em uma janela pesquisável separada. Você pode mover essa janela para um monitor diferente se tiver vários monitores. No entanto, o parâmetro ShowWindow tem um bug conhecido que pode impedi-lo de exibir todo o artigo de ajuda. O parâmetro ShowWindow também requer um sistema operacional com uma interface gráfica do usuário (GUI). Ele retorna um erro quando você tenta usá-lo no Windows Server Core.
Se você tiver acesso à Internet, poderá usar o parâmetro Online . O parâmetro Online abre o artigo de ajuda no navegador da Web padrão. O conteúdo online é o mais atualizado. O navegador permite que você pesquise o conteúdo da ajuda e visualize outros artigos de ajuda relacionados.
Observação
O parâmetro Online não é suportado para artigos Sobre .
help Get-Command -Online
Localizando comandos com Get-Help
Para localizar comandos com Get-Help
, especifique um termo de pesquisa cercado por caracteres curinga asterisco (*
) para o valor do parâmetro Name . O exemplo a seguir usa o parâmetro Name posicionalmente.
help *process*
Name Category Module Synops
---- -------- ------ ------
Enter-PSHostProcess Cmdlet Microsoft.PowerShell.Core Con...
Exit-PSHostProcess Cmdlet Microsoft.PowerShell.Core Clo...
Get-PSHostProcessInfo Cmdlet Microsoft.PowerShell.Core Get...
Debug-Process Cmdlet Microsoft.PowerShell.M... Deb...
Get-Process Cmdlet Microsoft.PowerShell.M... Get...
Start-Process Cmdlet Microsoft.PowerShell.M... Sta...
Stop-Process Cmdlet Microsoft.PowerShell.M... Sto...
Wait-Process Cmdlet Microsoft.PowerShell.M... Wai...
Invoke-LapsPolicyProcessing Cmdlet LAPS Inv...
ConvertTo-ProcessMitigationPolicy Cmdlet ProcessMitigations Con...
Get-ProcessMitigation Cmdlet ProcessMitigations Get...
Set-ProcessMitigation Cmdlet ProcessMitigations Set...
Nesse cenário, você não é obrigado a adicionar os caracteres curinga *
. Se Get-Help
não for possível encontrar um comando que corresponda ao valor fornecido, ele fará uma pesquisa de texto completo para esse valor. O exemplo a seguir produz os mesmos resultados que especificar o caractere curinga *
em cada extremidade do process
.
help process
Quando você especifica um caractere curinga dentro do valor, Get-Help
procura apenas comandos que correspondam ao padrão fornecido. Ele não executa uma pesquisa de texto completo. O comando a seguir não retorna nenhum resultado.
help pr*cess
O PowerShell gerará um erro se você especificar um valor que começa com um traço sem colocá-lo entre aspas porque ele o interpreta como um nome de parâmetro. Não existe esse nome de parâmetro para o Get-Help
cmdlet.
help -process
Se você estiver tentando procurar comandos que terminam com -process
, você deve adicionar um *
ao início do valor.
help *-process
Quando você pesquisa comandos do PowerShell com Get-Help
o , é melhor ser vago do que muito específico.
Quando você pesquisou process
anteriormente, os resultados retornaram apenas comandos incluídos process
em seus nomes. Mas se você procurar processes
por , ele não encontrará nenhuma correspondência para nomes de comando. Como dito anteriormente, quando a ajuda não encontra correspondências, ela realiza uma pesquisa abrangente de texto completo de cada artigo de ajuda em seu sistema e retorna esses resultados. Esse tipo de pesquisa geralmente produz mais resultados do que o esperado, incluindo informações não relevantes para você.
help processes
Name Category Module Synops
---- -------- ------ ------
Disconnect-PSSession Cmdlet Microsoft.PowerShell.Core Dis...
Enter-PSHostProcess Cmdlet Microsoft.PowerShell.Core Con...
ForEach-Object Cmdlet Microsoft.PowerShell.Core Per...
Get-PSHostProcessInfo Cmdlet Microsoft.PowerShell.Core Get...
Get-PSSessionConfiguration Cmdlet Microsoft.PowerShell.Core Get...
New-PSSessionOption Cmdlet Microsoft.PowerShell.Core Cre...
New-PSTransportOption Cmdlet Microsoft.PowerShell.Core Cre...
Out-Host Cmdlet Microsoft.PowerShell.Core Sen...
Start-Job Cmdlet Microsoft.PowerShell.Core Sta...
Where-Object Cmdlet Microsoft.PowerShell.Core Sel...
Debug-Process Cmdlet Microsoft.PowerShell.M... Deb...
Get-Process Cmdlet Microsoft.PowerShell.M... Get...
Get-WmiObject Cmdlet Microsoft.PowerShell.M... Get...
Start-Process Cmdlet Microsoft.PowerShell.M... Sta...
Stop-Process Cmdlet Microsoft.PowerShell.M... Sto...
Wait-Process Cmdlet Microsoft.PowerShell.M... Wai...
Clear-Variable Cmdlet Microsoft.PowerShell.U... Del...
Convert-String Cmdlet Microsoft.PowerShell.U... For...
ConvertFrom-Csv Cmdlet Microsoft.PowerShell.U... Con...
ConvertFrom-Json Cmdlet Microsoft.PowerShell.U... Con...
ConvertTo-Html Cmdlet Microsoft.PowerShell.U... Con...
ConvertTo-Xml Cmdlet Microsoft.PowerShell.U... Cre...
Debug-Runspace Cmdlet Microsoft.PowerShell.U... Sta...
Export-Csv Cmdlet Microsoft.PowerShell.U... Con...
Export-FormatData Cmdlet Microsoft.PowerShell.U... Sav...
Format-List Cmdlet Microsoft.PowerShell.U... For...
Format-Table Cmdlet Microsoft.PowerShell.U... For...
Get-Unique Cmdlet Microsoft.PowerShell.U... Ret...
Group-Object Cmdlet Microsoft.PowerShell.U... Gro...
Import-Clixml Cmdlet Microsoft.PowerShell.U... Imp...
Import-Csv Cmdlet Microsoft.PowerShell.U... Cre...
Measure-Object Cmdlet Microsoft.PowerShell.U... Cal...
Out-File Cmdlet Microsoft.PowerShell.U... Sen...
Out-GridView Cmdlet Microsoft.PowerShell.U... Sen...
Select-Object Cmdlet Microsoft.PowerShell.U... Sel...
Set-Variable Cmdlet Microsoft.PowerShell.U... Set...
Sort-Object Cmdlet Microsoft.PowerShell.U... Sor...
Tee-Object Cmdlet Microsoft.PowerShell.U... Sav...
Trace-Command Cmdlet Microsoft.PowerShell.U... Con...
Write-Information Cmdlet Microsoft.PowerShell.U... Spe...
Export-BinaryMiLog Cmdlet CimCmdlets Cre...
Get-CimAssociatedInstance Cmdlet CimCmdlets Ret...
Get-CimInstance Cmdlet CimCmdlets Get...
Import-BinaryMiLog Cmdlet CimCmdlets Use...
Invoke-CimMethod Cmdlet CimCmdlets Inv...
New-CimInstance Cmdlet CimCmdlets Cre...
Remove-CimInstance Cmdlet CimCmdlets Rem...
Set-CimInstance Cmdlet CimCmdlets Mod...
Compress-Archive Function Microsoft.PowerShell.A... Cre...
Get-Counter Cmdlet Microsoft.PowerShell.D... Get...
Invoke-WSManAction Cmdlet Microsoft.WSMan.Manage... Inv...
Remove-WSManInstance Cmdlet Microsoft.WSMan.Manage... Del...
Get-WSManInstance Cmdlet Microsoft.WSMan.Manage... Dis...
New-WSManInstance Cmdlet Microsoft.WSMan.Manage... Cre...
Set-WSManInstance Cmdlet Microsoft.WSMan.Manage... Mod...
about_Arithmetic_Operators HelpFile
about_Arrays HelpFile
about_Environment_Variables HelpFile
about_Execution_Policies HelpFile
about_Functions HelpFile
about_Jobs HelpFile
about_Logging HelpFile
about_Methods HelpFile
about_Objects HelpFile
about_Pipelines HelpFile
about_Preference_Variables HelpFile
about_Remote HelpFile
about_Remote_Jobs HelpFile
about_Session_Configuration_Files HelpFile
about_Simplified_Syntax HelpFile
about_Switch HelpFile
about_Variables HelpFile
about_Variable_Provider HelpFile
about_Windows_Powershell_5.1 HelpFile
about_WQL HelpFile
about_WS-Management_Cmdlets HelpFile
about_Foreach-Parallel HelpFile
about_Parallel HelpFile
about_Sequence HelpFile
Quando você pesquisou process
por , ele retornou 12 resultados. No entanto, ao pesquisar processes
, produziu 78 resultados. Se sua pesquisa encontrar apenas uma correspondência, Get-Help
exibirá o conteúdo da ajuda em vez de listar os resultados da pesquisa.
help *hotfix*
NAME
Get-HotFix
SYNOPSIS
Gets the hotfixes that are installed on local or remote computers.
SYNTAX
Get-HotFix [-ComputerName <System.String[]>] [-Credential
<System.Management.Automation.PSCredential>] [-Description
<System.String[]>] [<CommonParameters>]
Get-HotFix [[-Id] <System.String[]>] [-ComputerName <System.String[]>]
[-Credential <System.Management.Automation.PSCredential>]
[<CommonParameters>]
DESCRIPTION
> This cmdlet is only available on the Windows platform. The
`Get-Hotfix` cmdlet uses the Win32_QuickFixEngineering WMI class to
list hotfixes that are installed on the local computer or specified
remote computers.
RELATED LINKS
Online Version: https://learn.microsoft.com/powershell/module/microsoft.
powershell.management/get-hotfix?view=powershell-5.1&WT.mc_id=ps-gethelp
about_Arrays
Add-Content
Get-ComputerRestorePoint
Get-Credential
Win32_QuickFixEngineering class
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"
Você também pode encontrar comandos que carecem de artigos de ajuda com Get-Help
o , embora esse recurso não seja comumente conhecido. A more
função é um dos comandos que não tem um artigo de ajuda. Para confirmar que você pode encontrar comandos com Get-Help
que não incluem artigos de ajuda, use a help
função para localizar more
.
help *more*
A pesquisa encontrou apenas uma correspondência, portanto, retornou as informações básicas de sintaxe que você vê quando um comando não tem um artigo de ajuda.
NAME
more
SYNTAX
more [[-paths] <string[]>]
ALIASES
None
REMARKS
None
O sistema de ajuda do PowerShell também contém artigos de ajuda conceituais Sobre . Você deve atualizar o conteúdo de ajuda em seu sistema para obter os artigos Sobre . Para obter mais informações, consulte a seção de ajuda Atualizando deste capítulo.
Use o comando a seguir para retornar uma lista de todos os artigos de ajuda Sobre em seu sistema.
help About_*
Quando você limita os resultados a um artigo de ajuda Sobre , Get-Help
exibe o conteúdo desse artigo.
help about_Updatable_Help
Atualizando a Ajuda
No início deste capítulo, você atualizou os artigos de ajuda do PowerShell em seu computador na primeira vez que executou o Get-Help
cmdlet. Você deve executar periodicamente o Update-Help
cmdlet em seu computador para obter atualizações para o conteúdo da ajuda.
Importante
No Windows PowerShell 5.1, você deve ser executado Update-Help
como administrador em uma sessão elevada do PowerShell.
No exemplo a seguir, Update-Help
baixa o conteúdo de ajuda do PowerShell para todos os módulos instalados no computador. Você deve usar o parâmetro Force para garantir que você baixe a versão mais recente do conteúdo da ajuda.
Update-Help -Force
Conforme mostrado nos resultados a seguir, um módulo retornou um erro. Os erros não são incomuns e geralmente ocorrem quando o autor do módulo não configura a ajuda atualizável corretamente.
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 : ResourceUnavailable: (:) [Update-Help], Except
ion
+ FullyQualifiedErrorId : UnableToRetrieveHelpInfoXml,Microsoft.PowerShe
ll.Commands.UpdateHelpCommand
Update-Help
Requer acesso à Internet para baixar o conteúdo da Ajuda. Se o seu computador não tiver acesso à Internet, use o Save-Help
cmdlet em um computador com acesso à Internet para baixar e salvar o conteúdo de ajuda atualizado. Em seguida, use o parâmetro SourcePath de Update-Help
para especificar o local do conteúdo de ajuda atualizado salvo.
Get-Command
Get-Command
é outro comando multiuso que ajuda você a encontrar comandos. Quando você é executado Get-Command
sem nenhum parâmetro, ele retorna uma lista de todos os comandos do PowerShell em seu sistema.
Você também pode usar Get-Command
para obter sintaxe de comando semelhante a Get-Help
.
Como você determina a sintaxe do Get-Command
? Você pode usar Get-Help
para exibir o artigo de ajuda para Get-Command
, conforme mostrado na seção Get-Help deste capítulo. Você também pode usar Get-Command
com o parâmetro Syntax para exibir a sintaxe de qualquer comando. Esse atalho ajuda você a determinar rapidamente como usar um comando sem navegar pelo conteúdo de ajuda.
Get-Command -Name Get-Command -Syntax
Usar Get-Command
com o parâmetro Syntax fornece uma exibição mais concisa da sintaxe que mostra os parâmetros e seus tipos de valor, sem listar os valores permitidos específicos como Get-Help
mostra.
Get-Command [[-ArgumentList] <Object[]>] [-Verb <string[]>]
[-Noun <string[]>] [-Module <string[]>]
[-FullyQualifiedModule <ModuleSpecification[]>] [-TotalCount <int>]
[-Syntax] [-ShowCommandInfo] [-All] [-ListImported]
[-ParameterName <string[]>] [-ParameterType <PSTypeName[]>]
[<CommonParameters>]
Get-Command [[-Name] <string[]>] [[-ArgumentList] <Object[]>]
[-Module <string[]>] [-FullyQualifiedModule <ModuleSpecification[]>]
[-CommandType <CommandTypes>] [-TotalCount <int>] [-Syntax]
[-ShowCommandInfo] [-All] [-ListImported] [-ParameterName <string[]>]
[-ParameterType <PSTypeName[]>] [<CommonParameters>]
Se você precisar de informações mais detalhadas sobre como usar um comando, use Get-Help
.
help Get-Command -Full
A seção SYNTAX de Get-Help
fornece uma exibição mais amigável ao expandir os valores enumerados para parâmetros. Ele mostra os valores reais que você pode usar, facilitando a compreensão das opções disponíveis.
...
Get-Command [[-Name] <System.String[]>] [[-ArgumentList]
<System.Object[]>] [-All] [-CommandType {Alias | Function | Filter |
Cmdlet | ExternalScript | Application | Script | Workflow |
Configuration | All}] [-FullyQualifiedModule
<Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported]
[-Module <System.String[]>] [-ParameterName <System.String[]>]
[-ParameterType <System.Management.Automation.PSTypeName[]>]
[-ShowCommandInfo] [-Syntax] [-TotalCount <System.Int32>]
[<CommonParameters>]
Get-Command [[-ArgumentList] <System.Object[]>] [-All]
[-FullyQualifiedModule
<Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported]
[-Module <System.String[]>] [-Noun <System.String[]>] [-ParameterName
<System.String[]>] [-ParameterType
<System.Management.Automation.PSTypeName[]>] [-ShowCommandInfo]
[-Syntax] [-TotalCount <System.Int32>] [-Verb <System.String[]>]
[<CommonParameters>]
...
A seção PARÂMETROS da ajuda para Get-Command
revela que os parâmetros Name, Noun e Verb aceitam caracteres curinga.
...
-Name <System.String[]>
Specifies an array of names. This cmdlet gets only commands that
have the specified name. Enter a name or name pattern. Wildcard
characters are permitted.
To get commands that have the same name, use the All parameter. When
two commands have the same name, by default, `Get-Command` gets the
command that runs when you type the command name.
Required? false
Position? 0
Default value None
Accept pipeline input? True (ByPropertyName, ByValue)
Accept wildcard characters? true
-Noun <System.String[]>
Specifies an array of command nouns. This cmdlet gets commands,
which include cmdlets, functions, and aliases, that have names that
include the specified noun. Enter one or more nouns or noun
patterns. Wildcard characters are permitted.
Required? false
Position? named
Default value None
Accept pipeline input? True (ByPropertyName)
Accept wildcard characters? true
-Verb <System.String[]>
Specifies an array of command verbs. This cmdlet gets commands,
which include cmdlets, functions, and aliases, that have names that
include the specified verb. Enter one or more verbs or verb
patterns. Wildcard characters are permitted.
Required? false
Position? named
Default value None
Accept pipeline input? True (ByPropertyName)
Accept wildcard characters? true
...
O exemplo a seguir usa o caractere *
curinga com o valor do parâmetro Name de Get-Command
.
Get-Command -Name *service*
Quando você usa caracteres curinga com o parâmetro Name de Get-Command
, ele retorna comandos do PowerShell e comandos nativos, conforme mostrado nos resultados a seguir.
CommandType Name Version
----------- ---- -------
Function Get-NetFirewallServiceFilter 2.0.0.0
Function Set-NetFirewallServiceFilter 2.0.0.0
Cmdlet Get-Service 3.1.0.0
Cmdlet New-Service 3.1.0.0
Cmdlet New-WebServiceProxy 3.1.0.0
Cmdlet Restart-Service 3.1.0.0
Cmdlet Resume-Service 3.1.0.0
Cmdlet Set-Service 3.1.0.0
Cmdlet Start-Service 3.1.0.0
Cmdlet Stop-Service 3.1.0.0
Cmdlet Suspend-Service 3.1.0.0
Application SecurityHealthService.exe 10.0.2...
Application SensorDataService.exe 10.0.2...
Application services.exe 10.0.2...
Application services.msc 0.0.0.0
Application TieringEngineService.exe 10.0.2...
Application Windows.WARP.JITService.exe 10.0.2...
Você pode limitar os resultados de aos comandos do Get-Command
PowerShell usando o parâmetro CommandType .
Get-Command -Name *service* -CommandType Cmdlet, Function, Alias, Script
Outra opção pode ser usar o parâmetro Verb ou Noun ou ambos, já que apenas os comandos do PowerShell têm verbos e substantivos.
O exemplo a seguir usa Get-Command
para localizar comandos em seu computador que funcionam com processos.
Use o parâmetro Noun e especifique Process
como seu valor.
Get-Command -Noun Process
CommandType Name Version
----------- ---- -------
Cmdlet Debug-Process 3.1.0.0
Cmdlet Get-Process 3.1.0.0
Cmdlet Start-Process 3.1.0.0
Cmdlet Stop-Process 3.1.0.0
Cmdlet Wait-Process 3.1.0.0
Resumo
Neste capítulo, você aprendeu a encontrar comandos com Get-Help
e Get-Command
. Você também aprendeu a usar o sistema de ajuda para entender como usar comandos depois de encontrá-los. Além disso, você aprendeu como atualizar o sistema de ajuda em seu computador quando um novo conteúdo de ajuda estiver disponível.
Revisão
- O parâmetro DisplayName de posicional
Get-Service
? - Quantos conjuntos de parâmetros o cmdlet
Get-Process
tem? - Quais comandos do PowerShell existem para trabalhar com logs de eventos?
- Qual é o comando do PowerShell para retornar uma lista de processos do PowerShell em execução no seu computador?
- Como atualizar o conteúdo de ajuda do PowerShell armazenado em seu computador?
Referências
Para saber mais sobre os conceitos abordados neste capítulo, leia os seguintes artigos de ajuda do PowerShell.
Próximas etapas
No próximo capítulo, você aprenderá sobre objetos, propriedades, métodos e o Get-Member
cmdlet.