Pular para o conteúdo principal

🗃️ PowerShell e manipulação de arquivos

  • Individual, no seu ritmo

🎯 Objetivo pedagógico​

  • Manipular arquivos e diretórios via PowerShell
  • Automatizar tarefas simples com scripts
  • Utilizar caminhos relativos e absolutos
  • Pesquisar arquivos e conteúdo textual em uma árvore de diretórios
  • Exibir e modificar permissões de arquivos

📜 Enunciado​

🔧 Contexto​

Um administrador de sistemas lhe confia uma série de tarefas para serem realizadas via PowerShell. Essas tarefas podem ser automatizadas em um pequeno script. Você deve criar um ambiente de trabalho, manipular arquivos e diretórios, tudo utilizando PowerShell.

📁 Etapa 1 – Preparar um ambiente​

  1. Abra o PowerShell em uma pasta de trabalho de sua escolha.
  2. Crie a seguinte estrutura com PowerShell:
projet/
├── notes/
├── archives/
└── temp/
  1. Na pasta notes, crie 3 arquivos de texto chamados cours1.txt, cours2.txt, cours3.txt. Cada um desses arquivos deve conter uma frase diferente, incluindo a palavra important em um deles. Insira o conteúdo diretamente nos arquivos usando PowerShell.
  2. Na pasta temp, crie um arquivo de texto chamado temp.txt com o seguinte conteúdo:
    Ce fichier est temporaire.

Comandos úteis:

  • New-Item para criar arquivos e pastas
  • Set-Content para escrever conteúdo nos arquivos
  • Get-ChildItem para listar arquivos e pastas

📂 Etapa 2 – Pesquisas e caminhos​

  1. Pesquise todos os arquivos .txt na pasta projet, incluindo os subdiretórios.
  2. Pesquise a palavra important em todos os arquivos de texto.
  3. Exiba o caminho absoluto de cada um dos arquivos .txt.

Comandos úteis:

  • Get-ChildItem -Recurse para listar arquivos recursivamente
  • Select-String para pesquisar texto nos arquivos
  • Resolve-Path para obter o caminho absoluto dos arquivos

🔄 Etapa 3 – Automação e agrupamento simples​

  1. Escreva um script PowerShell chamado gestion.ps1 que realize as seguintes operações:

    • Copie todos os arquivos de notes para archives

    • Apague o conteúdo da pasta temp se existir (sem apagar a própria temp)

    • Renomeie os arquivos copiados em archives adicionando _backup antes de .txt

      • Exemplo: cours1.txt → cours1_backup.txt

Comandos úteis:

  • Test-Path para verificar a existência de uma pasta ou arquivo
  • Copy-Item para copiar arquivos
  • Remove-Item para apagar arquivos ou pastas
  • Rename-Item para renomear arquivos

Execute seu script várias vezes para verificar se ele é idempotente (não causa problemas se for executado mais de uma vez).

🧪 Etapa 4 – Verificação automática​

Adicione ao seu script um comando que:

  • Conte e exiba o número de arquivos em archives
  • Exiba a mensagem "Sucesso: todos os arquivos foram salvos." se esse número for 3

🔐 Etapa 5 – Permissões NTFS (direitos de acesso)​

  1. Na pasta notes/, remova do usuário atual o direito de leitura de um dos arquivos. Isso deve ser feito usando PowerShell.

  2. Tente ler esse arquivo com Get-Content. O que acontece?

  3. Em seguida, restaure a permissão usando PowerShell.

  4. Dê temporariamente à pasta archives/ inteira permissão de leitura e escrita apenas (sem permissão de exclusão).

  5. Em seguida, tente apagar um arquivo de archives/ com Remove-Item. O que você observa?