Capítulo 2 - O Sistema de Ajuda
Dois grupos de profissionais de TI receberam um teste escrito sem acesso a um computador para determinar o nível de competência com o PowerShell. Os principiantes do PowerShell foram colocados num grupo e especialistas noutro. Com base nos resultados do teste, não parecia haver muita diferença no nível de competência entre os dois grupos. Ambos os grupos receberam um segundo teste semelhante ao primeiro. Desta vez, foi-lhes dado acesso a um computador com o PowerShell que não tinha acesso à Internet. Os resultados do segundo teste mostraram uma enorme diferença no nível de competência 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 nestes dois testes foram porque os especialistas não memorizam como utilizar milhares de comandos no PowerShell. Aprendem a utilizar o sistema de ajuda no PowerShell muito bem. Isto permite-lhes encontrar os comandos necessários quando necessário e como utilizar esses comandos assim que os encontrarem.
Ouvi Jeffrey Snover, o inventor do PowerShell, contar uma história semelhante várias vezes.
Dominar o sistema de ajuda é a chave para ter êxito com o PowerShell.
Deteção
Os comandos compilados no PowerShell são denominados cmdlets. O cmdlet é pronunciado "command-let" (não CMD-let). Os nomes dos cmdlets têm a forma de comandos "Verb-Noun" singulares para torná-los facilmente detetáveis. Por exemplo, o cmdlet para determinar quais são os processos em execução Get-Process
e o cmdlet para obter uma lista de serviços e respetivos estados é Get-Service
. Existem outros tipos de comandos no PowerShell, como aliases e funções que serão abordados mais à frente neste livro. O termo comando do PowerShell é um termo genérico que é frequentemente utilizado para se referir a qualquer tipo de comando no PowerShell, independentemente de ser ou não um cmdlet, função ou alias.
Os Cmdlets De Três Núcleos no PowerShell
Get-Command
Get-Help
Get-Member
(abrangido no capítulo 3)
Uma pergunta que me é feita muitas vezes é como pode descobrir quais são os comandos no PowerShell? Ambos Get-Command
e Get-Help
podem ser utilizados para determinar os comandos.
Get-Help
Get-Help
é um comando multiusos. Get-Help
ajuda-o a aprender a utilizar comandos assim que os encontrar. Get-Help
também pode ser utilizado para ajudar a localizar comandos, mas de uma forma diferente e mais indirecta quando comparado Get-Command
com .
Quando Get-Help
é utilizado para localizar comandos, procura primeiro correspondências universais de nomes de comandos com base na entrada fornecida. Se não encontrar uma correspondência, procura nos próprios tópicos de ajuda e, se não for encontrada nenhuma correspondência, é devolvido um erro. Ao contrário da crença popular, Get-Help
pode ser utilizado para encontrar comandos que não têm tópicos de ajuda.
A primeira coisa que precisa de saber sobre o sistema de ajuda no PowerShell é como utilizar o Get-Help
cmdlet. O seguinte comando é utilizado para apresentar o tópico de ajuda para 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 é disponibilizada com o sistema operativo. A primeira vez Get-Help
é executada para um comando, a mensagem anterior é apresentada. Se a função ou man
alias help
for utilizada em vez do Get-Help
cmdlet, não receberá este pedido.
Responder sim ao premir Y executa o cmdlet, que Update-Help
requer acesso à Internet por predefinição. Y
pode ser especificado em maiúsculas ou minúsculas.
Assim que a ajuda for transferida e a atualização estiver concluída, o tópico de ajuda é devolvido para o comando especificado:
Get-Help -Name Get-Help
Dedique algum tempo a executar esse exemplo no seu computador, reveja o resultado e tome nota de como as informações são agrupadas:
- NOME
- SINOPSE
- SINTAXE
- DESCRIÇÃO
- LIGAÇÕES RELACIONADAS
- OBSERVAÇÕES
Como pode ver, os tópicos de ajuda podem conter uma enorme quantidade de informações e este não é mesmo o tópico de ajuda completo.
Embora não seja específico do PowerShell, um parâmetro é uma forma de fornecer entrada a um comando. Get-Help
tem muitos parâmetros que podem ser especificados para devolver todo o tópico de ajuda ou um subconjunto do mesmo.
A secção sintaxe do tópico de ajuda apresentada no conjunto de resultados anterior lista todos os parâmetros para Get-Help
. À primeira vista, parece que os mesmos parâmetros são listados seis vezes diferentes. Cada um desses blocos diferentes na secção de sintaxe é um conjunto de parâmetros. Isto significa que o Get-Help
cmdlet tem seis conjuntos de parâmetros diferentes. Se observar melhor, irá reparar que, pelo menos, um parâmetro é diferente em cada um dos conjuntos de parâmetros.
Os conjuntos de parâmetros são mutuamente exclusivos. Uma vez utilizado um parâmetro exclusivo que só existe num dos conjuntos de parâmetros, só podem ser utilizados parâmetros contidos nesse conjunto de parâmetros. Por exemplo, não foi possível especificar os parâmetros Completo e Detalhado ao mesmo tempo porque estão em conjuntos de parâmetros diferentes.
Cada um dos seguintes parâmetros está em conjuntos de parâmetros diferentes:
- Completa
- Detalhado
- Exemplos
- Online
- Parâmetro
- MostrarWindow
Toda a sintaxe enigmática, como parênteses retos e angulares na secção de sintaxe, significa algo, mas será coberta no Apêndice A deste livro. Embora seja importante, aprender a sintaxe enigmática é muitas vezes difícil de reter para alguém que é novo no PowerShell e pode não usá-la todos os dias.
Para obter mais informações para compreender melhor a sintaxe enigmática, consulte Apêndice A.
Para principiantes, existe uma forma mais fácil de descobrir as mesmas informações, exceto em linguagem simples.
Quando o parâmetro Completo de Get-Help
é especificado, todo o tópico de ajuda é devolvido.
Get-Help -Name Get-Help -Full
Dedique algum tempo a executar esse exemplo no seu computador, reveja o resultado 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
Tenha em atenção que a utilização do parâmetro Completo devolveu várias secções adicionais, uma das quais é a secção PARAMETERS que fornece mais informações do que a secção sintaxe enigmática.
O parâmetro Completo é um parâmetro comutador. Um parâmetro que não requer um valor é denominado parâmetro switch. Quando um parâmetro de comutador é especificado, o respetivo valor é verdadeiro e, quando não é, o valor é falso.
Se tem estado a trabalhar neste capítulo na consola do PowerShell, reparou que o comando anterior para apresentar o tópico de ajuda completo para Get-Help
voar no ecrã sem lhe dar a oportunidade de o ler. Há uma maneira melhor.
Help
é uma função que encaminha Get-Help
para uma função chamada more
, que é um wrapper para o more.com
ficheiro executável no Windows. Na consola do PowerShell, help
fornece uma página de ajuda de cada vez. No ISE, funciona da mesma forma Get-Help
que . A minha recomendação é utilizar a help
função em vez do Get-Help
cmdlet, uma vez que proporciona uma melhor experiência e é menos para escrever.
No entanto, escrever menos nem sempre é uma coisa boa. Se quiser guardar os seus comandos como um script ou partilhá-los com outra pessoa, certifique-se de que utiliza nomes de parâmetros e cmdlets completos. Os nomes completos são auto-documentação, o que os torna mais fáceis de compreender. Pense na próxima pessoa que tem de ler e compreender os seus comandos. Pode ser você. Os seus colegas e futuro eu agradecer-vos-ão.
Experimente executar os seguintes comandos na consola do PowerShell no computador do ambiente de laboratório Windows 10.
Get-Help -Name Get-Help -Full
help -Name Get-Help -Full
help Get-Help -Full
Reparou em alguma diferença na saída dos comandos listados anteriormente quando os executou no computador do ambiente de laboratório do Windows 10?
Não existem diferenças além das duas últimas opções que devolvem os resultados uma página de cada vez.
A barra de espaço é utilizada para apresentar a página seguinte do conteúdo ao utilizar a Help
função e Ctrl+C cancela os comandos que estão em execução na consola do PowerShell.
O primeiro exemplo utiliza o Get-Help
cmdlet , o segundo utiliza a Help
função e o terceiro omite o parâmetro Name ao utilizar a Help
função . O nome é um parâmetro posicional e está a ser utilizado posicionalmente nesse exemplo. Isto significa que o valor pode ser especificado sem especificar o nome do parâmetro, desde que o valor em si seja especificado na posição correta. Como é que eu sabia em que posição especificar o valor? Ao ler a ajuda, conforme mostrado no exemplo seguinte.
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
Repare que, no exemplo anterior, o parâmetro Parameter foi utilizado com a função Ajuda para devolver apenas informações do tópico de ajuda para o parâmetro Nome . Isto é muito mais conciso do que tentar analisar manualmente o que por vezes parece ser um tópico de ajuda de cem páginas.
Com base nesses resultados, pode ver que o parâmetro Name é posicional e tem de ser especificado na posição zero (a primeira posição) quando utilizado 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 o respetivo valor seja uma única cadeia, que é indicada por <String>
. Se aceitasse múltiplas cadeias de carateres, o tipo de dados seria listado como <String[]>
.
Por vezes, simplesmente não quer apresentar todo o tópico de ajuda de um comando. Existem vários outros parâmetros além de Completo que podem ser especificados com Get-Help
ou Help
. Experimente executar os seguintes comandos no computador do ambiente de laboratório do 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
Normalmente, utilizo help <command name>
com o parâmetro Completo ou Online . Se só estiver interessado nos exemplos, utilizarei o parâmetro Exemplos e, se apenas estiver interessado num parâmetro específico, utilizarei o parâmetro Parameter . O parâmetro ShowWindow abre o tópico de ajuda numa janela pesquisável separada que pode ser colocada num monitor diferente se tiver vários monitores. Evitei o parâmetro ShowWindow porque existe um erro conhecido em que não apresenta todo o tópico de ajuda.
Se quiser ajuda numa janela separada, a minha recomendação é utilizar o parâmetro Online ou utilizar o parâmetro Completo e encaminhar os resultados para Out-GridView
, conforme mostrado no exemplo seguinte.
help Get-Command -Full | Out-GridView
Tanto o Out-GridView
cmdlet como o parâmetro ShowWindow do Get-Help
cmdlet requerem um sistema operativo com uma GUI (Interface Gráfica de Utilizador). Irão gerar uma mensagem de erro se tentar utilizar qualquer um deles no Windows Server que foi instalado com a opção de instalação do núcleo do servidor (sem GUI).
Para utilizar Get-Help
para localizar comandos, utilize o caráter universal asterisco (*
) com o parâmetro Nome . Especifique um termo no qual está a procurar comandos como o valor do parâmetro Nome , conforme mostrado no exemplo seguinte.
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 *
carateres universais não são necessários e omiti-los produz o mesmo resultado. Get-Help
adiciona automaticamente os carateres universais em segundo plano.
help process
O comando anterior produz os mesmos resultados que especificar o *
caráter universal em cada extremidade do processo.
Prefiro adicioná-los, uma vez que essa é a opção que funciona sempre de forma consistente. Caso contrário, são necessários em determinados cenários e não em outros. Assim que adicionar um caráter universal no meio do valor, este deixa de ser adicionado automaticamente nos bastidores ao valor que especificou.
help pr*cess
Não são devolvidos resultados por esse comando, a menos que o *
caráter universal seja adicionado ao início, ao fim ou ao início e ao fim de pr*cess
.
Se o valor que especificou começar com um travessão, é gerado um erro porque o PowerShell o interpreta como um nome de parâmetro e não existe esse nome de parâmetro para o Get-Help
cmdlet.
help -process
Se o que está a tentar procurar forem comandos que terminem com -process
, só precisa de adicionar o *
caráter universal ao início do valor.
help *-process
Ao procurar comandos do PowerShell com Get-Help
, quer ser um pouco mais vago em vez de ser demasiado específico com o que procura.
A pesquisa process
de comandos anteriores apenas foi encontrada que continha process
o nome do comando e devolveu apenas esses resultados. Quando Get-Help
é utilizado para procurar processes
, não encontra correspondências para nomes de comandos, pelo que efetua uma pesquisa de todos os tópicos de ajuda no PowerShell no seu sistema e devolve as correspondências que encontrar. Isto faz com que devolva um grande número 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...
Utilizar Help
para procurar process
10 resultados devolvidos e utilizá-lo para procurar processes
resultados devolvidos 68. Se apenas for encontrado um resultado, o tópico de ajuda em si será apresentado 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, desmascare o mito de que Help
no PowerShell só pode encontrar comandos que tenham tópicos de ajuda.
help *more*
NAME
more
SYNTAX
more [[-paths] <string[]>]
ALIASES
None
REMARKS
None
Repare no exemplo anterior que more
não tem um tópico de ajuda, mas o Help
sistema no PowerShell conseguiu encontrá-lo. Só encontrou uma correspondência e devolveu as informações básicas de sintaxe que verá quando um comando não tem um tópico de ajuda.
O PowerShell contém vários tópicos de ajuda conceptual (Acerca de). O seguinte comando pode ser utilizado para devolver uma lista de todos os tópicos sobre ajuda sobre o seu sistema.
help About_*
Limitar os resultados a um único tópico Sobre ajuda apresenta o tópico de ajuda real em vez de devolver uma lista.
help about_Updatable_Help
O sistema de ajuda no PowerShell tem de ser atualizado para que os tópicos sobre a ajuda estejam presentes. Se, por algum motivo, a atualização inicial do sistema de ajuda tiver falhado no computador, os ficheiros 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 parâmetros devolve uma lista de todos os comandos no seu sistema. O exemplo seguinte demonstra como utilizar o Get-Command
cmdlet para determinar que 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...
Repare no exemplo anterior em que Get-Command
foi executado, o parâmetro Noun é utilizado e Process
é especificado como o valor para o parâmetro Noun . E se não souber como utilizar o Get-Command
cmdlet? Pode utilizar Get-Help
para apresentar o tópico de ajuda para Get-Command
.
Os parâmetros Nome, Substantivo e Verbo aceitam carateres universais. O exemplo seguinte mostra carateres universais que estão a ser utilizados 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 utilizar carateres universais com o parâmetro Nome de Get-Command
, uma vez que também devolve ficheiros executáveis que não são comandos nativos do PowerShell.
Se pretender utilizar carateres universais com o parâmetro Nome , recomendo limitar os resultados com o parâmetro CommandType .
Get-Command -Name *service* -CommandType Cmdlet, Function, Alias
Uma opção melhor é utilizar o parâmetro Verbo ou Substantivo ou ambos, uma vez que apenas os comandos do PowerShell têm verbos e substantivos.
Encontrou algo de errado com um tópico de ajuda? A boa notícia é que os tópicos de ajuda do PowerShell foram abertos e estão disponíveis no repositório PowerShell-Docs no GitHub. Pague de forma reencaminhada, não só fixando as informações incorretas para si, mas também para todos os outros. Basta criar um fork do repositório de documentação do PowerShell no GitHub, atualizar o tópico de ajuda e submeter um pedido Pull. Assim que o pedido Pull for aceite, a documentação corrigida estará disponível para todos.
A atualizar a Ajuda
A cópia local dos tópicos de ajuda do PowerShell foi atualizada anteriormente e foi pedida a primeira ajuda num comando. Recomenda-se atualizar periodicamente o sistema de ajuda, uma vez que podem existir atualizações ao conteúdo da ajuda periodicamente. O Update-Help
cmdlet é utilizado para atualizar os tópicos de ajuda.
Requer acesso à Internet por predefinição e para que esteja a executar 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 devolveram erros, o que não é invulgar. Se o computador não tiver acesso à Internet, pode utilizar o Save-Help
cmdlet noutro computador que tenha acesso à Internet para guardar primeiro as informações de ajuda atualizadas numa partilha de ficheiros na sua rede e, em seguida, utilizar o parâmetro SourcePath de para especificar esta localização de Update-Help
rede para os tópicos de ajuda.
Considere configurar uma tarefa agendada ou adicionar alguma lógica ao script de perfil no PowerShell para atualizar periodicamente o conteúdo da ajuda no seu computador. Os scripts de perfil serão discutidos num próximo capítulo.
Resumo
Neste capítulo, aprendeu a encontrar comandos com e Get-Help
Get-Command
. Aprendeu a utilizar o sistema de ajuda para descobrir como utilizar comandos assim que os encontrar. Também aprendeu a atualizar o conteúdo dos tópicos de ajuda quando as atualizações estão disponíveis.
O meu desafio é aprender um comando do PowerShell por dia.
Get-Command | Get-Random | Get-Help -Full
Revisão
- O parâmetro DisplayName é posicional
Get-Service
? - Quantos conjuntos de parâmetros tem o
Get-Process
cmdlet? - Que comandos do PowerShell existem para trabalhar com registos de eventos?
- Qual é o comando do PowerShell para devolver uma lista de processos do PowerShell em execução no seu computador?
- Como pode atualizar o conteúdo de ajuda do PowerShell armazenado no seu computador?
Leitura Recomendada
Se quiser saber mais informações sobre os tópicos abordados neste capítulo, recomendo que leia os seguintes tópicos de ajuda do PowerShell.
No próximo capítulo, irá aprender sobre o Get-Member
cmdlet, bem como objetos, propriedades e métodos.