Usando o PowerShell para usuários domésticos – um guia para iniciantes

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

Se você tem um computador Windows com Windows 7 nele, você tem o PowerShell . Além disso, se você tiver um computador com Windows 7 , atualize-o por questões de 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ê aprende 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(Information Technology) .

O que é PowerShell?

A resposta de alta tecnologia da Microsoft é que é um “... shell de linha de comando projetado especialmente para administradores de sistema. “Parece(” Sounds) intimidador. Mas não é. Você cuida do seu computador? Sim, então você é o administrador do sistema em sua casa.

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

O PowerShell(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(English) regular , que era algo pelo qual a Microsoft se esforçou 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 algo que você deseja que ele faça. Em seguida, você pode salvar essas linhas em um arquivo e executá-lo com um clique ou agendá-lo para ser executado periodicamente.

O que você pode fazer com o PowerShell?

O ponto alto do PowerShell é poder automatizar tarefas, para que você não precise perder tempo fazendo coisas mundanas repetidamente. Para um administrador de sistemas(Systems Administrator) profissional , isso pode ser algo como criar novos usuários, gerar senhas para eles e enviar um e-mail com os detalhes para seu novo supervisor.

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

Mas você quer saber o que pode fazer com o PowerShell em casa. Praticamente qualquer coisa que você não gosta de fazer de novo e de novo. Use-o para liberar espaço em seu 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(Rename) ou organize um monte de arquivos. Essa é a beleza do PowerShell . Praticamente(Almost) tudo o que você pode fazer no seu computador, você pode criar um script do PowerShell para automatizar e executar com um clique ou em um agendamento.

Como uso o PowerShell?

A maneira mais fácil de trabalhar com o PowerShell é no PowerShell Integrated Scripting Environment (ISE) . Você pode encontrá-lo clicando em Iniciar(Start) e digitando powershell ise na barra de pesquisa do Windows 10 . Você deve vê-lo como mostrado abaixo.

Pela primeira vez que o usarmos, vamos executá-lo como Administrador(Administrator) . Para fazer isso, você deve primeiro ter direitos de administrador em seu computador. No menu Iniciar(Start Menu) , clique com o botão direito do mouse em PowerShell ISE e clique em Executar como administrador(Run as Administrator) .

Você pode receber um aviso pop-up de controle de acesso do usuário(User Access Control) ( UAC ) perguntando se tem certeza de que deseja fazer isso. Clique em Sim(Yes) .

Agora você está olhando para o IDE do PowerShell(PowerShell IDE) . 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 coisas que o ajudarão a corrigir e melhorar seus scripts. O painel do 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ê.(PowerShell)

O PowerShell(PowerShell) vem configurado para não executar nenhum script além daqueles que já fazem 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

A parte Set-ExecutionPolicy é chamada de cmdlet (pronuncia-se commandlet). Cmdlets são coisas poderosas. Pense(Think) neles como comandos curtos que você pode dar ao Windows , e o Windows(Windows) fará um monte de coisas mais complicadas para satisfazer seu comando.

Uma analogia seria dizer ao seu filho para limpar o quarto. Curto(Short) e direto ao ponto. Se o seu filho é bem versado na limpeza do quarto, ele vai fazer a cama, colocar a roupa no cesto, guardar os brinquedos e livros e talvez até aspirar o chão. Eles entendem que o cmdlet Clean-YourRoom significava tudo isso.

No topo da janela, você verá uma ponta de flecha verde. Clique(Click) nele para executar o comando.

A parte -ExecutionPolicy está dizendo a Set-ExecutionPolicy qual política definir. É um parâmetro. Está dizendo: “Quero que você trabalhe dentro dessas diretrizes e faça especificamente isso. Ele diz para usar a política específica de RemoteSigned .

A política RemoteSigned afirma que o PowerShell não pode executar ou executar nenhum 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 em 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(Use PowerShell) para criar espaço(Create Space) em seu disco rígido(Your Hard Drive)

Vamos detalhar este script, linha por linha, para que você possa ver como funciona. Ao 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. Carteira(Wallet) nos lembra do cifrão, objetos de valor soam como variáveis, então vamos nos lembrar disso também. Estamos criando uma carteira, ou variável, chamada $TempFileLocation . O sinal de igual informa ao PowerShell o que colocar nessa variável.

Nesse caso, estamos colocando o local de um local de 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 ele deve ir para excluir arquivos.

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

As aspas duplas ao redor do local também são importantes. Isso diz ao PowerShell que o que está lá é uma string. Pense(Think) em string 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 fazendo outra variável. Desta vez vamos usar um comando para criar algo para colocar na $TempFile .

Get-ChildItem 

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

A segunda parte do cmdlet sempre nos dirá a qual PowerShell aplicará a ação. ChildItem significa todos os filhos de um local pai. Isso é como dizer pegue todos os arquivos que estão em uma pasta, com os arquivos sendo os filhos e a pasta sendo o pai.

Do que o cmdlet está obtendo os itens filhos? Tudo na variável $TempFileLocation . O PowerShell(PowerShell) irá para o local que colocamos em $ TempFileLocation anteriormente e obterá 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 a Get-ChildItem para examinar tudo naquele local. Não basta pegar os arquivos imediatamente dentro da pasta pai. Se houver pastas nessa pasta, pegue todos os seus filhos também, e seus filhos e assim por diante. Nós vamos pegar todos eles.

$TempFileCount = ($TempFile).count

Sim, estamos criando uma terceira variável chamada $TempFileCount e vamos colocar um número nessa variável. Onde está o número? Bem, ( $TempFile).count vai nos dar esse número. Você provavelmente já percebeu 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 resto do script para que possamos dizer o quão eficaz foi.

if($TempFileCount -eq 0)

Agora estamos configurando uma instrução condicional. Você pode ver que está perguntando 'se'. Se o que? Se a coisa entre parênteses é verdadeira ou falsa. Os colchetes são importantes, caso contrário o If não sabe o que comparar. Aqui, está perguntando 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 que se o número armazenado em $ TempFileCount for -igual a zero, faça a próxima coisa.

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

Isso é o que acontecerá se $TempFileCount for 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:\Users\username\Appdata\Local\Temp\*”. O parâmetro no final, – ForegroundColor informa ao PowerShell para tornar o texto verde. Isso apenas facilita a distinção de uma mensagem de erro que normalmente é vermelha.

Else

Você sabe o que mais significa. Esta é a parte “É melhor seu quarto estar limpo ou então...” para verificar se seu filho limpou o quarto. É o que acontecerá se $TempFileCount não for zero.

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

Isso diz ir para o local atual armazenado em $TempFile . A linha vertical depois dela é chamada de tubo. Ele funciona como um tubo da vida real, pois diz ao PowerShell para canalizar o conteúdo de $ TempFile no cmdlet, como se fosse água sendo canalizada para uma máquina de lavar. Em seguida, o cmdlet Remove-Item faz o que diz; ele remove o que estiver naquele local.

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

Isso permite que você teste comandos sem alterar nada em seu computador. Deixe o -WhatIf lá até que você esteja seguro de que o script vai 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:$false impede que o script pergunte se você realmente deseja excluir o arquivo. Você sabe o que -Recurse faz. -Force significa apagar essa coisa, não importa o quê. -WarningAction está definido como SilentlyContinue .

Isso evita que o script dê avisos sobre o que você está excluindo. -ErrorAction é definido como SilentlyContinue para que, se houver algum tipo de erro no processo, ele continue avançando.

Agora estamos na última linha.

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

Assim como o Write-Host(Write-Host) fez pela primeira vez, ele vai gerar a seguinte frase, então sabemos o que aconteceu. Ele nos dirá quantos arquivos foram excluídos da pasta que acabou de processar e fará isso em verde para facilitar a localização.

Vejamos 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 em seu PowerShell ISE e salvá-lo como algo como delete-TemporaryFiles.ps1 . Você também pode manter 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 baixar o script do PowerShell que criamos e apenas executá-lo. Basta(Just) descompactá-lo primeiro para visualizar o arquivo de script.

Sempre que você quiser executar este script, basta clicar com o botão direito nele e escolher Executar com PowerShell(Run with PowerShell) . Um console do PowerShell irá aparecer por um segundo ou dois, enquanto seu script faz o seu trabalho e, em seguida, desaparecerá se não houver erros.

Onde posso saber mais sobre o PowerShell?

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

Há muitos recursos na Internet para aprender mais sobre o PowerShell . Um bom lugar para começar é nosso artigo, “ Gerar uma lista de programas de inicialização via linha de comando ou PowerShell(Generate a List of Startup Programs via Command Line or PowerShell) ”. Então confira estes outros recursos:



About the author

Sou técnico de informática com mais de 10 anos de experiência na indústria do entretenimento. Eu sei como consertar computadores e tablets, aumentar seu desempenho e melhorar sua usabilidade. Além disso, também posso ajudá-lo com suas necessidades de entretenimento fornecendo dicas sobre como assistir TV ou baixar conteúdo de filmes no seu iPhone ou Mac.



Related posts