Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O PowerShell é um shell de linha de comando e uma linguagem de script em um. O PowerShell começou no Windows para ajudar a automatizar tarefas administrativas. Agora, ele executa a plataforma cruzada e pode ser usado para várias tarefas.
O que torna o PowerShell exclusivo é que ele aceita e retorna objetos .NET, em vez de texto. Esse recurso facilita a conexão de comandos diferentes em um pipeline.
Para que o PowerShell pode ser usado?
Inicialmente, o PowerShell era somente windows. Agora, ele é multiplataforma e pode ser usado para várias tarefas, como:
- Gerenciamento de nuvem. O PowerShell pode ser usado para gerenciar recursos de nuvem. Por exemplo, você pode recuperar informações, atualizar ou implantar novos recursos.
- CI/CD. Ele também pode ser usado como parte de um pipeline de Integração Contínua/Implantação Contínua.
- Automatizar tarefas para o Active Directory e o Exchange. Você pode usá-la para automatizar quase qualquer tarefa no Windows, como criar usuários no Active Directory e caixas de correio no Exchange.
Quem usa o PowerShell?
O PowerShell é uma ferramenta poderosa que pode ajudar as pessoas que trabalham em várias funções. Tradicionalmente, o PowerShell era usado pelos Administradores do Sistema. Agora ele está sendo usado por pessoas que se chamam DevOps, Cloud Ops e até desenvolvedores.
Cmdlets do PowerShell
O PowerShell vem com centenas de comandos pré-instalados. Os comandos do PowerShell são chamados de cmdlets ( command-lets pronunciados).
O nome de cada cmdlet consiste em um par Verb-Noun . Por exemplo, Get-Process. Essa convenção de nomenclatura facilita a compreensão do que o cmdlet faz. Também facilita a localização do comando que você está procurando. Ao procurar um cmdlet a ser usado, você pode filtrar no verbo ou substantivo.
Usando cmdlets para explorar o PowerShell
Quando você pega o PowerShell pela primeira vez, pode parecer intimidante, pois parece haver muito o que aprender. O PowerShell foi projetado para ajudá-lo a aprender um pouco de cada vez, como você precisa.
O PowerShell inclui cmdlets que ajudam você a descobrir o PowerShell. Usando esses três cmdlets, você pode descobrir em quais comandos estão disponíveis, no que eles fazem e em quais tipos eles operam.
-
Get-Verb. A execução desse comando retorna uma lista de verbos aos quais a maioria dos comandos adere. A resposta inclui uma descrição do que esses verbos fazem. Como a maioria dos comandos segue essa convenção de nomenclatura, ela define expectativas sobre o que um comando faz. Esse comando ajuda você a selecionar o verbo apropriado e o que nomear um comando ao criar seus próprios comandos. -
Get-Command. Esse comando recupera uma lista de todos os comandos instalados em seu computador. -
Get-Member. Ele opera na saída baseada em objeto e é capaz de descobrir quais objetos, propriedades e métodos estão disponíveis para um comando. -
Get-Help. Invocar esse comando com o nome de um comando como argumento exibe uma página de ajuda que descreve várias partes de um comando.
Usando esses comandos, você pode descobrir quase tudo o que precisa saber sobre o PowerShell.
Verbo
Verbo é um conceito importante no PowerShell. É um padrão de nomenclatura que a maioria dos cmdlets segue. Também é um padrão de nomenclatura que você deve seguir ao escrever seus próprios comandos. A ideia é que o Verbo diga o que você está tentando fazer, como ler ou talvez alterar dados. O PowerShell tem uma lista padronizada de verbos. Para obter uma lista completa de todos os verbos possíveis, use o Get-Verb cmdlet:
Get-Verb
O cmdlet retorna uma longa lista de verbos. A Descrição fornece contexto para o que o verbo deve fazer. Estas são as primeiras linhas de saída:
Verb AliasPrefix Group Description
---- ----------- ----- -----------
Add a Common Adds a resource to a container, or attaches an item to another item
Clear cl Common Removes all the resources from a container but does not delete the container
Close cs Common Changes the state of a resource to make it inaccessible, unavailable, or unusab…
Copy cp Common Copies a resource to another name or to another container
Enter et Common Specifies an action that allows the user to move into a resource
Exit ex Common Sets the current environment or context to the most recently used context
...
Localizar comandos com Get-Command
O Get-Command cmdlet retorna uma lista de todos os comandos disponíveis instalados em seu sistema. A lista pode ser grande. Você pode limitar a quantidade de informações que voltam filtrando a resposta usando parâmetros ou cmdlets auxiliares.
Filtrar no nome
Você pode filtrar a saída do uso de Get-Command parâmetros diferentes. A filtragem permite que você encontre comandos que tenham determinadas propriedades. O parâmetro Name permite que você localize um comando específico por nome.
Get-Command -Name Get-Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Management
E se você quiser encontrar todos os comandos que funcionam com processos? Você pode usar um curinga * para corresponder a outras formas da cadeia de caracteres. Por exemplo:
Get-Command -Name *-Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Debug-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Start-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Stop-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Wait-Process 7.0.0.0 Microsoft.PowerShell.Management
Filtragem em Substantivo e Verbo
Há outros parâmetros que filtram valores verbo e substantivo. A parte verbo do nome de um comando é a parte mais à esquerda. O verbo deve ser um dos valores retornados pelo Get-Verb cmdlet. A parte mais à direita de um comando é a parte substantiva. Um substantivo pode ser qualquer coisa.
Filtrar no verbo. No comando
Get-Process, a parte do verbo éGet. Para filtrar na parte do verbo, use o parâmetro Verbo .Get-Command -Verb 'Get'Este exemplo lista todos os comandos que usam o verbo
Get.Filtrar no substantivo. No comando
Get-Process, a parte substantiva éProcess. Para filtrar no substantivo, use o parâmetro Substantivo . O exemplo a seguir retorna todos os cmdlets que têm substantivos começando com a letraU.Get-Command -Noun U*
Além disso, você pode combinar parâmetros para restringir sua pesquisa, por exemplo:
Get-Command -Verb Get -Noun U*
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-UICulture 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Unique 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Uptime 7.0.0.0 Microsoft.PowerShell.Utility
Usar cmdlets auxiliares para filtrar resultados
Você também pode usar outros cmdlets para filtrar resultados.
Select-Object. Este comando versátil ajuda você a escolher propriedades específicas de um ou mais objetos. Você também pode limitar o número de itens que recebe de volta. O exemplo a seguir retorna os valores de propriedade Nome e Origem para os cinco primeiros comandos disponíveis na sessão atual.Get-Command | Select-Object -First 5 -Property Name, SourceName Source ---- ------ Add-AppPackage Appx Add-AppPackageVolume Appx Add-AppProvisionedPackage Dism Add-AssertionOperator Pester Add-ProvisionedAppPackage DismPara obter mais informações, consulte Select-Object.
Where-Object. Esse cmdlet permite filtrar os objetos retornados com base nos valores das propriedades. O comando usa uma expressão que pode testar o valor de uma propriedade. O exemplo a seguir retorna todos os processos em que oProcessNameinício é iniciado.pGet-Process | Where-Object {$_.ProcessName -like "p*"}O
Get-Processcmdlet retorna uma coleção de objetos de processo. Para filtrar a resposta, direcione a saída paraWhere-Object. A tubulação significa que dois ou mais comandos estão conectados por meio de um caractere de pipe|. A saída de um comando é enviada como a entrada para o próximo comando. A expressão de filtro paraWhere-Objectusar o-likeoperador para corresponder aos processos que começam com a letrap.
Explorar objetos com Get-Member
Depois de localizar o cmdlet desejado, você deseja saber mais sobre qual saída ele produz. O Get-Member cmdlet exibe o tipo, as propriedades e os métodos de um objeto. Redirecione a saída para a qual você deseja inspecionar Get-Member.
Get-Process | Get-Member
O resultado exibe o tipo retornado como TypeName e todas as propriedades e métodos do objeto. Aqui está um trecho de tal resultado:
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
Handles AliasProperty Handles = Handlecount
Name AliasProperty Name = ProcessName
...
Usando o parâmetro MemberType , você pode limitar as informações retornadas.
Get-Process | Get-Member -MemberType Method
Por padrão, o PowerShell exibe apenas algumas propriedades. O exemplo anterior exibia o , MemberTypee Definition os Namemembros. Você pode usar Select-Object para especificar as propriedades que deseja ver. Por exemplo, você deseja exibir somente as propriedades e Definition as Name propriedades:
Get-Process | Get-Member | Select-Object Name, Definition
Pesquisar por tipo de parâmetro
Get-Member mostrou-nos que Get-Process retorna objetos de tipo de processo. O parâmetro Get-CommandParameterType pode ser usado para localizar outros comandos que utilizam objetos Process como entrada.
Get-Command -ParameterType Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Debug-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Enter-PSHostProcess 7.1.0.0 Microsoft.PowerShell.Core
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Get-PSHostProcessInfo 7.1.0.0 Microsoft.PowerShell.Core
Cmdlet Stop-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Wait-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Conhecer o tipo de saída de um comando pode ajudar a restringir sua pesquisa por comandos relacionados.