Capítulo 2 - O Sistema de Ajuda
Dois grupos de profissionais de TI receberam um teste escrito sem acesso a um computador para determinar seu nível de habilidade com o PowerShell. Os iniciantes do PowerShell foram colocados em um grupo e os especialistas em outro. Com base nos resultados do teste, não pareceu haver muita diferença no nível de habilidade entre os dois grupos. Ambos os grupos receberam um segundo teste semelhante ao primeiro. Desta vez, eles tiveram acesso a um computador com PowerShell que não tinha acesso à internet. Os resultados do segundo teste mostraram uma enorme diferença no nível de habilidade entre os dois grupos. Os especialistas nem sempre sabem as respostas, mas sabem como descobrir as respostas.
Qual foi a diferença nos resultados do primeiro e segundo teste entre estes dois grupos?
As diferenças observadas nesses dois testes foram porque os especialistas não memorizam como usar milhares de comandos no PowerShell. Eles aprendem a usar o sistema de ajuda dentro do PowerShell extremamente bem. Isso permite que eles encontrem os comandos necessários quando necessário e como usá-los depois de encontrá-los.
Já ouvi Jeffrey Snover, o inventor do PowerShell, contar uma história semelhante várias vezes.
Dominar o sistema de ajuda é a chave para ter sucesso com o PowerShell.
Capacidade de descoberta
Os comandos compilados no PowerShell são chamados cmdlets. Cmdlet é pronunciado "command-let" (não CMD-let). Os nomes dos cmdlets têm a forma de comandos singulares "Verbo-Substantivo" para torná-los facilmente detetáveis. Por exemplo, o cmdlet para determinar quais processos estão em execução é Get-Process
e o cmdlet para recuperar uma lista de serviços e seus status é Get-Service
. Há outros tipos de comandos no PowerShell, como aliases e funções, que serão abordados mais adiante neste livro. O termo comando PowerShell é um termo genérico que é frequentemente usado para se referir a qualquer tipo de comando no PowerShell, independentemente de ser ou não um cmdlet, função ou alias.
Os três cmdlets principais no PowerShell
Get-Command
Get-Help
Get-Member
(abrangido pelo capítulo 3)
Uma pergunta que me fazem com frequência é como você descobre quais são os comandos no PowerShell? Ambos Get-Command
e Get-Help
podem ser usados para determinar os comandos.
Get-Help
Get-Help
é um comando multiuso. Get-Help
ajuda você a aprender a usar comandos depois de encontrá-los. Get-Help
também pode ser usado para ajudar a localizar comandos, mas de uma forma diferente e mais indireta quando comparado ao Get-Command
.
Quando Get-Help
é usado para localizar comandos, ele primeiro procura correspondências curinga de nomes de comandos com base na entrada fornecida. Se não encontrar uma correspondência, ele pesquisa os próprios tópicos de ajuda e, se nenhuma correspondência for encontrada, um erro será retornado. Ao contrário da crença popular, Get-Help
pode ser usado para encontrar comandos que não têm tópicos de ajuda.
A primeira coisa que você precisa saber sobre o sistema de ajuda no PowerShell é como usar o Get-Help
cmdlet. O comando a seguir é usado para exibir o tópico de ajuda do Get-Help
.
Get-Help -Name Get-Help
Do you want to run Update-Help?
The Update-Help cmdlet downloads the most current Help files for Windows PowerShell
modules, and installs them on your computer. For more information about the Update-Help
cmdlet, see http://go.microsoft.com/fwlink/?LinkId=210614.
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
A partir da versão 3 do PowerShell, a ajuda do PowerShell não é fornecida com o sistema operacional. A primeira vez Get-Help
que é executado para um comando, a mensagem anterior é exibida. Se a função ou man
o help
alias for usado em vez do Get-Help
cmdlet, você não receberá esse prompt.
Responder sim pressionando Y executa o cmdlet, que requer acesso à Update-Help
Internet por padrão. Y
pode ser especificado em maiúsculas ou minúsculas.
Quando a ajuda é baixada e a atualização é concluída, o tópico da ajuda é retornado para o comando especificado:
Get-Help -Name Get-Help
Reserve um momento para executar esse exemplo no seu computador, revise a saída e tome nota de como as informações são agrupadas:
- NOME
- SINOPSE
- SINTAXE
- DESCRIÇÃO
- LIGAÇÕES RELACIONADAS
- COMENTÁRIOS
Como você pode ver, os tópicos de ajuda podem conter uma enorme quantidade de informações e este nem é todo o tópico de ajuda.
Embora não seja específico do PowerShell, um parâmetro é uma maneira de fornecer entrada para um comando. Get-Help
tem muitos parâmetros que podem ser especificados para retornar todo o tópico da Ajuda ou um subconjunto dele.
A seção de sintaxe do tópico da Ajuda mostrado no conjunto anterior de resultados lista todos os parâmetros do Get-Help
. À primeira vista, parece que os mesmos parâmetros são listados seis vezes diferentes. Cada um desses blocos diferentes na seção de sintaxe é um conjunto de parâmetros. Isso significa que o Get-Help
cmdlet tem seis conjuntos de parâmetros diferentes. Se você der uma olhada mais de perto, notará que pelo menos um parâmetro é diferente em cada um dos conjuntos de parâmetros.
Os conjuntos de parâmetros excluem-se mutuamente. Uma vez que um parâmetro exclusivo que só existe em um dos conjuntos de parâmetros é usado, apenas os parâmetros contidos nesse conjunto de parâmetros podem ser usados. Por exemplo, os parâmetros Full e Detailed não puderam ser especificados ao mesmo tempo porque estão em conjuntos de parâmetros diferentes.
Cada um dos seguintes parâmetros está em diferentes conjuntos de parâmetros:
- Total
- Detalhado
- Exemplos
- Online
- Parâmetro
- ShowWindow
Toda a sintaxe críptica, como colchetes e colchetes angulares na seção de sintaxe, significa algo, mas será abordada no Apêndice A deste livro. Embora importante, aprender a sintaxe enigmática geralmente é difícil de reter para alguém que é novo no PowerShell e pode não usá-lo todos os dias.
Para obter mais informações para entender melhor a sintaxe críptica, consulte o Apêndice A.
Para iniciantes, há uma maneira mais fácil de descobrir as mesmas informações, exceto em linguagem simples.
Quando o parâmetro Full de é especificado, todo o tópico da Get-Help
ajuda é retornado.
Get-Help -Name Get-Help -Full
Reserve um momento para executar esse exemplo no seu computador, revise a saída e tome nota de como as informações são agrupadas:
- NOME
- SINOPSE
- SINTAXE
- DESCRIÇÃO
- PARÂMETROS
- ENTRADAS
- SAÍDAS
- NOTAS
- EXEMPLOS
- LIGAÇÕES RELACIONADAS
Observe que o uso do parâmetro Full retornou várias seções adicionais, uma das quais é a seção PARAMETERS que fornece mais informações do que a seção SYNTAX enigmática.
O parâmetro Full é um parâmetro switch. Um parâmetro que não requer um valor é chamado de parâmetro switch. Quando um parâmetro switch é especificado, seu valor é true e, quando não é, seu valor é false.
Se você estiver trabalhando neste capítulo no console do PowerShell, notou que o comando anterior para exibir o tópico de ajuda completo voou Get-Help
na tela sem dar a você a chance de lê-lo. Há uma forma melhor.
Help
é uma função que canaliza Get-Help
para uma função chamada more
, que é um wrapper para o more.com
arquivo executável no Windows. No console do PowerShell, help
fornece uma página de ajuda de cada vez. No ISE, funciona da mesma forma que Get-Help
o . Minha recomendação é usar a help
função em vez do Get-Help
cmdlet, pois ela fornece uma experiência melhor e é menos para digitar.
No entanto, escrever menos nem sempre é uma coisa boa. Se você quiser salvar seus comandos como um script ou compartilhá-los com outra pessoa, certifique-se de usar nomes completos de cmdlets e parâmetros. Os nomes completos são auto-documentados, o que os torna mais fáceis de entender. Pense na próxima pessoa que tem que ler e entender seus comandos. Pode ser você. Seus colegas de trabalho e eu futuro agradecerão.
Tente executar os seguintes comandos no console do PowerShell em seu computador com ambiente de laboratório do Windows 10.
Get-Help -Name Get-Help -Full
help -Name Get-Help -Full
help Get-Help -Full
Você notou alguma diferença na saída dos comandos listados anteriormente quando os executou em seu computador ambiente de laboratório do Windows 10?
Não há diferenças além das duas últimas opções que retornam os resultados uma página de cada vez.
A barra de espaço é usada para exibir a próxima página de conteúdo ao usar a Help
função e Ctrl+C cancela comandos que estão sendo executados no console do PowerShell.
O primeiro exemplo usa o Get-Help
cmdlet, o segundo usa a Help
função e o terceiro omite o parâmetro Name ao usar a Help
função. Name é um parâmetro posicional e está sendo usado posicionalmente nesse exemplo. Isso significa que o valor pode ser especificado sem especificar o nome do parâmetro, desde que o próprio valor seja especificado na posição correta. Como eu sabia em que posição especificar o valor? Lendo a ajuda como mostrado no exemplo a seguir.
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
Observe que, no exemplo anterior, o parâmetro Parameter foi usado com a função Help para retornar apenas informações do tópico da Ajuda para o parâmetro Name . Isso é muito mais conciso do que tentar filtrar manualmente o que às vezes parece um tópico de ajuda de cem páginas.
Com base nesses resultados, você pode ver que o parâmetro Name é posicional e deve ser especificado na posição zero (a primeira posição) quando usado posicionalmente. A ordem em que os parâmetros são especificados não importa se o nome do parâmetro é especificado.
Uma outra informação importante é que o parâmetro Name espera que o tipo de dados para seu valor seja uma única cadeia de caracteres, que é indicada por <String>
. Se aceitasse várias cadeias de caracteres, o tipo de dados seria listado como <String[]>
.
Às vezes, você simplesmente não quer exibir todo o tópico de ajuda para um comando. Há uma série de outros parâmetros além de Full que podem ser especificados com Get-Help
ou Help
. Tente executar os seguintes comandos no seu computador com ambiente de laboratório 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
Eu normalmente uso help <command name>
com o parâmetro Full ou Online . Se eu estiver interessado apenas nos exemplos, usarei o parâmetro Examples e, se estiver interessado apenas em um parâmetro específico, usarei o parâmetro Parameter . O parâmetro ShowWindow abre o tópico da Ajuda em uma janela pesquisável separada que pode ser colocada em um monitor diferente se você tiver vários monitores. Eu evitei o parâmetro ShowWindow porque há um bug conhecido em que ele não exibe todo o tópico de ajuda.
Se você quiser ajuda em uma janela separada, minha recomendação é usar o parâmetro Online ou usar o parâmetro Full e canalizar os resultados para Out-GridView
, como mostrado no exemplo a seguir.
help Get-Command -Full | Out-GridView
Tanto o Out-GridView
cmdlet quanto o parâmetro ShowWindow do cmdlet exigem um sistema operacional com uma GUI (Interface Gráfica do Get-Help
Usuário). Eles gerarão uma mensagem de erro se você tentar usar qualquer um deles no Windows Server que foi instalado usando a opção de instalação Server Core (no-GUI).
Para usar Get-Help
para localizar comandos, use o caractere curinga asterisco (*
) com o parâmetro Name . Especifique um termo no qual você está procurando comandos como o valor para o parâmetro Name , conforme mostrado no exemplo a seguir.
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 ...
No exemplo anterior, os caracteres curinga *
não são necessários e omiti-los produz o mesmo resultado. Get-Help
adiciona automaticamente os caracteres curinga nos bastidores.
help process
O comando anterior produz os mesmos resultados que a especificação do caractere curinga *
em cada extremidade do processo.
Prefiro adicioná-los, pois essa é a opção que sempre funciona de forma consistente. Caso contrário, eles são necessários em determinados cenários e não em outros. Assim que você adiciona um caractere curinga no meio do valor, ele não é mais adicionado automaticamente nos bastidores ao valor especificado.
help pr*cess
Nenhum resultado é retornado por esse comando, a menos que o *
caractere curinga seja adicionado ao início, ao fim ou ao início e ao fim do pr*cess
.
Se o valor especificado começar com um traço, um erro será gerado porque o PowerShell o interpreta como um nome de parâmetro e esse nome de parâmetro não existe para o Get-Help
cmdlet.
help -process
Se o que você está tentando procurar são comandos que terminam com -process
, você só precisa adicionar o *
caractere curinga ao início do valor.
help *-process
Ao pesquisar comandos do PowerShell com Get-Help
o , você quer ser um pouco mais vago em vez de ser muito específico com o que está procurando.
A pesquisa process
anterior encontrou apenas comandos que continham process
o nome do comando e retornou apenas esses resultados. Quando Get-Help
é usado para processes
pesquisar o , ele não encontra nenhuma correspondência para nomes de comando, portanto, ele executa uma pesquisa de cada tópico de ajuda no PowerShell em seu sistema e retorna todas as correspondências encontradas. Isso faz com que ele retorne um número enorme de resultados.
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...
Usando Help
para pesquisar process
10 resultados retornados e usando-o para procurar processes
68 resultados retornados. Se apenas um resultado for encontrado, o tópico de ajuda em si será exibido em vez de uma lista de comandos.
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"
Agora para desmistificar o mito de que Help
no PowerShell só é possível encontrar comandos que tenham tópicos de ajuda.
help *more*
NAME
more
SYNTAX
more [[-paths] <string[]>]
ALIASES
None
REMARKS
None
Observe no exemplo anterior que more
não tem um tópico de ajuda, mas o Help
sistema no PowerShell conseguiu encontrá-lo. Ele encontrou apenas uma correspondência e retornou as informações básicas de sintaxe que você verá quando um comando não tiver um tópico de ajuda.
O PowerShell contém vários tópicos de ajuda conceituais (Sobre). O comando a seguir pode ser usado para retornar uma lista de todos os tópicos de ajuda Sobre em seu sistema.
help About_*
Limitar os resultados a um único tópico da Ajuda Sobre exibe o tópico de ajuda real em vez de retornar uma lista.
help about_Updatable_Help
O sistema de ajuda no PowerShell precisa ser atualizado para que os tópicos de ajuda Sobre estejam presentes. Se, por algum motivo, a atualização inicial do sistema de ajuda falhar no seu computador, os arquivos não estarão disponíveis até que o Update-Help
cmdlet tenha sido executado com êxito.
Get-Command
Get-Command
foi concebido para o ajudar a localizar comandos. A execução Get-Command
sem quaisquer parâmetros retorna uma lista de todos os comandos no seu sistema. O exemplo a seguir demonstra o uso do Get-Command
cmdlet para determinar quais comandos existem para trabalhar com processos:
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...
Observe no exemplo anterior onde Get-Command
foi executado, o parâmetro Noun é usado e Process
é especificado como o valor para o parâmetro Noun . E se você não soubesse como usar o Get-Command
cmdlet? Você pode usar Get-Help
para exibir o tópico de ajuda do Get-Command
.
Os parâmetros Name, Noun e Verb aceitam curingas. O exemplo a seguir mostra curingas sendo usados com o parâmetro 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...
Não sou fã de usar curingas com o parâmetro Name de, pois ele também retorna arquivos executáveis que não são comandos nativos do Get-Command
PowerShell.
Se você for usar caracteres curinga com o parâmetro Name , recomendo limitar os resultados com o parâmetro CommandType .
Get-Command -Name *service* -CommandType Cmdlet, Function, Alias
Uma opção melhor é usar o parâmetro Verb ou Noun ou ambos, já que apenas os comandos do PowerShell têm verbos e substantivos.
Encontrou algo errado com um tópico de ajuda? A boa notícia é que os tópicos de ajuda para o PowerShell foram de código aberto e estão disponíveis no repositório do PowerShell-Docs no GitHub. Pague para frente, não apenas corrigindo as informações incorretas para si mesmo, mas todos os outros também. Basta bifurcar o repositório de documentação do PowerShell no GitHub, atualizar o tópico da ajuda e enviar uma solicitação pull. Assim que o pull request for aceito, a documentação corrigida estará disponível para todos.
Atualizando a Ajuda
A cópia local dos tópicos de ajuda do PowerShell foi atualizada anteriormente, a primeira ajuda em um comando foi solicitada. Recomenda-se atualizar periodicamente o sistema de ajuda porque pode haver atualizações no conteúdo da ajuda de tempos em tempos. O Update-Help
cmdlet é usado para atualizar os tópicos da ajuda.
Ele requer acesso à Internet por padrão e para que você esteja executando o PowerShell elevado como administrador.
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
Alguns dos módulos retornaram erros, o que não é incomum. Se a máquina não tiver acesso à Internet, você poderá usar o Save-Help
cmdlet em outra máquina que tenha acesso à Internet para primeiro salvar as informações de ajuda atualizadas em um compartilhamento de arquivos em sua rede e, em seguida, usar o parâmetro SourcePath de para especificar esse local de rede para os tópicos da Update-Help
ajuda.
Considere configurar uma tarefa agendada ou adicionar alguma lógica ao seu script de perfil no PowerShell para atualizar periodicamente o conteúdo da ajuda no seu computador. Os scripts de perfil serão discutidos em um próximo capítulo.
Resumo
Neste capítulo, você aprendeu como encontrar comandos com ambos e Get-Help
Get-Command
. Você aprendeu como usar o sistema de ajuda para descobrir como usar comandos depois de encontrá-los. Você também aprendeu como atualizar o conteúdo dos tópicos de ajuda quando as atualizações estão disponíveis.
Meu desafio para você é aprender um comando do PowerShell por dia.
Get-Command | Get-Random | Get-Help -Full
Rever
- O parâmetro
Get-Service
DisplayName é posicional? - Quantos conjuntos de parâmetros tem o
Get-Process
cmdlet? - Quais comandos do PowerShell existem para trabalhar com logs de eventos?
- O que é 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 no seu computador?
Leitura Recomendada
Se você quiser saber mais informações sobre os tópicos abordados neste capítulo, recomendo ler os seguintes tópicos de ajuda do PowerShell.
No próximo capítulo, você aprenderá sobre o Get-Member
cmdlet, bem como objetos, propriedades e métodos.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários