Usando o PowerShell para usuários domésticos - Guia para iniciantes


Quem não gostaria que eles pudessem ser um bruxo e proferir algumas palavras para que coisas mágicas acontecessem? Bem, não podemos mostrar como ser um assistente, mas podemos mostrar como fazer um pouco de mágica no computador.

Se você possui um computador Windows com Windows 7, possui o PowerShell. Além disso, se você possui um computador com Windows 7, atualize-o por segurança.

Mas este artigo não é apenas para pessoas do Windows. A versão mais recente do PowerShell é gratuita e pode ser instalada e usada em computadores Mac e Linux.

Isso é importante, porque o que você aprendeu sobre o PowerShell pode ser usado em praticamente qualquer computador agora. Quem sabe? Você pode levar essa habilidade para o próximo nível e se aventurar em uma carreira em tecnologia da informação.

O que é o PowerShell?

A resposta de alta tecnologia da Microsoft é que ela é " … Shell de linha de comando projetado especialmente para administradores de sistema. ”Parece intimidador. Mas isso não. Você cuida do seu computador? Sim, você é o administrador do sistema em sua casa.

Você diz ao seu computador o que fazer com cliques e pressionamentos de teclas? Sim, pense no shell da linha de comando como apenas outra janela na qual você digita as coisas para informar ao seu computador o que fazer. Você pode fazer isso.

In_content_1 all: [300x250] / dfp: [640x360]->
googletag.cmd.push (function () {googletag.display ('snhb-In_content_1-0');});

O PowerShell é como uma linguagem de programação, mas não tão enigmática quanto a maioria. Ele realmente se parece muito com o inglês comum, algo que a Microsoft buscou para que pudesse ser aprendido por não programadores.

É uma maneira de escrever algumas linhas de comandos, chamadas de script, para fazer com que o sistema operacional Windows faça o que você deseja. Em seguida, você pode salvar essas linhas em um arquivo e executá-lo com um clique ou agendá-lo para execução periódica.

O que você pode fazer com o PowerShell?

O ponto de alto nível de O PowerShell é capaz de automatizar tarefas, para que você não precise perder tempo fazendo coisas banais repetidamente. Para um administrador de sistemas profissional, isso pode ser algo como criar novos usuários, gerar senhas para eles e enviar um email com os detalhes ao novo supervisor.

Feito manualmente, com cliques e digitação, esse processo pode levar de 5 minutos a uma hora ou mais. Com os scripts certos, o Administrador de Sistemas pode nem precisar fazer parte disso.

Mas você quer saber o que pode fazer com o PowerShell em casa. Praticamente qualquer coisa que você não goste de repetir. Use-o para liberar espaço no disco rígido, excluindo arquivos temporários e de log que você não precisa.

Coloque um toque de recolher no computador do seu filho. Renomeie ou organize vários arquivos. Essa é a beleza do PowerShell. Quase tudo o que você pode fazer no seu computador, você pode criar um script do PowerShell para automatizar e executar com um clique ou uma programação.

Como uso o PowerShell?

A maneira mais fácil de trabalhar com o PowerShell é no Ambiente de script integrado do PowerShell (ISE). Você pode encontrá-lo clicando em Iniciar e digitando powershell isena barra de pesquisa do Windows 10. Você deve vê-lo como mostrado abaixo.

Pela primeira vez em que o usamos, vamos executá-lo como administrador. Para fazer isso, você deve primeiro ter direitos de administrador no seu computador. No Menu Iniciar, clique com o botão direito do mouse em PowerShell ISEe clique em Executar como administrador.

Você pode obter um UserAccess Control(UAC) perguntando se você tem certeza de que deseja fazer isso. Clique em Sim.

Agora você está vendo o IDE do PowerShell. O painel superior da janela (1)é o painel de script. É aqui que você escreverá seu script. O painel inferior da janela (2)é a área do console. Ao testar seu script, você verá a saída neste painel.

Também é aqui que você verá mensagens de erro e outras que ajudarão você a corrigir e melhorar seus scripts. O painel no lado direito da janela (3)é o complemento de comando. Pense nisso como um dicionário de todos os comandos do PowerShell disponíveis para você.

O PowerShell vem configurado para não executar nenhum script que não seja parte do Windows. Você precisará alterá-lo para poder executar seus próprios scripts.

Na janela de script, copie e cole o seguinte:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

O Set-ExecutionPolicyparte dele é chamada de cmdlet (comando pronunciado). Cmdlets são coisas poderosas. Pense neles como comandos curtos que você pode fornecer ao Windows, e o Windows fará um monte de coisas mais complicadas para satisfazer seu comando.

Uma analogia seria dizer ao seu filho para limpar o quarto deles. Curto e direto ao ponto. Se o seu filho é versado em limpeza de quartos, eles vão arrumar a cama, colocar a roupa na cesta, guardar seus brinquedos e livros e talvez até aspirar o chão. Eles entendem que o cmdlet Clean-YourRoom significava tudo isso.

Na parte superior da janela, você verá uma ponta de seta verde. Clique nele para executar o comando.

O - A parte ExecutionPolicyestá dizendo a Set-ExecutionPolicyqual política definir. É um parâmetro. Está dizendo: "Quero que você trabalhe dentro dessas diretrizes e faça isso especificamente. Ele diz para usar a política específica do RemoteSigned.

A política RemoteSignedafirma que o PowerShell não pode executar ou executar qualquer script baixado da Internet, a menos que tenha sido assinado por um editor confiável.

De maneira indireta, ele informa ao PowerShell que não há problema em executar qualquer script criado localmente, porque eles não precisam ser assinados por um editor remoto confiável. Agora, seu script do PowerShell poderá executar qualquer script que você escrever no seu computador.

Vejamos um script para excluir arquivos temporários. Não é tão poderoso ou completo quanto o CCleaner, mas o CCleaner vem com seu próprio conjunto de problemas.

Use o PowerShell para criar espaço no seu disco rígido

Vamos detalhar esse script, linha por linha, para que você possa ver como funciona. No final, o script será mostrado completamente para que você possa copiá-lo e colá-lo, se desejar.

$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"

Qualquer coisa com um cifrão na frente é um nome de variável . Pense nisso como uma carteira para colocar coisas valiosas. A carteira nos lembra o sinal de cifrão, objetos de valor parecem variáveis, por isso também nos lembraremos disso. Estamos criando uma carteira ou variável chamada $ TempFileLocation. O sinal de igual diz ao PowerShell o que colocar nessa variável.

Nesse caso, estamos colocando o local do local dos arquivos temporários do Windows - C: \ Users \ username \ AppData \ Local \ Temp \ *. Estamos fazendo isso por dois motivos; é um local sempre seguro para excluir arquivos, e vamos usá-lo para informar ao PowerShell onde deve ir para excluir arquivos.

Onde diz nome de usuário nesse local, troque-o pelo usuário nome. Esse é o nome de usuário que você usa para fazer login no seu computador. O asterisco (*) no final dele é um curinga. O que ele representa é tudo na pasta Temp, porque tudo na pasta Temp é temporário e queremos excluí-lo.

As aspas duplas no local também são importantes. Isso informa ao PowerShell que o que está lá é uma string. Pense em sequência como uma sequência de letras e caracteres. Se fossem números comuns, não usaríamos as aspas.

$TempFile = Get-ChildItem $TempFileLocation -Recurse

Estamos criando outra variável. Desta vez, usaremos um comando para criar algo para colocar na variável $ TempFile.

Get-ChildItem 

Outra coisa que você O aviso sobre cmdlets como Get-ChildItemé que ele é totalmente legível. Veja como a primeira palavra é um verbo? Todos os cmdlets começam com palavras de ação, para que você saiba imediatamente o que está fazendo. ChildItem e dois substantivos.

A segunda parte do cmdlet sempre indica o que o PowerShell aplicará a ação. ChildItem significa todos os filhos de um local pai. É como dizer obter todos os arquivos que estão em uma pasta, com os arquivos filhos e a pasta pai.

De que cmdlet está recebendo os itens filhos? Tudo na variável $ TempFileLocation. O PowerShell vai para o local que colocamos em $ TempFileLocation anteriormente e obtemos todos os itens filhos que estão lá. Em seguida, ele os colocará na variável $ TempFile.

Então, o que há com a parte -Recurse? Isso está dizendo ao Get-ChildItempara percorrer tudo nesse local. Não basta obter os arquivos imediatamente dentro da pasta pai. Se houver pastas nessa pasta, obtenha todos os filhos também, filhos e assim por diante. Nós vamos conseguir todos eles.

$TempFileCount = ($TempFile).count

Sim, estamos criando uma terceira variável chamada $ TempFileCount, e vamos colocar um número nessa variável. Cadê o número? Bem, ($ TempFile) .countnos dará esse número. Você provavelmente já descobriu que a parte .count fará a contagem de todos os arquivos que acabamos de armazenar em $ TempFile.

Por que fizemos isso? Principalmente porque é bom saber quantos arquivos inúteis estamos limpando com o restante do script, para sabermos quão eficaz foi.

if($TempFileCount -eq 0)

Agora, estamos definindo uma declaração condicional. Você pode ver que está perguntando "se". Se o que? Se a coisa entre parênteses for verdadeira ou falsa. Os colchetes são importantes, caso contrário, o If não sabe o que comparar. Aqui, ele pergunta se o número que armazenamos em $ TempFileCounté igual a zero.

O -eqé a abreviação de iguais. É um tipo de operador de comparação. É como dizer aos seus filhos: "Se seu quarto estiver limpo, ótimo, vamos fazer alguma coisa ..." Esta declaração está dizendo se o número que foi armazenado em $ TempFileCount é igual a zero e faz a próxima coisa. >

{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}

É o que acontecerá se $ TempFileCountfor zero. Os colchetes são importantes. Eles dizem ao PowerShell para fazer apenas o que está dentro deles se $ TempFileCount for igual a zero.

Ele gravará no host ou na tela "Não há arquivos na pasta C: \ Usuários \ nome de usuário \ Appdata \ Local \ Temp \ *". O parâmetro no final, - ForegroundColor, diz ao PowerShell para tornar o texto verde. Isso facilita a distinção de uma mensagem de erro normalmente vermelha.

Else

Você sabe o que mais significa. Esta é a parte "É melhor que seu quarto esteja limpo ou então ..." para verificar se seu filho limpou o quarto. É o que acontecerá se $ TempFileCountnão for zero.

{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}

Isso indica ir para o local atual armazenado em $ TempFile. A linha vertical após ser chamada de tubo. Funciona como um cano da vida real, pois diz ao PowerShell para canalizar o conteúdo de $ TempFile para o cmdlet, como se fosse água sendo canalizada para uma máquina de lavar. Em seguida, o cmdlet Remove-Itemfaz o que diz; remove o que estiver nesse local.

O parâmetro -WhatIfé muito importante nesta fase. Ele diz ao PowerShell para executar o comando, mas apenas tente, não remova nada. Apenas nos mostre o que aconteceria se realmente fizéssemos isso.

Isso permite testar comandos sem alterar nada no seu computador. Deixe o - WhatIf lá até que você se sinta à vontade para o script fazer o que você quer que ele faça e nada mais. Em seguida, basta excluir isso e o script fará seu trabalho.

O parâmetro -Confirm: $ falseimpede que o script pergunte se você realmente deseja excluir o arquivo. Você sabe o que -Recursefaz. -Forcesignifica excluir essa coisa, não importa o quê. -WarningActionestá definido como SilentlyContinue.

Isso impede que o script envie avisos sobre o que você está excluindo. -ErrorActionestá definido como SilentlyContinue, para que, se houver algum tipo de erro no processo, ele continue seguindo em frente.

Agora estamos em a última linha.

Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}

Assim como o Write-Hostfez na primeira vez, ele exibirá a seguinte frase, para que saibamos o que aconteceu . Ele nos diz quantos arquivos foram excluídos da pasta que acabou de processar e o faz em verde para facilitar a localização.

Vamos examinar o script completamente:

$TempFileLocation = "C:\Users\guymcd\Appdata\Local\Temp\*"
$TempFile = Get-ChildItem $TempFileLocation -Recurse
$TempFileCount = ($TempFile).count

if($TempFileCount -eq "0") {
Write-Host "There are no files in the folder $TempFileLocation" - ForegroundColor Green
}
Else {
$TempFile | Remove-Item -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green
}

Você pode copiar e colar isso no PowerShell ISE e salvá-lo como algo como delete-TemporaryFiles.ps1. Você também pode seguir a convenção de nomenclatura dos cmdlets agora que os entende.

Se o código não estiver funcionando para você por algum motivo, você também pode faça o download do script do PowerShell que criamos e apenas corra. Apenas descompacte-o primeiro para visualizar o arquivo de script.

Sempre que você quiser executar esse script, clique com o botão direito do mouse nele e escolha Executar com o PowerShell. Um console do PowerShell será exibido por um ou dois segundos, enquanto o script estiver funcionando e desaparecerá se não houver erros.

Onde posso aprender mais PowerShell?

Isso parece muito! Para o seu primeiro script do PowerShell, é um pouco justo. Se você chegou até aqui, aplaude-se. Você aprendeu muito hoje, mas agora deseja aprender mais. Isso é ótimo!

Existem muitos recursos na Internet para aprender mais sobre o PowerShell. Um bom lugar para começar é o nosso artigo, "Gere uma lista de programas de inicialização via linha de comando ou PowerShell ". Em seguida, verifique estes outros recursos:

  • Introdução ao Microsoft PowerShell - Microsoft Virtual Academy
  • Tutorial do PowerShell - TutorialsPoint.com
  • Criar Rede Para Compartilhar Arquivos No Windows 10 Abril Update e Versões Antigas

    Postagens relacionadas:


    14.03.2019