{"id":40974,"date":"2025-01-24T17:45:22","date_gmt":"2025-01-24T20:45:22","guid":{"rendered":"http:\/\/cmswebmundicom.local\/?p=40974"},"modified":"2025-01-24T17:55:41","modified_gmt":"2025-01-24T20:55:41","slug":"monitoramento-espaco-em-disco-powershell","status":"publish","type":"post","link":"http:\/\/localhost\/cmswebmundicom\/sistema-operacional\/windows\/monitoramento-espaco-em-disco-powershell\/","title":{"rendered":"Monitoramento de Espa\u00e7o em Disco com Powershell com alerta via e-mail"},"content":{"rendered":"
Neste tutorial, vamos aprender a efetuar o Monitoramento de Espa\u00e7o em Disco com Powershell com alerta via e-mail<\/p>
Vem a\u00ed o curso “PowerShell de A a Z: Fundamentos”!<\/strong><\/p> Um treinamento completo que vai muito al\u00e9m de tutoriais r\u00e1pidos como este.<\/p> Hoje, estamos resolvendo um problema espec\u00edfico \u2014 monitorar espa\u00e7o em disco \u2014 mas no curso voc\u00ea ter\u00e1 uma experi\u00eancia aprofundada, aprendendo passo a passo<\/strong> o funcionamento de cada comando, al\u00e9m de criar automa\u00e7\u00f5es avan\u00e7adas e dominar as melhores pr\u00e1ticas do PowerShell.<\/p> No conte\u00fado, voc\u00ea vai come\u00e7ar do b\u00e1sico, como manipular arquivos e pastas, e avan\u00e7ar para t\u00f3picos como loops, arrays, express\u00f5es regulares, automa\u00e7\u00f5es robustas e muito mais.<\/p> E tem mais uma novidade: na pr\u00f3xima semana<\/strong>, as primeiras aulas j\u00e1 estar\u00e3o dispon\u00edveis! Se voc\u00ea \u00e9 assinante do canal no n\u00edvel Elite<\/strong> ou superior, ter\u00e1 acesso exclusivo \u00e0 nossa plataforma de EAD, a XP IT Cursos<\/strong>, com uma trilha de aprendizagem organizada e certificado de conclus\u00e3o ao final do curso.<\/p> Todas as informa\u00e7\u00f5es est\u00e3o no bot\u00e3o \u201cSeja Membro<\/a>\u201d aqui no YouTube.<\/strong><\/p> Agora, bora voltar ao tutorial e aprender como monitorar espa\u00e7o em disco de forma eficiente com o PowerShell!<\/p> No Clube WebMundi.com – Youtube<\/strong><\/a>, voc\u00ea encontrar\u00e1 aulas exclusivas sobre a utiliza\u00e7\u00e3o de scripts PowerShell.<\/p> Por isso, n\u00e3o perca tempo, Seja associado do Clube do Canal WebMundi.com<\/a><\/strong> e aproveite diversos benef\u00edcios.<\/p> Introdu\u00e7\u00e3o<\/strong><\/p> Se voc\u00ea trabalha com TI, sabe o qu\u00e3o importante \u00e9 monitorar o espa\u00e7o em disco<\/strong> para evitar interrup\u00e7\u00f5es em sistemas cr\u00edticos como ERPs ou servi\u00e7os de tecnologia diversos. Com o PowerShell<\/strong>, \u00e9 poss\u00edvel criar um script simples, eficiente e autom\u00e1tico para verificar o espa\u00e7o livre e te avisar antes que algo d\u00ea errado.<\/p> Vale lembrar que este \u00e9 mais um v\u00eddeo sobre Powershell e caso voc\u00eas gostem desse tipo de conte\u00fado deixe coment\u00e1rio sobre o assunto ou d\u00ea sua sugest\u00e3o de novos temas que voc\u00ea gostaria de ver por aqui.<\/p> Se voc\u00ea quer um sistema simples, funcional e que economiza seu tempo, o PowerShell \u00e9 a escolha certa.<\/p> Crie um arquivo chamado MonitoramentoEspacoDisco.ps1<\/strong> com o seguinte conte\u00fado:<\/p> Antes de rodar o script, \u00e9 fundamental configurar corretamente o servidor SMTP, que ser\u00e1 respons\u00e1vel pelo envio dos e-mails.<\/p> Cada provedor de e-mail possui configura\u00e7\u00f5es espec\u00edficas, como servidor, porta, tipo de autentica\u00e7\u00e3o e seguran\u00e7a (SSL\/TLS).<\/p> Abaixo, destacamos exemplos gen\u00e9ricos que voc\u00ea pode adaptar:<\/p> Dica<\/strong>: Consulte a documenta\u00e7\u00e3o oficial do seu provedor para obter as configura\u00e7\u00f5es corretas e garantir que o envio de e-mails funcione adequadamente.<\/p> Nota<\/strong>: Como as configura\u00e7\u00f5es variam de acordo com o provedor, o tutorial n\u00e3o cobre todos os casos poss\u00edveis. Adapte o script com base nas informa\u00e7\u00f5es fornecidas pelo servi\u00e7o de e-mail que voc\u00ea est\u00e1 utilizando.<\/p> Se voc\u00ea deseja monitorar unidades compartilhadas na rede, \u00e9 necess\u00e1rio fazer algumas adapta\u00e7\u00f5es no script. Ao inv\u00e9s de listar as unidades locais automaticamente com Adicione os caminhos das unidades remotas (em formato UNC, como Modifique o loop Com essas mudan\u00e7as, o script monitora unidades remotas da mesma forma que as locais, mas com a flexibilidade de personalizar os caminhos das unidades.<\/p> Se o espa\u00e7o livre estiver abaixo do limite, voc\u00ea receber\u00e1 um e-mail.<\/p> Para executar o script regularmente:<\/p> O monitoramento ser\u00e1 realizado automaticamente no hor\u00e1rio agendado.<\/p> Com este tutorial, voc\u00ea aprendeu a criar um sistema de monitoramento de espa\u00e7o em disco<\/strong> usando PowerShell. O script \u00e9 flex\u00edvel, permitindo monitorar tanto unidades locais quanto remotas, e garante que voc\u00ea receba notifica\u00e7\u00f5es sempre que o espa\u00e7o livre estiver baixo.<\/p> Implemente esse monitoramento e mantenha seu sistema sempre sob controle!<\/p> Se este conte\u00fado foi \u00fatil, compartilhe e deixe seu coment\u00e1rio abaixo.<\/p> Experimente e otimize sua rotina hoje mesmo!<\/p> 221 Comandos Executar do Windows : Run Commands<\/a><\/strong><\/p> Materiais e leituras que recomendamos para voc\u00ea:<\/strong><\/p> <\/p> Gostou deste guia? Compartilhe e explore mais tutoriais para otimizar suas tarefas no Windows!<\/strong><\/p>","protected":false},"excerpt":{"rendered":" Neste tutorial, vamos aprender a efetuar o Monitoramento de Espa\u00e7o em Disco com Powershell com alerta via e-mail V\u00eddeo Aula…<\/p>\n","protected":false},"author":2,"featured_media":40975,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"categories":[5386,61],"tags":[52],"class_list":["post-40974","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell","category-windows","tag-windows"],"yoast_head":"\nMonitoramento de Espa\u00e7o em Disco com Powershell com alerta via e-mail<\/h2>
1. Por que usar o PowerShell para monitoramento de disco?<\/strong><\/h2>
2. Requisitos Pr\u00e9vios<\/strong><\/h3>
3. Criando o Script de Monitoramento Local<\/strong><\/h3>
3.1 Estrutura B\u00e1sica do Script<\/strong><\/h3>
# Configura\u00e7\u00f5es do e-mail\n$smtpServer = \"smtp.webmundi.com\"\n$portaSMTP = 900\n$emailDe = \"monitoramento@webmundi.com\"\n$emailPara = \"tutorial@webmundi.com\"\n$credenciais = New-Object System.Management.Automation.PSCredential(\"usuarioSMTP\", (ConvertTo-SecureString \"senhaSMTP\" -AsPlainText -Force))\n\n# Configura\u00e7\u00f5es de Monitoramento\n$unidades = Get-PSDrive -PSProvider FileSystem\n$limiteEspacoLivreGB = 10 # Espa\u00e7o livre m\u00ednimo em GB\n\n# Fun\u00e7\u00e3o para verificar espa\u00e7o livre\nforeach ($unidade in $unidades) {\n if ($unidade.Used -gt 0) {\n $espacoLivreGB = [math]::Round($unidade.Free \/ 1GB, 2)\n\n if ($espacoLivreGB -lt $limiteEspacoLivreGB) {\n # Envia e-mail de notifica\u00e7\u00e3o\n $assunto = \"Alerta: Pouco espaco livre na unidade $($unidade.Name)\"\n $mensagem = \"A unidade $($unidade.Name) possui apenas $($espacoLivreGB) GB livres.\"\n\n Send-MailMessage -From $emailDe -To $emailPara -Subject $assunto -Body $mensagem -SmtpServer $smtpServer -Port $portaSMTP -Credential $credenciais -UseSsl\n\n Write-Output \"Alerta enviado para $emailPara sobre a unidade $($unidade.Name).\"\n } else {\n Write-Output \"Unidade $($unidade.Name): Espaco livre suficiente ($($espacoLivreGB) GB).\"\n }\n }\n}\n\n<\/code><\/pre>
3.2 Explica\u00e7\u00e3o do Script<\/strong><\/h3>
Aten\u00e7\u00e3o: Configura\u00e7\u00e3o de SMTP<\/strong><\/h3>
smtp.seuprovedor.com<\/code>.<\/li>\n\n
587<\/code> (STARTTLS) ou
465<\/code> (SSL).<\/li>\n\n
Passo a Passo para Configurar Gmail<\/strong><\/h3>
$senhaApp<\/code>.<\/li><\/ul><\/li><\/ul><\/li>\n\n
UseSsl<\/code> j\u00e1 garante isso.<\/li><\/ul><\/li>\n\n
4. Criando o Script de Monitoramento Unidades Remotas<\/strong><\/h3>
Get-PSDrive<\/code>, voc\u00ea pode declarar manualmente os caminhos das unidades remotas que deseja monitorar.<\/p>
Passo 1: Declarar Unidades Remotas<\/strong><\/h3>
\\\\Servidor\\Compartilhamento<\/code>) em um array chamado
$unidades<\/code>. Exemplo:<\/p>
$unidades = @(\"\\\\SrvWebMundi01\\Compartilhamento\", \"\\\\SQLWebMundi02\\Data\")\n\n<\/code><\/pre>
Passo 2: Ajustar o Loop<\/strong><\/h3>
foreach<\/code> para percorrer as unidades remotas e verificar o espa\u00e7o dispon\u00edvel. Para isso, utilize o cmdlet
Get-CimInstance<\/code> para obter informa\u00e7\u00f5es detalhadas sobre o espa\u00e7o em disco. Aqui est\u00e1 um exemplo do loop ajustado:<\/p>
# Fun\u00e7\u00e3o para verificar espa\u00e7o livre\nforeach ($unidade in $unidades) {\n try {\n # Obt\u00e9m as informa\u00e7\u00f5es de espa\u00e7o em disco da unidade remota\n $disco = Get-CimInstance -ClassName Win32_LogicalDisk -ComputerName ($unidade -split '\\')[2] -Filter \"DeviceID='$($unidade.Split('\\')[-1])'\"\n\n # Calcula o espa\u00e7o livre em GB\n $espacoLivreGB = [math]::Round($disco.FreeSpace \/ 1GB, 2)\n\n # Verifica se o espa\u00e7o livre est\u00e1 abaixo do limite\n if ($espacoLivreGB -lt $limiteEspacoLivreGB) {\n $assunto = \"Alerta: Pouco espa\u00e7o livre na unidade $unidade\"\n $mensagem = \"A unidade $unidade possui apenas $espacoLivreGB GB livres.\"\n\n # Envia o e-mail de notifica\u00e7\u00e3o\n Send-MailMessage -From $emailDe -To $emailPara -Subject $assunto -Body $mensagem -SmtpServer $smtpServer -Port $portaSMTP -Credential $credenciais -UseSsl\n\n Write-Output \"Alerta enviado para $emailPara sobre a unidade $unidade.\"\n } else {\n Write-Output \"Unidade $unidade: Espa\u00e7o livre suficiente ($espacoLivreGB GB).\"\n }\n } catch {\n Write-Output \"Erro ao verificar a unidade $unidade: $_\"\n }\n}\n<\/code><\/pre>
Explica\u00e7\u00e3o do Loop Ajustado<\/strong><\/h3>
Get-CimInstance<\/code><\/strong>: Obt\u00e9m informa\u00e7\u00f5es detalhadas sobre o disco remoto.
$disco.FreeSpace<\/code> retorna o espa\u00e7o livre em bytes.<\/li>\n\n
$disco.Size<\/code> retorna o tamanho total do disco, caso precise de mais c\u00e1lculos.<\/li><\/ul><\/li>\n\n
\\\\Servidor\\Compartilhamento<\/code> precisa ser separada em:
Servidor<\/code>).Caminho do compartilhamento (
Compartilhamento<\/code>).<\/li><\/ul>O
split<\/code> e a l\u00f3gica de
$unidade.Split('\\')[-1]<\/code> ajudam a extrair essas partes corretamente.<\/li>\n\n
[math]::Round($valor \/ 1GB, 2)<\/code>.<\/li>\n\n
Send-MailMessage<\/code> para notificar o administrador, como no exemplo para unidades locais.<\/li>\n\n
try...catch<\/code> garante que erros durante a consulta n\u00e3o interrompam o restante do script.<\/li><\/ol>
5. Testando o Script<\/strong><\/h3>
cd C:\\Scripts<\/code><\/li>\n\n
.\\MonitoramentoEspacoDisco.ps1 .\\MonitoramentoEspacoDiscoRede.ps1<\/code><\/li><\/ol>
6. Automatizando com o Agendador de Tarefas<\/strong><\/h3>
Programa\/script: powershell.exe Argumentos: -ExecutionPolicy Bypass -File C:\\Scripts\\MonitoramentoEspacoDisco.ps1<\/code><\/li>\n\n
7. Conclus\u00e3o<\/strong><\/h3>
Mais Conte\u00fados sobre Run Commands no Windows<\/h3>
<\/h2>