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

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

Quem não deseja que eles possam ser um mago e pronunciar algumas palavras para que coisas mágicas aconteçam? Bem, não podemos mostrar como ser um mago, mas podemos mostrar como fazer um pouco de mágica do computador.

Se você tem um computador Windows com o Windows 7, você tem PowerShell. Além disso, se você tiver um computador com o Windows 7, atualize -o para a segurança da segurança.

Índice

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

    Você pode conseguir um Controle de acesso ao usuário (UAC) Aviso pop-up perguntando se você tem certeza de que deseja fazer isso. Clique Sim.

    Agora você está olhando para o 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 que o ajudarão a consertar e melhorar seus scripts. O painel no lado direito da janela (3) é o complemento do comando. Pense nisso como um dicionário de todos os comandos do PowerShell disponíveis para você.

    PowerShell está pronto para não executar nenhum script além daqueles que já são parte do Windows. Você precisará alterá -lo para que você possa executar seus próprios scripts.

    Na janela de script, copie e cole o seguinte:

    Set -ExecutionPolicy -executionPolicy

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

    Uma analogia estaria dizendo ao seu filho para limpar o quarto deles. Curto e direto. Se o seu filho é versado na limpeza de quartos, eles irão fazer a cama, colocar a roupa na cesta, arquivar seus brinquedos e livros e talvez até aspire o chão. Eles entendem que o cmdlet limpo-sala significava tudo isso.

    No topo da janela, você verá uma ponta de seta verde. Clique nisso para executar o comando.

    O -ExecutionPolicy parte é reveladora Set-ExecutionPolicy Que 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 design remoto.

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

    De uma maneira indireta, diz a PowerShell que é bom executar qualquer script criado localmente, porque eles não precisam ser assinados por um editor de confiança remota. Agora, seu script 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 CCleaner, mas o CCleaner vem com seu próprio conjunto de problemas.

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

    Vamos quebrar este script, linha por linha, para que você possa ver como funciona. No final, o script será mostrado completamente para que você possa copiar e colá -lo, se quiser.

    $ TempfileLocation = "C: \ Users \ Nome de usuário \ AppData \ Local \ Temp \*"

    Qualquer coisa com um sinal de dólar na frente dele é um nome variável. Pense nisso como uma carteira para colocar coisas valiosas. Wallet nos lembra o sinal do dólar, os objetos de valor soam como variável, então lembraremos que também. Estamos criando uma carteira ou variável, nomeada $ Tempfilelocation. O sinal igual diz a PowerShell o que colocar nessa variável.

    Nesse caso, estamos colocando a localização do local de arquivos temporários do Windows - C: \ Usuários \ Nome de usuário \ AppData \ Local \ Temp \*. Estamos fazendo isso por dois motivos; É um local que é sempre seguro excluir arquivos, e vamos usá -lo para dizer ao PowerShell onde ele deve ser excluído.

    Onde diz o 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 no seu computador. O asterisco (*) no final é um curinga. O que representa é tudo na temperatura da pasta, porque tudo na pasta temp é temporária e queremos excluí -la.

    As citações duplas ao redor da localização também são importantes. Isso diz a PowerShell que o que há lá é uma string. Pense em string como uma sequência de letras e personagens. Se fossem números comuns, não usaríamos as cotações.

    $ Tempfile = get -childitem $ tempfileLocation -recurse

    Estamos fazendo outra variável. Desta vez, usaremos um comando para criar algo para colocar no $ Tempfile variável.

    Get-Childitem 

    Outra coisa que você notará sobre cmdlets como Get-Childitem é isso totalmente legível. Veja como a primeira palavra é um verbo? Todos os cmdlets começam com palavras de ação, então você sabe imediatamente o que está fazendo. Childitem é dois substantivos.

    A segunda parte do cmdlet sempre vai nos dizer sobre o que PowerShell aplicará a ação. Childitem significa todos os filhos do local dos pais. É como dizer que obtenha todos os arquivos que estão em uma pasta, com os arquivos sendo as crianças e a pasta sendo o pai.

    O que o cmdlet está recebendo os itens infantis de? Tudo na variável $ Tempfilelocation. PowerShell vai para o local que colocamos em $ tempFileLocation mais cedo e obtenha todos os itens infantis que estão lá. Então, ele os colocará na variável $ Tempfile.

    Então, o que há com o -Recurso papel? Isso é revelador Get-Childitem passar por tudo naquele local. Não basta pegar os arquivos imediatamente dentro da pasta pai. Se houver pastas nessa pasta, pegue todos os filhos também, e seus filhos e assim por diante. Nós vamos pegar todos eles.

    $ TempfileCount = ($ tempfile).contar

    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).contar vai nos pegar esse número. Você provavelmente descobriu que o .A parte da contagem 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 declaração condicional. Você pode ver que está perguntando 'se'. Se o que? Se a coisa entre colchetes é 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 em que armazenamos $ TempfileCount é igual a zero.

    O -Eq é a abreviação para iguais. É um tipo de operador de comparação. É como dizer aos seus filhos: "Se o seu quarto estiver limpo, ótimo, vamos fazer alguma coisa ..." Esta afirmação está dizendo se o número que foi armazenado em $ tempfileCount for -equal para zero fazer a próxima coisa.

    Write -Host "Não há arquivos na pasta $ tempFileLocation" -FeRoundColor Green

    É isso que vai acontecer se $ TempfileCount é zero. Os colchetes encaracolados são importantes. Eles dizem ao PowerShell para fazer apenas o que está dentro deles se $ tempfileCount for igual a zero.

    Ele escreverá para o host ou a tela: “Não há arquivos na pasta C: \ Users \ UserName \ AppData \ Local \ Temp \*”. O parâmetro no final, -Cor do primeiro plano diz a PowerShell para tornar o texto verde. Isso apenas facilita a distinção de uma mensagem de erro que normalmente é vermelha.

    Outro

    Você sabe o que mais significa. Este é o "seu quarto é melhor limpo ou então ..." parte da verificação se seu filho limpou o quarto deles. É o que vai acontecer se $ TempfileCount não é zero.

    $ Tempfile | Remover -item -whatif -confirm: $ false -recurse -force -warningAction silenciosamenteContinue -Erroraction silenciosamente

    Isso diz que vá para o local atual armazenado em $ Tempfile. A linha vertical depois de ser chamada de tubo. Ele funciona como um tubo da vida real, pois diz a Powershell para canalizar o conteúdo de $ tempfile no cmdlet, como se fosse a água sendo canalizada em uma máquina de lavar. Então o cmdlet Remover item faz o que diz; ele remove o que estiver naquele local.

    O -E se O parâmetro é muito importante nesta fase. Ele diz a PowerShell para executar o comando, mas apenas experimente, não remova nada. Basta nos mostrar o que aconteceria se realmente fizéssemos isso.

    Isso permite que você teste comandos sem alterar nada no seu computador. Deixe o -whatif lá até você ficar confortável para que o script faça o que você deseja e nada mais. Em seguida, basta excluir isso e o script fará seu trabalho.

    O parâmetro -Confirme: $ false impede o script de perguntar se você realmente deseja excluir o arquivo. Você sabe o que -Recurso faz. -Força significa excluir essa coisa, não importa o que. -Aviso está configurado para Silenciosamente, continue.

    Isso impede que o roteiro lhe dê avisos sobre o que você está excluindo. -ErrorAction está configurado para Silenciosamente, continue para que, se houver algum tipo de erro no processo, ele continua sendo.

    Agora estamos na última linha.

    Write -host "Limpe os arquivos de $ tempfileCount na pasta $ tempfilelocation" -forgroundColor Green

    Assim como Gravação-host Fiz da primeira vez, ele vai produzir a seguinte frase, então sabemos o que aconteceu. Ele nos dirá quantos arquivos foram excluídos da pasta que acabou de processar e fazê -lo em verde para facilitar a identificação.

    Vejamos completamente o script:

    $ Tempfilelocation = "C: \ Usuários \ Guymcd \ AppData \ Local \ Temp \*"
    $ Tempfile = get -childitem $ tempfileLocation -recurse
    $ TempfileCount = ($ tempfile).contar
    if ($ tempfileCount -eq "0")
    Write -host "Não há arquivos na pasta $ tempfileLocation" - Primeiro plano Green Green

    Outro
    $ Tempfile | Remone -Item -Confirm: $ false -recurse -force -WarningAction silenciosamente Continue -Erroraction silenciosamente Continue
    Write -host "Limpe os arquivos de $ tempfileCount na pasta $ tempfileLocation" -forgroundColor Green

    Você pode copiar e colar isso em seu PowerShell Ise e salvá -lo como algo como Excluir-temporaryfiles.ps1. Você também pode ficar com a convenção de nomenclatura de cmdlets agora que você 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. Apenas descompacte primeiro para ver o arquivo de script.

    Sempre que você quiser executar este script, clique com o botão direito do mouse e escolha Corra com PowerShell. Um console do PowerShell aparecerá por um segundo ou dois, enquanto o seu script faz o que é e depois desaparecerá se não houver erros.

    Onde posso aprender mais PowerShell?

    Isso parece muito! Para o seu primeiro script do PowerShell, é um pouco razoável. Se você chegou até aqui, aplaude -se. Você aprendeu muito hoje, mas agora você quer 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, confira estes outros recursos:

    • Introdução ao Microsoft PowerShell - Microsoft Virtual Academy
    • PowerShell Tutorial - TutorialSpoint.com