{"id":72966,"date":"2020-03-06T08:42:03","date_gmt":"2020-03-06T05:42:03","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/chto-takoe-windows-powershell-i-s-chem-ego-edyat-chast-1-osnovnye-vozmozhnosti"},"modified":"2020-03-06T08:42:03","modified_gmt":"2020-03-06T05:42:03","slug":"chto-takoe-windows-powershell-i-s-chem-ego-edyat-chast-1-osnovnye-vozmozhnosti","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/chto-takoe-windows-powershell-i-s-chem-ego-edyat-chast-1-osnovnye-vozmozhnosti","title":{"rendered":"O que \u00e9 o Windows PowerShell e como utiliz\u00e1-lo? Parte 1: principais recursos","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Historicamente, as utilidades de linha de comando em sistemas Unix foram melhor desenvolvidas do que em Windows, mas com o surgimento dessa nova solu\u00e7\u00e3o, a situa\u00e7\u00e3o mudou.<\/i><\/p>\n<p>O Windows PowerShell permite que administradores de sistemas automatizem a maioria das tarefas rotineiras. Com ele, \u00e9 poss\u00edvel alterar configura\u00e7\u00f5es, parar e iniciar servi\u00e7os, al\u00e9m de realizar a manuten\u00e7\u00e3o da maioria das aplica\u00e7\u00f5es instaladas. Considerar a janela azul como mais um interpretador de comandos seria inadequado. Essa abordagem n\u00e3o reflete a ess\u00eancia das inova\u00e7\u00f5es propostas pela Microsoft. Na verdade, as capacidades do Windows PowerShell s\u00e3o muito mais amplas: em uma pequena s\u00e9rie de artigos, tentaremos entender como a solu\u00e7\u00e3o da Microsoft se diferencia dos meios com os quais estamos mais acostumados.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/487876\/\"><img decoding=\"async\" alt=\"O que \u00e9 o Windows PowerShell e como utiliz\u00e1-lo? Parte 1: principais recursos\" src=\"\/wp-content\/uploads\/2020\/03\/57911997d520dd5eeef9d87ddcecb125.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Principais funcionalidades\u00a0<\/h2>\n<p>\nCertamente, o Windows PowerShell \u00e9, antes de tudo, um shell de comando com uma linguagem de script, originalmente criada sobre a plataforma .NET Framework, e mais tarde \u2013 sobre o .NET Core. Ao contr\u00e1rio de shells que aceitam e retornam dados textuais, o Windows PowerShell trabalha com classes .NET, que possuem propriedades e m\u00e9todos. O PowerShell permite executar comandos comuns, al\u00e9m de dar acesso a objetos COM, WMI e ADSI. Utilizam-se diversos reposit\u00f3rios, como o sistema de arquivos ou o registro do Windows, para os quais s\u00e3o criados os chamados provedores. \u00c9 importante destacar a possibilidade de incorporar componentes execut\u00e1veis do PowerShell em outros aplicativos para realizar diversas opera\u00e7\u00f5es, inclusive atrav\u00e9s de interface gr\u00e1fica. O inverso tamb\u00e9m \u00e9 verdade: muitos aplicativos para Windows oferecem acesso \u00e0s suas interfaces de controle atrav\u00e9s do PowerShell.\u00a0<\/p>\n<p>O Windows PowerShell permite:<\/p>\n<ul>\n<li>Alterar configura\u00e7\u00f5es do sistema operacional;<\/li>\n<li>Gerenciar servi\u00e7os e processos;<\/li>\n<li>Configurar fun\u00e7\u00f5es e componentes do servidor;<\/li>\n<li>Instalar software;<\/li>\n<li>Gerenciar software instalado atrav\u00e9s de interfaces especiais;<\/li>\n<li>Incorporar componentes execut\u00e1veis em programas de terceiros;<\/li>\n<li>Criar scripts para automa\u00e7\u00e3o de tarefas administrativas;<\/li>\n<li>Trabalhar com o sistema de arquivos, registro do Windows, reposit\u00f3rio de certificados, etc.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Shell e ambiente de desenvolvimento<\/h2>\n<p>\nO Windows PowerShell existe em duas vers\u00f5es: al\u00e9m do emulador de console com a interface de linha de comando, h\u00e1 o Ambiente de Scripting Integrado (Integrated Scripting Environment - ISE). Para acessar a interface de linha de comando, basta escolher o atalho correspondente no menu do Windows ou executar powershell.exe a partir do menu 'Executar'. Na tela, aparecer\u00e1 uma janela azul que difere consideravelmente em suas capacidades do antigo cmd.exe. L\u00e1, h\u00e1 autocompletar e outros recursos habituais para usu\u00e1rios de terminais Unix.<\/p>\n<p><img decoding=\"async\" alt=\"O que \u00e9 o Windows PowerShell e como utiliz\u00e1-lo? Parte 1: principais recursos\" src=\"\/wp-content\/uploads\/2020\/03\/2b2d6fa0a82530ddedc7c106160a883e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Para trabalhar com o shell, \u00e9 necess\u00e1rio memorizar algumas combina\u00e7\u00f5es de teclas:<\/p>\n<ul>\n<li>As setas para cima e para baixo percorrem o hist\u00f3rico para repetir comandos anteriormente digitados;<\/li>\n<li>A seta para a direita no final da linha reescreve o comando anterior caracter por caracter;<\/li>\n<li>Ctrl+Home exclui o texto digitado do cursor at\u00e9 o in\u00edcio da linha;<\/li>\n<li>Ctrl+End exclui o texto do cursor at\u00e9 o final da linha.<\/li>\n<\/ul>\n<p>\nF7 exibe uma janela com os comandos digitados e permite escolher um deles. No console, tamb\u00e9m \u00e9 poss\u00edvel selecionar texto com o mouse, copiar e colar, posicionar o cursor, excluir, backspace \u2014 tudo como gostamos.<\/p>\n<p><img decoding=\"async\" alt=\"O que \u00e9 o Windows PowerShell e como utiliz\u00e1-lo? Parte 1: principais recursos\" src=\"\/wp-content\/uploads\/2020\/03\/217b3584c4ffbbfaea8f4fcd97512505.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nO Windows PowerShell ISE \u00e9 um ambiente de desenvolvimento completo com um editor de c\u00f3digo que suporta abas e realce de sintaxe, construtor de comandos, depurador embutido e outras ferramentas agrad\u00e1veis para programadores. Se voc\u00ea escrever um h\u00edfen ap\u00f3s o nome do comando no editor do ambiente de desenvolvimento, ver\u00e1 uma lista suspensa com todos os par\u00e2metros dispon\u00edveis, indicando o tipo. Voc\u00ea pode iniciar o PowerShell ISE atrav\u00e9s de um atalho no menu do sistema ou usando o arquivo execut\u00e1vel powershell_ise.exe.<\/p>\n<p><img decoding=\"async\" alt=\"O que \u00e9 o Windows PowerShell e como utiliz\u00e1-lo? Parte 1: principais recursos\" src=\"\/wp-content\/uploads\/2020\/03\/f80df64ede3d89759757c87709d62155.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Cmdlets\u00a0<\/h2>\n<p>\nNo Windows PowerShell, surgiram os chamados cmdlets. Estes s\u00e3o classes especializadas do .NET, que incorporam uma diversidade de funcionalidades. Eles s\u00e3o nomeados segundo o princ\u00edpio \"A\u00e7\u00e3o-Objeto\" (ou \"Verbo-Substantivo\", se preferir), e a combina\u00e7\u00e3o separada por h\u00edfen lembra o sujeito e o predicado em frases de l\u00ednguas naturais. Por exemplo, Get-Help significa literalmente \"Obter-Ajuda\" ou, no contexto do PowerShell: \"Mostrar-Suporte\". Na pr\u00e1tica, equivale ao comando man em sistemas Unix, e os manuais no PowerShell devem ser solicitados dessa forma, e n\u00e3o chamando os cmdlets com a chave &#8212;help ou \\\/?. Tamb\u00e9m n\u00e3o devemos esquecer da documenta\u00e7\u00e3o online do PowerShell: a da Microsoft \u00e9 bastante detalhada.<\/p>\n<p>Al\u00e9m do Get, outros verbos (e n\u00e3o apenas verbos, estritamente falando) s\u00e3o usados nos cmdlets para indicar a\u00e7\u00f5es. Abaixo, listamos alguns exemplos:<\/p>\n<p><code>Adicionar<\/code> \u2014 adicionar;<br \/>\n<code>Limpar<\/code> \u2014 limpar;<br \/>\n<code>Habilitar<\/code> \u2014 ativar;<br \/>\n<code>Disable<\/code> \u2014 desativar;<br \/>\n<code>Novo<\/code> \u2014 criar;<br \/>\n<code>Remove<\/code> \u2014 remover;<br \/>\n<code>Definir<\/code> \u2014 definir;<br \/>\n<code>Iniciar<\/code> \u2014 iniciar;<br \/>\n<code>Stop<\/code> \u2014 parar;<br \/>\n<code>Export<\/code> \u2014 exportar;<br \/>\n<code>Importar<\/code> \u2014 importar.<\/p>\n<p>Existem cmdlets de sistema, do usu\u00e1rio e opcionais: como resultado da execu\u00e7\u00e3o, todos retornam um objeto ou um array de objetos. Eles n\u00e3o s\u00e3o sens\u00edveis a mai\u00fasculas, ou seja, do ponto de vista do interpretador de comandos, n\u00e3o h\u00e1 diferen\u00e7a entre Get-Help e get-help. O s\u00edmbolo \u2018;\u2019 \u00e9 usado para separa\u00e7\u00e3o, mas deve ser colocado obrigatoriamente apenas se v\u00e1rios cmdlets forem executados em uma \u00fanica linha.\u00a0<\/p>\n<p>Os cmdlets do Windows PowerShell s\u00e3o agrupados em m\u00f3dulos (NetTCPIP, Hyper-V, etc.), e para pesquisa de objeto e a\u00e7\u00e3o existe o cmdlet Get-Command. Para mostrar a ajuda sobre ele, pode-se usar:<\/p>\n<pre><code class=\"powershell\">Get-Help Get-Command<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"O que \u00e9 o Windows PowerShell e como utiliz\u00e1-lo? Parte 1: principais recursos\" src=\"\/wp-content\/uploads\/2020\/03\/394c5af2fa8183b22403848f07756118.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Por padr\u00e3o, o comando exibe um resumo da ajuda, mas par\u00e2metros (argumentos) podem ser passados para os cmdlets, se necess\u00e1rio. Com eles, por exemplo, \u00e9 poss\u00edvel obter informa\u00e7\u00f5es detalhadas (par\u00e2metro -Detailed) ou completas (par\u00e2metro -Full), al\u00e9m de exibir exemplos na tela (par\u00e2metro -Examples):<\/p>\n<pre><code class=\"powershell\">Get-Help Get-Command -Examples<\/code><\/pre>\n<p>\nA ajuda no Windows PowerShell \u00e9 atualizada com o cmdlet Update-Help. Se a linha de comandos for muito longa, os argumentos do cmdlet podem ser movidos para a pr\u00f3xima linha, escrevendo o caractere especial \u2018`\u2019 e pressionando Enter \u2014 simplesmente terminar a escrita do comando em uma linha e continuar na outra n\u00e3o \u00e9 poss\u00edvel.<\/p>\n<p>Abaixo est\u00e3o alguns exemplos de cmdlets comuns:\u00a0<\/p>\n<p><code>Get-Process<\/code> \u2014 mostrar os processos em execu\u00e7\u00e3o no sistema;<br \/>\n<code>Get-Service<\/code> \u2014 mostrar servi\u00e7os e seu status;<br \/>\n<code>Get-Content<\/code> \u2014 exibir o conte\u00fado de um arquivo.<\/p>\n<p>Para cmdlets frequentemente usados e utilit\u00e1rios externos, o Windows PowerShell tem sin\u00f4nimos curtos \u2014 aliases (do ingl\u00eas Alias). Por exemplo, dir \u00e9 o alias de Get-ChildItem. A lista de sin\u00f4nimos tamb\u00e9m inclui an\u00e1logos de comandos de sistemas Unix (ls, ps, etc.), e o cmdlet Get-Help \u00e9 chamado pelo comando help. A lista completa de sin\u00f4nimos pode ser visualizada usando o cmdlet Get-Alias:<\/p>\n<p><img decoding=\"async\" alt=\"O que \u00e9 o Windows PowerShell e como utiliz\u00e1-lo? Parte 1: principais recursos\" src=\"\/wp-content\/uploads\/2020\/03\/94f8cf9fd6c346e5b250d994ef1f7661.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h2>Scripts, fun\u00e7\u00f5es, m\u00f3dulos e a linguagem PowerShell<\/h2>\n<p>\nOs scripts do Windows PowerShell s\u00e3o armazenados como arquivos de texto simples com a extens\u00e3o .ps1. N\u00e3o \u00e9 poss\u00edvel execut\u00e1-los com um duplo clique: \u00e9 necess\u00e1rio clicar com o bot\u00e3o direito do mouse, abrir o menu de contexto e escolher a op\u00e7\u00e3o 'Executar no PowerShell'. A partir do console, voc\u00ea ter\u00e1 que especificar o caminho completo para o script ou navegar at\u00e9 o diret\u00f3rio correspondente e digitar o nome do arquivo. A execu\u00e7\u00e3o de scripts tamb\u00e9m \u00e9 limitada pela pol\u00edtica do sistema, e para verificar as configura\u00e7\u00f5es atuais voc\u00ea pode usar o cmdlet Get-ExecutionPolicy, que retornar\u00e1 um dos seguintes valores: <\/p>\n<p><code>Restricted<\/code> \u2014 a execu\u00e7\u00e3o de scripts est\u00e1 desativada (padr\u00e3o);<br \/>\n<code>AllSigned<\/code> \u2014 apenas a execu\u00e7\u00e3o de scripts assinados por um desenvolvedor confi\u00e1vel \u00e9 permitida;<br \/>\n<code>RemoteSigned<\/code> \u2014 a execu\u00e7\u00e3o de scripts assinados e scripts pr\u00f3prios \u00e9 permitida;<br \/>\n<code>Unrestricted<\/code> \u2014 a execu\u00e7\u00e3o de quaisquer scripts \u00e9 permitida.<\/p>\n<p>O administrador tem duas op\u00e7\u00f5es. A mais segura envolve assinar scripts, mas isso \u00e9 uma tarefa bastante complexa \u2014 vamos abordar isso em artigos futuros. Agora, vamos optar pelo caminho de menor resist\u00eancia e mudar a pol\u00edtica:<\/p>\n<pre><code class=\"powershell\">Set-ExecutionPolicy RemoteSigned<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"O que \u00e9 o Windows PowerShell e como utiliz\u00e1-lo? Parte 1: principais recursos\" src=\"\/wp-content\/uploads\/2020\/03\/139949e0da3470b866d4b54f3e2a0498.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nO PowerShell precisar\u00e1 ser executado como administrador para isso, embora, com um par\u00e2metro especial, voc\u00ea possa alterar a pol\u00edtica tamb\u00e9m para o usu\u00e1rio atual.<\/p>\n<p>Os scripts s\u00e3o escritos em uma linguagem de programa\u00e7\u00e3o orientada a objetos, cujos comandos s\u00e3o nomeados de acordo com o mesmo princ\u00edpio que os cmdlets abordados anteriormente: 'A\u00e7\u00e3o-Objeto' ('Verbo-Substantivo'). Sua principal finalidade \u00e9 automatizar tarefas administrativas, mas \u00e9 uma linguagem interpretada completa, com todas as estruturas necess\u00e1rias: condicionais, loops, vari\u00e1veis, arrays, objetos, tratamento de erros, etc. Qualquer editor de texto pode ser usado para escrever scripts, mas \u00e9 mais conveniente iniciar o Windows PowerShell ISE.<\/p>\n<p>Par\u00e2metros podem ser passados para o script, tornando-os obrigat\u00f3rios, al\u00e9m de definir valores padr\u00e3o. Al\u00e9m disso, o Windows PowerShell permite criar fun\u00e7\u00f5es e cham\u00e1-las da mesma forma que os cmdlets: para isso, utiliza-se a constru\u00e7\u00e3o Function e chaves. Um script com fun\u00e7\u00f5es \u00e9 chamado de m\u00f3dulo e tem a extens\u00e3o .psm1. Os m\u00f3dulos devem ser armazenados em diret\u00f3rios definidos nas vari\u00e1veis de ambiente do PowerShell. Voc\u00ea pode visualizar esses diret\u00f3rios com o seguinte comando:<\/p>\n<pre><code class=\"powershell\">Get-ChildItem Env:PSModulePath | Format-Table -AutoSize<\/code><\/pre>\n<p><\/p>\n<h2>Corretores<\/h2>\n<p>\nNo \u00faltimo exemplo, aplicamos uma constru\u00e7\u00e3o familiar aos usu\u00e1rios de shells de sistemas Unix. No Windows PowerShell, o pipe vertical tamb\u00e9m permite passar a sa\u00edda de um comando para a entrada de outro, mas na implementa\u00e7\u00e3o do pipeline h\u00e1 uma diferen\u00e7a significativa: j\u00e1 n\u00e3o se trata apenas de um conjunto de caracteres ou de algum texto. Cmdlets embutidos ou fun\u00e7\u00f5es personalizadas retornam objetos ou arrays de objetos, e tamb\u00e9m podem receb\u00ea-los como entrada. Assim como no Bourne shell e seus numerosos seguidores, no PowerShell, o uso do pipeline simplifica a execu\u00e7\u00e3o de tarefas complexas.<\/p>\n<p>Um exemplo simples de pipeline \u00e9 assim:<\/p>\n<pre><code class=\"powershell\">Get-Service | Sort-Object -property Status<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"O que \u00e9 o Windows PowerShell e como utiliz\u00e1-lo? Parte 1: principais recursos\" src=\"\/wp-content\/uploads\/2020\/03\/0bb6e0e00d97d23fa2384d40c7419d71.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nPrimeiro, o cmdlet Get-Service \u00e9 executado, e ent\u00e3o todos os servi\u00e7os obtidos s\u00e3o passados para a ordena\u00e7\u00e3o pelo atributo Status no cmdlet Sort-Object. Qual argumento recebe o resultado do trecho anterior do pipeline depende de seu tipo \u2014 geralmente \u00e9 o InputObject. Este assunto ser\u00e1 tratado com mais detalhe em um artigo dedicado \u00e0 linguagem de programa\u00e7\u00e3o PowerShell.\u00a0<\/p>\n<p>Se desejado, a cadeia pode ser continuada e o resultado do Sort-Object pode ser passado para outro cmdlet (eles ser\u00e3o executados da esquerda para a direita). A prop\u00f3sito, os usu\u00e1rios do Windows tamb\u00e9m t\u00eam uma constru\u00e7\u00e3o familiar para sa\u00edda paginada:\u00a0<\/p>\n<pre><code class=\"powershell\">Get-Service | Sort-Object -property Status | more<\/code><\/pre>\n<p><\/p>\n<h2>Executando tarefas em segundo plano\u00a0<\/h2>\n<p>\nFrequentemente \u00e9 necess\u00e1rio iniciar um comando em segundo plano, para n\u00e3o ter que esperar pela conclus\u00e3o de sua execu\u00e7\u00e3o na sess\u00e3o da shell. No Windows PowerShell, h\u00e1 v\u00e1rios cmdlets para tal situa\u00e7\u00e3o:<\/p>\n<p><code>Start-Job<\/code> \u2014 iniciar uma tarefa em segundo plano;<br \/>\n<code>Stop-Job<\/code> \u2014 parar uma tarefa em segundo plano;<br \/>\n<code>Get-Job<\/code> \u2014 visualizar a lista de tarefas em segundo plano;<br \/>\n<code>Receive-Job<\/code> \u2014 visualizar o resultado da execu\u00e7\u00e3o de uma tarefa em segundo plano;<br \/>\n<code>Remove-Job<\/code> \u2014 remover uma tarefa em segundo plano;<br \/>\n<code>Wait-Job<\/code> \u2014 retornar uma tarefa em segundo plano de volta ao console.<\/p>\n<p>Para iniciar uma tarefa em segundo plano, usamos o cmdlet Start-Job e indicamos o comando ou conjunto de comandos entre chaves:<\/p>\n<pre><code class=\"powershell\">Start-Job {Get-Service}<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"O que \u00e9 o Windows PowerShell e como utiliz\u00e1-lo? Parte 1: principais recursos\" src=\"\/wp-content\/uploads\/2020\/03\/0a75c1f4af75e5aec66df909ca4adb70.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAs tarefas em segundo plano no Windows PowerShell podem ser manipuladas conhecendo seus nomes. Primeiro, vamos aprender a list\u00e1-las:<\/p>\n<pre><code class=\"powershell\">Get-Job<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"O que \u00e9 o Windows PowerShell e como utiliz\u00e1-lo? Parte 1: principais recursos\" src=\"\/wp-content\/uploads\/2020\/03\/664dba26ddcfb54bef79717c86f3c8ec.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAgora mostramos o resultado da tarefa Job1:<\/p>\n<pre><code class=\"powershell\">Receive-Job Job1 | more<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"O que \u00e9 o Windows PowerShell e como utiliz\u00e1-lo? Parte 1: principais recursos\" src=\"\/wp-content\/uploads\/2020\/03\/02d930327929af463cf506f9d90357e6.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nTudo \u00e9 bastante simples.<\/p>\n<h2>Execu\u00e7\u00e3o remota de comandos<\/h2>\n<p>\nO Windows PowerShell permite executar comandos e scripts n\u00e3o apenas em um computador local, mas tamb\u00e9m em um computador remoto e at\u00e9 mesmo em um grupo inteiro de m\u00e1quinas. Existem v\u00e1rias maneiras de fazer isso:<\/p>\n<ul>\n<li>Muitos cmdlets t\u00eam um par\u00e2metro <code>-ComputerName<\/code>, mas dessa forma n\u00e3o ser\u00e1 poss\u00edvel, por exemplo, criar um pipeline;<\/li>\n<li>O cmdlet <code>Enter-PSSession<\/code> permite criar uma sess\u00e3o interativa em uma m\u00e1quina remota;\u00a0<\/li>\n<li>Com o cmdlet <code>Invoke-Command<\/code> \u00e9 poss\u00edvel executar comandos ou scripts em um ou mais computadores remotos.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Vers\u00f5es do PowerShell<\/h2>\n<p>\nDesde o seu primeiro lan\u00e7amento em 2006, o PowerShell mudou significativamente. A ferramenta est\u00e1 dispon\u00edvel para diversos sistemas que operam em diferentes plataformas de hardware (x86, x86-64, Itanium, ARM): Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008\/2008 R2, Windows 7, Windows 8, Windows 8.1, Windows RT, Windows RT 8.1, Windows Server 2012\/2012 R2, Windows 10, Windows Server 2016, GNU\/Linux e OS X. O \u00faltimo lan\u00e7amento, 6.2, foi feito em 10 de janeiro de 2018. Scripts escritos para vers\u00f5es anteriores t\u00eam uma alta probabilidade de funcionar em vers\u00f5es mais recentes, mas podem surgir problemas de retrocompatibilidade, j\u00e1 que, ao longo dos anos, o PowerShell ganhou uma grande quantidade de novos cmdlets. Para descobrir a vers\u00e3o do shell de comando instalada no computador, pode-se usar a propriedade PSVersion da vari\u00e1vel embutida $PSVersionTable:<\/p>\n<pre><code class=\"powershell\">$PSVersionTable.PSVersion<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"O que \u00e9 o Windows PowerShell e como utiliz\u00e1-lo? Parte 1: principais recursos\" src=\"\/wp-content\/uploads\/2020\/03\/c2d422d1489f88ef8631ee82cc2f60c8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nVoc\u00ea tamb\u00e9m pode usar o cmdlet:<\/p>\n<pre><code class=\"powershell\">Get-Variable -Name PSVersionTable \u2013ValueOnly<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"O que \u00e9 o Windows PowerShell e como utiliz\u00e1-lo? Parte 1: principais recursos\" src=\"\/wp-content\/uploads\/2020\/03\/5cffcfe260243235e8f91a6c543191f7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nO mesmo pode ser feito usando o cmdlet Get-Host. Na verdade, h\u00e1 muitas op\u00e7\u00f5es, mas para aplic\u00e1-las, \u00e9 necess\u00e1rio estudar a linguagem de programa\u00e7\u00e3o PowerShell, o que faremos no <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/490924\/\"><b>pr\u00f3ximo artigo<\/b><\/a><\/noindex>.\u00a0<\/p>\n<h2>Resultados\u00a0<\/h2>\n<p>\nA Microsoft conseguiu criar um shell de comando realmente poderoso, com um ambiente integrado conveniente para o desenvolvimento de scripts. O que o distingue das ferramentas familiares do mundo Unix \u00e9 a profunda integra\u00e7\u00e3o com sistemas operacionais da fam\u00edlia Windows, bem como com software para eles e a plataforma .NET Core. O PowerShell pode ser considerado um shell orientado a objetos, pois cmdlets e fun\u00e7\u00f5es personalizadas retornam objetos ou arrays de objetos e podem receb\u00ea-los como entrada. Acreditamos que todos os administradores de servidores Windows devem dominar essa ferramenta: chegou a hora em que eles n\u00e3o podem mais se virar sem a linha de comando. Um shell de console avan\u00e7ado \u00e9 especialmente necess\u00e1rio em <noindex><a rel=\"nofollow\" href=\"https:\/\/ruvds.com\/ru-rub\/marketplace\/servercore#order\">nossos VPS acess\u00edveis, que funcionam sob o Windows Server Core.<\/a><\/noindex>, mas essa \u00e9 uma hist\u00f3ria completamente diferente.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ruvds.com\/ru-rub\/#order\"><img decoding=\"async\" alt=\"O que \u00e9 o Windows PowerShell e como utiliz\u00e1-lo? Parte 1: principais recursos\" src=\"\/wp-content\/uploads\/2020\/03\/0683e52726ae6d7def7206e5974a74b2.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p class=\"for_users_only_msg\">Apenas usu\u00e1rios registrados podem participar da pesquisa. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Entre<\/a><\/noindex>, por favor.<\/p>\n<h2 class=\"default-block__polling-title\">Quais temas devemos abordar primeiro nos pr\u00f3ximos artigos da s\u00e9rie?<\/h2>\n<ul class=\"poll-result\">\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">53,2%<\/strong>Programa\u00e7\u00e3o em PowerShell123<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">42,4%<\/strong>Fun\u00e7\u00f5es e m\u00f3dulos PowerShell98<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">22,1%<\/strong>Como assinar seus pr\u00f3prios scripts?51<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">12,1%<\/strong>Trabalhando com reposit\u00f3rios atrav\u00e9s de provedores (providers)28<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent  poll-result__data-percent_winner\">57,6%<\/strong>Automatiza\u00e7\u00e3o da administra\u00e7\u00e3o de computadores com PowerShell133<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">30,7%<\/strong>Gerenciamento de software e integra\u00e7\u00e3o de componentes execut\u00e1veis do PowerShell em produtos de terceiros71<\/p>\n<\/li>\n<\/ul>\n<p>    231 usu\u00e1rios votaram. 37 usu\u00e1rios se abstiveram.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/487876\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 Unix-\u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0440\u0430\u0437\u0432\u0438\u0442\u044b \u043b\u0443\u0447\u0448\u0435 \u0447\u0435\u043c \u0432 Windows, \u043e\u0434\u043d\u0430\u043a\u043e \u0441 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0430\u0441\u044c. Windows PowerShell \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447. \u0421 \u0435\u0435 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0438\u0441\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0412\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u0438\u043d\u0435\u0435 \u043e\u043a\u043e\u0448\u043a\u043e \u043a\u0430\u043a \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440 \u043a\u043e\u043c\u0430\u043d\u0434 \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":72967,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-72966","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 Unix-\u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0440\u0430\u0437\u0432\u0438\u0442\u044b \u043b\u0443\u0447\u0448\u0435 \u0447\u0435\u043c \u0432 Windows, \u043e\u0434\u043d\u0430\u043a\u043e \u0441 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0430\u0441\u044c. Windows PowerShell \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/chto-takoe-windows-powershell-i-s-chem-ego-edyat-chast-1-osnovnye-vozmozhnosti\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Windows PowerShell \u0438 \u0441 \u0447\u0435\u043c \u0435\u0433\u043e \u0435\u0434\u044f\u0442? \u0427\u0430\u0441\u0442\u044c 1: \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 Unix-\u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0440\u0430\u0437\u0432\u0438\u0442\u044b \u043b\u0443\u0447\u0448\u0435 \u0447\u0435\u043c \u0432 Windows, \u043e\u0434\u043d\u0430\u043a\u043e \u0441 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0430\u0441\u044c. Windows PowerShell \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/chto-takoe-windows-powershell-i-s-chem-ego-edyat-chast-1-osnovnye-vozmozhnosti\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-06T05:42:03+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-06T05:42:03+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47O que \u00e9 o Windows PowerShell e para que serve? Parte 1: recursos principais | ProHoster","description":"Historicamente, as ferramentas de linha de comando em sistemas Unix s\u00e3o mais desenvolvidas do que no Windows, mas com a nova solu\u00e7\u00e3o, a situa\u00e7\u00e3o mudou. O Windows PowerShell permite aos administradores de sistema.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/chto-takoe-windows-powershell-i-s-chem-ego-edyat-chast-1-osnovnye-vozmozhnosti","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Windows PowerShell \u0438 \u0441 \u0447\u0435\u043c \u0435\u0433\u043e \u0435\u0434\u044f\u0442? \u0427\u0430\u0441\u0442\u044c 1: \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 | ProHoster","og:description":"\u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 Unix-\u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0440\u0430\u0437\u0432\u0438\u0442\u044b \u043b\u0443\u0447\u0448\u0435 \u0447\u0435\u043c \u0432 Windows, \u043e\u0434\u043d\u0430\u043a\u043e \u0441 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0430\u0441\u044c. Windows PowerShell \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c.","og:url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/chto-takoe-windows-powershell-i-s-chem-ego-edyat-chast-1-osnovnye-vozmozhnosti","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-06T05:42:03+00:00","article:modified_time":"2020-03-06T05:42:03+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"72966","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:42:52","updated":"2026-08-11 12:50:23","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/72966","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=72966"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/72966\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/72967"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=72966"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=72966"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=72966"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}