Monitoramento de Espaço em Disco com Powershell com alerta via e-mail

Share on facebook
Share on twitter
Share on linkedin
Share on pinterest
Share on tumblr
Share on telegram
Share on whatsapp
Share on skype
Share on email

Neste tutorial, vamos aprender a efetuar o Monitoramento de Espaço em Disco com Powershell com alerta via e-mail

Vídeo Aula : Monitoramento de Espaço em Disco com Powershell com alerta via e-mail

Curso PowerShell de A a Z: Fundamentos

Vem aí o curso “PowerShell de A a Z: Fundamentos”!

Um treinamento completo que vai muito além de tutoriais rápidos como este.

Hoje, estamos resolvendo um problema específico — monitorar espaço em disco — mas no curso você terá uma experiência aprofundada, aprendendo passo a passo o funcionamento de cada comando, além de criar automações avançadas e dominar as melhores práticas do PowerShell.

No conteúdo, você vai começar do básico, como manipular arquivos e pastas, e avançar para tópicos como loops, arrays, expressões regulares, automações robustas e muito mais.

E tem mais uma novidade: na próxima semana, as primeiras aulas já estarão disponíveis! Se você é assinante do canal no nível Elite ou superior, terá acesso exclusivo à nossa plataforma de EAD, a XP IT Cursos, com uma trilha de aprendizagem organizada e certificado de conclusão ao final do curso.

Todas as informações estão no botão “Seja Membro” aqui no YouTube.

Agora, bora voltar ao tutorial e aprender como monitorar espaço em disco de forma eficiente com o PowerShell!

No Clube WebMundi.com – Youtube, você encontrará aulas exclusivas sobre a utilização de scripts PowerShell.

Por isso, não perca tempo, Seja associado do Clube do Canal WebMundi.com e aproveite diversos benefícios.


Monitoramento de Espaço em Disco com Powershell com alerta via e-mail

Introdução

Se você trabalha com TI, sabe o quão importante é monitorar o espaço em disco para evitar interrupções em sistemas críticos como ERPs ou serviços de tecnologia diversos. Com o PowerShell, é possível criar um script simples, eficiente e automático para verificar o espaço livre e te avisar antes que algo dê errado.

Vale lembrar que este é mais um vídeo sobre Powershell e caso vocês gostem desse tipo de conteúdo deixe comentário sobre o assunto ou dê sua sugestão de novos temas que você gostaria de ver por aqui.

Monitoramento de Espaço em Disco com Powershell com alerta via e-mail
Monitoramento de Espaço em Disco com Powershell com alerta via e-mail

1. Por que usar o PowerShell para monitoramento de disco?

  • É personalizável e fácil de automatizar.
  • Permite enviar notificações por e-mail.
  • Funciona em unidades locais e compartilhamentos de rede.
  • Evita falhas por falta de espaço.

Se você quer um sistema simples, funcional e que economiza seu tempo, o PowerShell é a escolha certa.


2. Requisitos Prévios

  1. PowerShell instalado no sistema (já vem com Windows 7 em diante).
  2. Um servidor SMTP configurado para envio de e-mails.
  3. Permissões de administrador para executar scripts.

3. Criando o Script de Monitoramento Local

3.1 Estrutura Básica do Script

Crie um arquivo chamado MonitoramentoEspacoDisco.ps1 com o seguinte conteúdo:

# Configurações do e-mail
$smtpServer = "smtp.webmundi.com"
$portaSMTP = 900
$emailDe = "[email protected]"
$emailPara = "[email protected]"
$credenciais = New-Object System.Management.Automation.PSCredential("usuarioSMTP", (ConvertTo-SecureString "senhaSMTP" -AsPlainText -Force))

# Configurações de Monitoramento
$unidades = Get-PSDrive -PSProvider FileSystem
$limiteEspacoLivreGB = 10  # Espaço livre mínimo em GB

# Função para verificar espaço livre
foreach ($unidade in $unidades) {
    if ($unidade.Used -gt 0) {
        $espacoLivreGB = [math]::Round($unidade.Free / 1GB, 2)

        if ($espacoLivreGB -lt $limiteEspacoLivreGB) {
            # Envia e-mail de notificação
            $assunto = "Alerta: Pouco espaco livre na unidade $($unidade.Name)"
            $mensagem = "A unidade $($unidade.Name) possui apenas $($espacoLivreGB) GB livres."

            Send-MailMessage -From $emailDe -To $emailPara -Subject $assunto -Body $mensagem -SmtpServer $smtpServer -Port $portaSMTP -Credential $credenciais -UseSsl

            Write-Output "Alerta enviado para $emailPara sobre a unidade $($unidade.Name)."
        } else {
            Write-Output "Unidade $($unidade.Name): Espaco livre suficiente ($($espacoLivreGB) GB)."
        }
    }
}

3.2 Explicação do Script

  1. $smtpServer, $portaSMTP, $emailDe, $emailPara: Configurações para envio do e-mail.
  2. $unidades: Lista todas as unidades locais disponíveis.
  3. $limiteEspacoLivreGB: Espaço mínimo antes de acionar o alerta.
  4. foreach: Itera por cada unidade e verifica o espaço livre.
  5. Send-MailMessage: Envia o e-mail de alerta com os detalhes da unidade.

Atenção: Configuração de SMTP

Antes de rodar o script, é fundamental configurar corretamente o servidor SMTP, que será responsável pelo envio dos e-mails.

Cada provedor de e-mail possui configurações específicas, como servidor, porta, tipo de autenticação e segurança (SSL/TLS).

Abaixo, destacamos exemplos genéricos que você pode adaptar:

  • Servidor SMTP: Geralmente algo como smtp.seuprovedor.com.
  • Porta: Comum usar 587 (STARTTLS) ou 465 (SSL).
  • Autenticação: Normalmente é necessário fornecer seu e-mail e senha.
  • Observações importantes:
    • Verifique se o seu provedor requer configurações adicionais, como ativar o envio SMTP na conta.
    • Alguns provedores, como Gmail, podem exigir senha de aplicativo ou autenticação em dois fatores.

Dica: Consulte a documentação oficial do seu provedor para obter as configurações corretas e garantir que o envio de e-mails funcione adequadamente.

Nota: Como as configurações variam de acordo com o provedor, o tutorial não cobre todos os casos possíveis. Adapte o script com base nas informações fornecidas pelo serviço de e-mail que você está utilizando.


Passo a Passo para Configurar Gmail

  1. Ativar “Acesso a App Menos Seguro” ou Criar Senha de App:
    • O Gmail desativou o suporte para “Aplicativos menos seguros”.
    • Crie uma senha de aplicativo seguindo estas etapas:
      • Acesse a página da sua conta do Google: Minha Conta Google.
      • Vá em Segurança > Senhas de app (essa opção só aparece se você ativar a verificação em duas etapas).
      • Escolha E-mail como app e Windows Computer como dispositivo, depois gere a senha.
      • Use essa senha gerada no campo $senhaApp.
  2. Configurar TLS no Script:
    • O Gmail exige que a comunicação seja feita usando TLS. O parâmetro UseSsl já garante isso.
  3. Permitir Acesso:
    • Certifique-se de que a sua conta do Gmail está configurada para permitir envios SMTP.
  4. Testar o Script:
    • Substitua os campos pelo seu e-mail, destinatário e senha de app para verificar se o e-mail é enviado corretamente.

4. Criando o Script de Monitoramento Unidades Remotas

Se você deseja monitorar unidades compartilhadas na rede, é necessário fazer algumas adaptações no script. Ao invés de listar as unidades locais automaticamente com Get-PSDrive, você pode declarar manualmente os caminhos das unidades remotas que deseja monitorar.

Passo 1: Declarar Unidades Remotas

Adicione os caminhos das unidades remotas (em formato UNC, como \\Servidor\Compartilhamento) em um array chamado $unidades. Exemplo:

$unidades = @("\\SrvWebMundi01\Compartilhamento", "\\SQLWebMundi02\Data")

Passo 2: Ajustar o Loop

Modifique o loop foreach para percorrer as unidades remotas e verificar o espaço disponível. Para isso, utilize o cmdlet Get-CimInstance para obter informações detalhadas sobre o espaço em disco. Aqui está um exemplo do loop ajustado:

# Função para verificar espaço livre
foreach ($unidade in $unidades) {
    try {
        # Obtém as informações de espaço em disco da unidade remota
        $disco = Get-CimInstance -ClassName Win32_LogicalDisk -ComputerName ($unidade -split '\')[2] -Filter "DeviceID='$($unidade.Split('\')[-1])'"

        # Calcula o espaço livre em GB
        $espacoLivreGB = [math]::Round($disco.FreeSpace / 1GB, 2)

        # Verifica se o espaço livre está abaixo do limite
        if ($espacoLivreGB -lt $limiteEspacoLivreGB) {
            $assunto = "Alerta: Pouco espaço livre na unidade $unidade"
            $mensagem = "A unidade $unidade possui apenas $espacoLivreGB GB livres."

            # Envia o e-mail de notificação
            Send-MailMessage -From $emailDe -To $emailPara -Subject $assunto -Body $mensagem -SmtpServer $smtpServer -Port $portaSMTP -Credential $credenciais -UseSsl

            Write-Output "Alerta enviado para $emailPara sobre a unidade $unidade."
        } else {
            Write-Output "Unidade $unidade: Espaço livre suficiente ($espacoLivreGB GB)."
        }
    } catch {
        Write-Output "Erro ao verificar a unidade $unidade: $_"
    }
}

Explicação do Loop Ajustado

  1. Get-CimInstance: Obtém informações detalhadas sobre o disco remoto.
    • A propriedade $disco.FreeSpace retorna o espaço livre em bytes.
    • A propriedade $disco.Size retorna o tamanho total do disco, caso precise de mais cálculos.
  2. Caminho UNC e DeviceID: A unidade remota no formato \\Servidor\Compartilhamento precisa ser separada em:
    • Nome do servidor (Servidor).Caminho do compartilhamento (Compartilhamento).
    O split e a lógica de $unidade.Split('\')[-1] ajudam a extrair essas partes corretamente.
  3. Espaço Livre: Converte o valor de bytes para gigabytes com [math]::Round($valor / 1GB, 2).
  4. Envio de E-mail: Usa Send-MailMessage para notificar o administrador, como no exemplo para unidades locais.
  5. Tratamento de Erros: O bloco try...catch garante que erros durante a consulta não interrompam o restante do script.

Com essas mudanças, o script monitora unidades remotas da mesma forma que as locais, mas com a flexibilidade de personalizar os caminhos das unidades.


5. Testando o Script

  1. Abra o PowerShell como Administrador.
  2. Navegue até a pasta onde o script está salvo: cd C:\Scripts
  3. Execute o script: .\MonitoramentoEspacoDisco.ps1 .\MonitoramentoEspacoDiscoRede.ps1

Se o espaço livre estiver abaixo do limite, você receberá um e-mail.


6. Automatizando com o Agendador de Tarefas

Para executar o script regularmente:

  1. Abra o Agendador de Tarefas (Task Scheduler).
  2. Clique em Criar Tarefa Básica.
  3. Nomeie a tarefa (ex.: Monitoramento de Disco).
  4. Escolha a frequência (diário, semanal, etc.).
  5. Em Ação, selecione Iniciar um Programa.
  6. Adicione o caminho do PowerShell e do script: Programa/script: powershell.exe Argumentos: -ExecutionPolicy Bypass -File C:\Scripts\MonitoramentoEspacoDisco.ps1
  7. Finalize.

O monitoramento será realizado automaticamente no horário agendado.


7. Conclusão

Com este tutorial, você aprendeu a criar um sistema de monitoramento de espaço em disco usando PowerShell. O script é flexível, permitindo monitorar tanto unidades locais quanto remotas, e garante que você receba notificações sempre que o espaço livre estiver baixo.

Implemente esse monitoramento e mantenha seu sistema sempre sob controle!

Se este conteúdo foi útil, compartilhe e deixe seu comentário abaixo.

Experimente e otimize sua rotina hoje mesmo!

Mais Conteúdos sobre Run Commands no Windows

221 Comandos Executar do Windows : Run Commands

Materiais e leituras que recomendamos para você:

Gostou deste guia? Compartilhe e explore mais tutoriais para otimizar suas tarefas no Windows!

Gostou do Post ? Compartilhe com seus amigos nas redes sociais.

Share on facebook
Share on twitter
Share on linkedin
Share on pinterest
Share on tumblr
Share on telegram
Share on whatsapp
Share on skype
Share on email

☑️ Comunidades Colaborativas de Aprendizagem 💬

❓ Esclareça suas dúvidas e ajude outras pessoas a aprender sobre o assunto proposto em nossa comunidade colaborativa no Facebook.

Compartilhe ideias e atividades com outros membros enquanto aprendemos juntos em um ambiente virtual criado e mantido pelo webmundi.com.
Aproveite essa oportunidade gratuita para aprimorar seus conhecimentos e participar de discussões sobre o assunto que você está interessado.

☑️ Grupos WebMundi.com Facebook

✔️ Banco de dados : Dicas
▶️ https://bit.ly/dbbrasil

✔️ Windows Dicas
▶️ https://bit.ly/windowsdicas

✔️ Linux : Dicas, Truques e Tutoriais
▶️ https://bit.ly/linuxdicas

 

✔️ Dev Brasil : Desenvolvimento de Software : Programação (Java, Python, Javascript, Flutter, PHP, Html,CSS e muito mais)
▶️ https://bit.ly/devbrasil

✔️ Virtualização de Computadores : Tecnologia
▶️ https://bit.ly/virtualizabr

APOIE O WEBMUNDI.COM

Apoie o Projeto WebMundi.com!

Se você é fã do conteúdo gratuito e de qualidade que o WebMundi.com oferece no Site, Youtube e grupos, agora é a hora de demonstrar seu apoio e ajudar a mantê-lo disponível.
Qualquer doação, por menor que seja, será muito valiosa para nós e fará toda a diferença.

Basta utilizar o PIX ou o botão VALEU do Youtube para fazer sua contribuição.
Não perca essa oportunidade de ajudar a manter o WebMundi.com ativo e fornecer ainda mais conteúdo de qualidade para você e para outros.

Faça sua doação agora e seja parte da nossa comunidade de apoio!

Ajude a manter nossa criação de conteúdo e operação em funcionamento

Estrutura WebMundi | Sites e Canal Youtube

Ter presença na Internet implica em custos como:

  • Domínios (www.webmundi.com / www.webmundi.org)
  • Hospedagem (local onde fica a estrutura do site / páginas / banco de dados)
  • Softwares (programas utilizados para montar e manter o site em operação e edição de vídeo)
  • Layout e Desenvolvimento (profissionais que constroem, mantêm e divulgam o site e o canal)
  • Produção de Conteúdo (Profissionais como Redatores, Produtores, Editores de vídeo, etc…)
  • Certificados de Segurança (cadeado / segurança da página, possibilita a segurança na navegação e seus dados)
  • Manutenção do Site (atualizações do site, criação de novas páginas)

Loja Virtual | WebMundi.com

Outra forma de apoiar a criação de conteúdo no YouTube e em nossos sites é nossa loja virtual Parceria do WebMundi.com com as maiores plataformas de comércio eletrônico do Brasil. Nossa loja é integrada com nossos parceiros associados e possui uma ampla variedade de produtos de marcas renomadas. O Cliente ao escolher um produto é direcionado a loja parceira onde pode fazer sua compra com tranquilidade em um ambiente seguro e 100% confiável. Confira: Loja Virtual WebMundi.com Alguns de nossos parceiros associados:
Shopee Mercado Livre AliExpress Magalu Amazon
Obrigado pela confiança e preferência.

TALVEZ VOCÊ GOSTE TAMBÉM

Mais Assistidos
Como BAIXAR a ISO do WINDOWS 10 OFICIAL e Criar um Pendrive Bootável
Play Video about Como BAIXAR a ISO do WINDOWS 10 OFICIAL e Criar um Pendrive Bootável
Como instalar o Oracle Virtualbox e Criar Máquinas Virtuais (VMs)
Play Video about Como instalar o Oracle Virtualbox e Criar Máquinas Virtuais (VMs)
atualizar windows 7 para windows 10 2020
Play Video about atualizar windows 7 para windows 10 2020
Instalar o Servidor XAMPP no Linux - Localhost Apache MySQL PHP
Play Video about Instalar o Servidor XAMPP no Linux - Localhost Apache MySQL PHP
Como BAIXAR a ISO do WINDOWS 11 OFICIAL e Criar um Pendrive Bootável
Play Video about Como BAIXAR a ISO do WINDOWS 11 OFICIAL e Criar um Pendrive Bootável
Como Transferir o Windows do HD para um SSD : Migrar Windows 10 para SSD sem formatar
Play Video about Como Transferir o Windows do HD para um SSD : Migrar Windows 10 para SSD sem formatar
Como Instalar MySQL + MySQL Workbench : Windows 10
Play Video about Como Instalar MySQL + MySQL Workbench : Windows 10
Instalação Eclipse IDE - Windows
Play Video about Instalação Eclipse IDE - Windows

Discord : WebMundi.com

Uma comunidade apaixonada por tecnologia, onde entusiastas, estudantes e profissionais de TI se reúnem.

Faça Parte do nossa Comunidade!

Junte-se a nós para aprender, colaborar e expandir seus horizontes na área de informática! 🚀
Entrar
Recentes