PowerShellPowerShell

O PowerShell é um shell de linha de comando baseado em tarefas e linguagem de script desenvolvido no .NET.PowerShell is a task-based command-line shell and scripting language built on .NET. O PowerShell ajuda os administradores do sistema e os usuários avançados a automatizar rapidamente as tarefas que gerenciam processos e sistemas operacionais (Linux, macOS e Windows).PowerShell helps system administrators and power-users rapidly automate tasks that manage operating systems (Linux, macOS, and Windows) and processes.

Os comandos do PowerShell permitem que você gerencie os computadores da linha de comando.PowerShell commands let you manage computers from the command line. Os provedores do PowerShell permitem o acesso a repositórios de dados, como o Registro e o repositório de certificados, de forma tão fácil quanto acessar o sistema de arquivos.PowerShell providers let you access data stores, such as the registry and certificate store, as easily as you access the file system. O PowerShell inclui um valioso analisador de expressões e uma linguagem de scripts totalmente desenvolvida.PowerShell includes a rich expression parser and a fully developed scripting language.

O PowerShell é um software livrePowerShell is open-source

O código-fonte base do PowerShell agora está disponível no GitHub e está aberto para contribuições da comunidade.PowerShell base source code is now available in GitHub and open to community contributions. Confira a Fonte do PowerShell no GitHub.See PowerShell source on GitHub.

Você pode começar com as partes de que precisa em Obter PowerShell.You can start with the bits you need at Get PowerShell. Ou, talvez, com um tour rápido em Guia de Introdução.Or, perhaps, with a quick tour at Getting Started.

Metas de design do PowerShellPowerShell design goals

O PowerShell foi projetado para melhorar o ambiente de script e de linha de comando eliminando problemas antigos e adicionando novos recursos.PowerShell is designed to improve the command-line and scripting environment by eliminating long-standing problems and adding new features.

DetectabilidadeDiscoverability

O PowerShell facilita a descoberta dos seus recursos.PowerShell makes it easy to discover its features. Por exemplo, para localizar uma lista de cmdlets que exibem e alteram os serviços do Windows, digite:For example, to find a list of cmdlets that view and change Windows services, type:

Get-Command *-Service

Depois de descobrir qual cmdlet realiza uma tarefa, você pode saber mais sobre ele usando o cmdlet Get-Help.After discovering which cmdlet accomplishes a task, you can learn more about the cmdlet by using the Get-Help cmdlet. Por exemplo, para exibir a ajuda sobre o cmdlet Get-Service, digite:For example, to display help about the Get-Service cmdlet, type:

Get-Help Get-Service

A maioria dos cmdlets retorna objetos que podem ser manipulados e renderizados como texto para exibição.Most cmdlets return objects that can be manipulated and then rendered as text for display. Para entender por completo a saída desse cmdlet, direcione a saída para o cmdlet Get-Member.To fully understand the output of a cmdlet, pipe the output to the Get-Member cmdlet. Por exemplo, o comando a seguir exibe informações sobre os membros da saída do objeto pelo cmdlet Get-Service.For example, the following command displays information about the members of the object output by the Get-Service cmdlet.

Get-Service | Get-Member

ConsistênciaConsistency

O gerenciamento de sistemas pode ser uma tarefa complexa.Managing systems can be a complex task. As ferramentas que têm uma interface consistente ajudam a controlar a complexidade inerente.Tools that have a consistent interface help to control the inherent complexity. Infelizmente, as ferramentas de linha de comando e objetos COM programáveis em script não são conhecidos por sua consistência.Unfortunately, command-line tools and scriptable COM objects aren't known for their consistency.

A consistência do PowerShell é um de seus principais ativos.The consistency of PowerShell is one of its primary assets. Por exemplo, se você aprender a usar o cmdlet Sort-Object, poderá usar esse conhecimento para classificar a saída de qualquer cmdlet.For example, if you learn how to use the Sort-Object cmdlet, you can use that knowledge to sort the output of any cmdlet. Você não precisa apender as diferentes rotinas de classificação de cada cmdlet.You don't have to learn the different sorting routines of each cmdlet.

Além disso, os desenvolvedores de cmdlet não precisam criar recursos de classificação para os seus cmdlets.Additionally, cmdlet developers don't have to design sorting features for their cmdlets. O PowerShell fornece uma estrutura com os recursos básicos que forçam a consistência.PowerShell provides a framework with the basic features that forces consistency. A estrutura elimina algumas opções que são deixadas para o desenvolvedor.The framework eliminates some choices that are left to the developer. Mas, em troca, ela torna o desenvolvimento de cmdlets muito mais simples.But, in return, it makes the development of cmdlets much simpler.

Ambientes interativos e de scriptsInteractive and scripting environments

O Prompt de Comando do Windows fornece um shell interativo com o acesso a ferramentas de linha de comando e scripts básicos.The Windows Command Prompt provides an interactive shell with access to command-line tools and basic scripting. O WSH (Windows Script Host) tem ferramentas de linha de comando programáveis por script e objetos de automação COM, mas não fornece um shell interativo.Windows Script Host (WSH) has scriptable command-line tools and COM automation objects, but doesn't provide an interactive shell.

O PowerShell combina um shell interativo e um ambiente de geração de script.PowerShell combines an interactive shell and a scripting environment. O PowerShell pode acessar as ferramentas de linha de comando, objetos COM e bibliotecas de classes do .NET.PowerShell can access command-line tools, COM objects, and .NET class libraries. Essa combinação de funcionalidades estende os recursos do usuário interativo, o produtor de script e o administrador do sistema.This combination of features extends the capabilities of the interactive user, the script writer, and the system administrator.

Orientação do objetoObject orientation

O PowerShell tem base no objeto, não no texto.PowerShell is based on object not text. A saída de um comando é um objeto.The output of a command is an object. Você pode enviar o objeto de saída, pelo pipeline, para outro comando como entrada.You can send the output object, through the pipeline, to another command as its input.

Esse pipeline fornece uma interface familiar para pessoas com experiência com outros shells.This pipeline provides a familiar interface for people experienced with other shells. O PowerShell expande esse conceito, enviando objetos em vez de texto.PowerShell extends this concept by sending objects rather than text.

Transição fácil para scriptsEasy transition to scripting

A descoberta de comando do PowerShell facilita a transição de uma digitação interativa de comandos para a criação e execução de scripts.PowerShell's command discoverability makes it easy to transition from typing commands interactively to creating and running scripts. O histórico e as transcrições do PowerShell facilitam a cópia de comandos em um arquivo para uso como script.PowerShell transcripts and history make it easy to copy commands to a file for use as a script.