{"id":29173219,"url":"https://github.com/mathewsbuzetti/powershell-file-server-space-analyzer","last_synced_at":"2025-07-01T14:11:10.975Z","repository":{"id":301011394,"uuid":"1007884623","full_name":"mathewsbuzetti/powershell-file-server-space-analyzer","owner":"mathewsbuzetti","description":"PowerShell script para análise de espaço em servidores de arquivos com detecção de duplicados, grandes/antigos e dashboard HTML interativo","archived":false,"fork":false,"pushed_at":"2025-06-24T18:17:01.000Z","size":162,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-24T18:33:59.320Z","etag":null,"topics":["cleanup","dashboard","deduplication","duplicate-files","file-server","html-report","ntfs","powershell-script","read-only","sanitization","space-analysis","storage-optimization","windows-server"],"latest_commit_sha":null,"homepage":"https://mathewsbuzetti.github.io/powershell-file-server-space-analyzer/","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mathewsbuzetti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-24T17:22:38.000Z","updated_at":"2025-06-24T18:17:04.000Z","dependencies_parsed_at":"2025-06-24T18:36:05.492Z","dependency_job_id":"8693f9ff-5a65-48ba-9703-d9592a3a1d36","html_url":"https://github.com/mathewsbuzetti/powershell-file-server-space-analyzer","commit_stats":null,"previous_names":["mathewsbuzetti/powershell-file-server-space-analyzer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mathewsbuzetti/powershell-file-server-space-analyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathewsbuzetti%2Fpowershell-file-server-space-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathewsbuzetti%2Fpowershell-file-server-space-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathewsbuzetti%2Fpowershell-file-server-space-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathewsbuzetti%2Fpowershell-file-server-space-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mathewsbuzetti","download_url":"https://codeload.github.com/mathewsbuzetti/powershell-file-server-space-analyzer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathewsbuzetti%2Fpowershell-file-server-space-analyzer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262978722,"owners_count":23394016,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cleanup","dashboard","deduplication","duplicate-files","file-server","html-report","ntfs","powershell-script","read-only","sanitization","space-analysis","storage-optimization","windows-server"],"created_at":"2025-07-01T14:11:09.527Z","updated_at":"2025-07-01T14:11:10.865Z","avatar_url":"https://github.com/mathewsbuzetti.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🗂️ File Server Space Analyzer - PowerShell\n\n[![LinkedIn](https://img.shields.io/badge/LinkedIn-Mathews_Buzetti-blue)](https://www.linkedin.com/in/mathewsbuzetti)\n![PowerShell](https://img.shields.io/badge/PowerShell-5391FE?style=flat-square\u0026logo=powershell\u0026logoColor=white)\n![Status](https://img.shields.io/badge/Status-Production-green?style=flat-square)\n![Security](https://img.shields.io/badge/Security-100%25%20Read--Only-brightgreen?style=flat-square)\n\n**Aplica-se a:** ✔️ Windows Server 2016/2019/2022 ✔️ File Servers ✔️ Network Shares ✔️ Local Storage\n\n## 📋 Metadados\n\n| Metadado | Descrição |\n|----------|-----------|\n| **Título** | File Server Space Analyzer - Otimização de Armazenamento |\n| **Versão** | 2.3 |\n| **Data** | 24/06/2025 |\n| **Autor** | Mathews Buzetti |\n| **Tags** | `powershell`, `file-server`, `space-analysis`, `deduplication`, `html-report`, `storage-optimization` |\n| **Status** | ✅ Aprovado para ambiente de produção |\n\n## 📷 Visualização do Relatório Interativo\n\nA ferramenta gera um dashboard HTML interativo moderno que facilita a visualização e análise de problemas de espaço em servidores de arquivos. O relatório inclui gráficos avançados, métricas em tempo real e uma interface responsiva para análise completa.\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e👇 Clique no botão abaixo para visualizar um exemplo de dashboard de análise de espaço 👇\u003c/strong\u003e\n  \u003cbr\u003e\u003cbr\u003e\n  \u003ca href=\"https://mathewsbuzetti.github.io/powershell-file-server-space-analyzer/\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Acessar%20Demo-Dashboard:%20Análise%20de%20Espaço-brightgreen?style=for-the-badge\u0026logo=html5\" alt=\"Acessar Demo\" width=\"400\"\u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\n  \u003cem\u003eO demo mostra todas as funcionalidades do dashboard, incluindo métricas de recuperação, gráficos interativos e recomendações priorizadas\u003c/em\u003e\n\u003c/p\u003e\n\n![image](https://github.com/user-attachments/assets/cdc429e3-8e11-41db-bb7d-4755bc1b8061)\n\n![image](https://github.com/user-attachments/assets/444f5aa0-097d-40fd-9722-08f84b268677)\n\n![image](https://github.com/user-attachments/assets/fe43d60e-34df-4b33-b3f7-c8fee4d5aecd)\n\n![image](https://github.com/user-attachments/assets/683bec98-4712-4411-bda3-14c2172c04b1)\n\n![image](https://github.com/user-attachments/assets/e9857c3b-cbf1-487c-b7b7-2e117000c8a7)\n\n![image](https://github.com/user-attachments/assets/a2b21ced-0270-4081-a2ce-62b969895b5b)\n\n![image](https://github.com/user-attachments/assets/54bea6b8-8dc8-4e90-a85d-64287f0a9be0)\n\n![image](https://github.com/user-attachments/assets/d5ca92e5-cf02-42e4-9694-e31f60c95f00)\n\n\n## 📋 Índice\n\n1. [Metadados](#-metadados)\n2. [Visualização do Relatório Interativo](#-visualização-do-relatório-interativo)\n3. [Garantia de Segurança](#-garantia-de-segurança)\n4. [Funcionalidades](#-funcionalidades)\n5. [Pré-requisitos](#-pré-requisitos)\n6. [Como Usar](#-como-usar)\n7. [Resultados e Relatórios](#-resultados-e-relatórios)\n8. [Configurações Avançadas](#-configurações-avançadas)\n9. [Windows Deduplication](#-windows-deduplication)\n10. [Interpretando os Resultados](#-interpretando-os-resultados)\n11. [Segurança e Boas Práticas](#-segurança-e-boas-práticas)\n12. [Limitações e Considerações](#-limitações-e-considerações)\n13. [Versionamento](#-versionamento)\n14. [Suporte e Contato](#-suporte-e-contato)\n\n## 🔒 Garantia de Segurança\n\n\u003e ### ⚠️ **SCRIPT 100% READ-ONLY - MÁXIMA SEGURANÇA**\n\u003e - ✅ **NUNCA remove arquivos dos usuários**\n\u003e - ✅ **NUNCA modifica dados existentes**  \n\u003e - ✅ **Apenas cria relatórios de análise**\n\u003e - ✅ **Script é 100% somente leitura**\n\n## 💻 Funcionalidades\n\n### 🎯 Recursos Principais v2.3\n* **Análise de Duplicados**: Detecção precisa usando hash MD5 com agrupamento inteligente\n* **Grandes OU Antigos**: Critério OR com badges por impacto (Grande + Antigo \u003e Grande \u003e Antigo)\n* **Arquivos Temporários**: Identificação e análise de arquivos desnecessários (.tmp, .bak, .log, etc)\n* **Windows Deduplication**: Detecção automática e ajuste de valores para espaço físico real\n* **Dashboard HTML Interativo**: Relatório visual com gráficos, métricas e recomendações\n* **Tratamento Robusto de Erros**: Análise continua mesmo com problemas de acesso\n* **Otimização de Performance**: Processamento em lotes para grandes volumes de dados\n\n### 🔍 Análises Avançadas\n* Cálculo preciso de potencial de recuperação sem arredondamento duplo\n* Detecção de sobreposições entre categorias para evitar dupla contagem\n* Suporte a caminhos de rede e locais\n* Análise de eficiência da deduplicação ativa\n* Exportação completa para CSV com dados detalhados\n\n### 📈 Dashboard HTML Moderno\n* **Métricas de Resumo**: Contadores com animação e indicadores visuais\n* **Gráficos Interativos**: Pizza donut com breakdown por categoria\n* **Visualizações**: Top 5 tipos de arquivo com gráfico de barras animado\n* **Tabelas Responsivas**: Interface com abas e conteúdo colapsível\n* **Badges de Prioridade**: Sistema visual de classificação por impacto\n* **Modo Responsivo**: Funciona perfeitamente em desktop, tablet e mobile\n\n## 📋 Pré-requisitos\n\n* Windows 10/11 ou Windows Server 2016/2019/2022\n* PowerShell 5.1 ou superior\n* Permissões de leitura nos diretórios a serem analisados\n* Espaço livre em C:\\temp (ou pasta configurada) para relatórios\n* Navegador moderno para visualizar o dashboard HTML (Chrome, Edge, Firefox)\n\n\u003e [!WARNING]\\\n\u003e **Requisitos de segurança e performance:**\n\u003e - Execute como administrador para máxima cobertura de análise\n\u003e - Tenha pelo menos 2GB de RAM livre para análise de servidores grandes\n\u003e - Reserve 500MB de espaço livre para geração de relatórios\n\u003e - Considere executar fora do horário comercial em servidores em produção\n\u003e - O script é 100% read-only, mas pode impactar temporariamente a performance do servidor\n\n\u003e [!NOTE]\\\n\u003e **Compatibilidade testada:**\n\u003e - Windows Server 2016/2019/2022 (Recomendado)\n\u003e - PowerShell 5.1, 7.x\n\u003e - Compartilhamentos SMB/CIFS\n\u003e - Volumes NTFS locais e de rede\n\n## 🚀 Como Usar\n\n1. **Download do Script**:\n   \n   [![Download Script](https://img.shields.io/badge/Download%20Script-FileServerSpaceAnalyzer.ps1-blue?style=flat-square\u0026logo=powershell)](https://github.com/mathewsbuzetti/powershell-file-server-space-analyzer/blob/main/Script/FileServerSpaceAnalyzer.ps1)\n\n2. **Abra o script no PowerShell ISE**.\n\n3. **Localize as linhas abaixo no início do script e altere conforme necessário**:\n\n   ```powershell\n   # Configurações principais (edite no início do script)\n   $TamanhoMinimoArquivosMB = 500          # Tamanho mínimo para \"grandes\"\n   $DiasArquivosAntigos = 90               # Idade mínima para \"antigos\"\n   $TopArquivosGrandesAntigos = 1000       # Quantidade máxima a analisar\n   $TamanhoMinimoArquivosDuplicadosMB = 50 # Tamanho mínimo para duplicados\n   $TopGruposDuplicados = 2000             # Top grupos de duplicados\n   $ModoSilencioso = $true                 # Reduz verbosidade\n   ```\n\n\u003e [!WARNING]\\\n\u003e **Configurações avançadas e seus impactos:**\n\u003e - **TamanhoMinimoArquivosMB**: Define o tamanho mínimo para considerar arquivos como \"grandes\". Valores menores (100MB) incluem mais arquivos na análise, mas aumentam significativamente o tempo de execução em servidores com muitos arquivos.\n\u003e - **DiasArquivosAntigos**: Define quantos dias para considerar arquivos como \"antigos\". Valores menores (30 dias) incluem mais arquivos recentes, enquanto valores maiores (180 dias) focam apenas em arquivos realmente antigos.\n\u003e - **TopArquivosGrandesAntigos**: Limita quantos arquivos grandes/antigos serão analisados. Valores maiores (5000) fornecem análise mais completa, mas consomem mais memória e tempo de processamento.\n\u003e - **TamanhoMinimoArquivosDuplicadosMB**: Define o tamanho mínimo para buscar duplicados. Valores menores (10MB) encontram mais duplicados, mas o cálculo de hash MD5 demora muito mais tempo.\n\u003e - **TopGruposDuplicados**: Limita quantos grupos de duplicados serão processados. Aumentar (5000+) pode melhorar a detecção, mas aumenta significativamente o uso de memória e tempo de processamento.\n\u003e - **ModoSilencioso**: Quando false, exibe logs detalhados no console. Útil para debug, mas pode gerar muito output em análises grandes.\n\n4. **Após a alteração, execute o script pressionando F5 ou o botão Play no PowerShell ISE**.\n\n5. **Configuração Interativa**:\n   - Escolha entre análise local ou de rede\n   - Digite o caminho a ser analisado\n   - Aguarde a análise ser concluída\n\n![image](https://github.com/user-attachments/assets/6d898b82-6c1d-4a41-a177-a2fb310b43c4)\n\n## 📊 Resultados e Relatórios\n\n### Dashboard HTML Interativo\nO relatório principal é um dashboard HTML moderno que inclui:\n\n1. **Hero Section**: Métricas principais com animações\n2. **Cards de Resumo**: Estatísticas visuais por categoria\n3. **Gráficos**: \n   - Pizza donut para composição da recuperação\n   - Barras para top 5 tipos de arquivo\n4. **Seções Detalhadas**:\n   - Visão geral com progress bars\n   - Abas para tipos, duplicados, grandes/antigos\n   - Seção de erros v2.3 com estatísticas\n5. **Recomendações**: Plano de ação priorizado\n6. **Design Responsivo**: Funciona em qualquer dispositivo\n\n### Arquivos Gerados\n```\nC:\\temp\\AnaliseFileServer_YYYY-MM-DD_HHMMSS\\\n├── RelatorioSanitizacao.html           # Dashboard principal\n├── DistribuicaoTipos.csv               # Análise por tipo de arquivo\n├── ArquivosDuplicados.csv              # Lista completa de duplicados\n├── GrandesAntigos.csv                  # Arquivos grandes OU antigos\n├── ArquivosTemporarios.csv             # Arquivos temporários encontrados\n├── ErrosPermissao.csv                  # Erros de acesso (se houver)\n├── CaminhosMuitoLongos.csv             # Caminhos problemáticos\n└── ResumoErros.txt                     # Resumo de problemas encontrados\n```\n\n## 🔧 Configurações Avançadas\n\n### Performance e Otimização\n```powershell\n# Para servidores grandes (10TB)\n$MaxErrosPorTipo = 100                  # Aumentar limite de erros\n$TopGruposDuplicados = 5000             # Mais grupos de duplicados\n\n# Para análise rápida\n$TamanhoMinimoArquivosMB = 1000         # Focar apenas em arquivos muito grandes\n$TopArquivosGrandesAntigos = 500        # Reduzir quantidade analisada\n```\n\n### Tratamento de Erros\nO script v2.3 inclui tratamento robusto para:\n- ❌ Erros de permissão de acesso\n- 📏 Caminhos muito longos (240 caracteres)\n- 🔒 Arquivos e pastas protegidos pelo sistema\n- 🌐 Problemas de conectividade de rede\n- 💾 Limitações de memória em análises grandes\n\n## 💡 Windows Deduplication\n\n### Detecção Automática\nO script detecta automaticamente se a Windows Deduplication está ativa e ajusta os cálculos:\n\n- **Taxa de Compressão**: Mostra a eficiência atual\n- **Valores Ajustados**: Espaço físico real que será liberado\n- **Recomendações**: Sugere habilitação se não estiver ativa\n\n### Benefícios da Deduplication\n- 10-80% de economia de espaço adicional\n- Especialmente eficaz em servidores com dados duplicados\n- Redução do backup e replicação\n\n## 📈 Interpretando os Resultados\n\n### Priorização por Impacto\n1. **🔴 Crítico**: Arquivos Grande + Antigo (máximo impacto)\n2. **🟠 Alto**: Arquivos apenas Grandes (impacto significativo)\n3. **🟡 Médio**: Arquivos apenas Antigos (menor impacto)\n4. **🔵 Info**: Duplicados e temporários (fácil limpeza)\n\n### Métricas Importantes\n- **Potencial de Recuperação**: Espaço total que pode ser liberado\n- **Percentual do Disco**: Quanto representa do espaço usado\n- **Sobreposições**: Arquivos contados em múltiplas categorias\n- **Deduplicação**: Economia adicional disponível\n\n## 🛡️ Segurança e Boas Práticas\n\n\u003e [!WARNING]\\\n\u003e **Importantes considerações de segurança:**\n\u003e - Embora o script seja 100% read-only, a análise intensiva pode impactar a performance do servidor\n\u003e - Execute em horários de baixo uso para minimizar impacto nos usuários\n\u003e - Verifique se há espaço suficiente para os relatórios antes da execução\n\u003e - Não execute em múltiplos servidores simultaneamente sem considerar a carga de rede\n\u003e - Mantenha os relatórios gerados em local seguro pois contêm informações sensíveis sobre a estrutura de arquivos\n\n### Durante a Análise\n- O script é 100% read-only - não modifica arquivos\n- Performance pode ser impactada temporariamente\n- Monitorar logs para identificar problemas de acesso\n\n### Após a Análise\n1. 📋 Revisar relatório HTML antes de qualquer ação\n2. 🔍 Validar arquivos duplicados antes da remoção\n3. 📁 Confirmar que arquivos \"antigos\" podem ser arquivados\n4. 💾 Considerar backup antes de limpeza massiva\n\n\u003e [!NOTE]\\\n\u003e **Dica de segurança:** O relatório HTML contém informações detalhadas sobre a estrutura de arquivos do servidor. Mantenha esses relatórios em local seguro e limite o acesso apenas a administradores autorizados.\n\n## 🚨 Limitações e Considerações\n\n\u003e [!WARNING]\\\n\u003e **Limitações importantes do script:**\n\u003e - O cálculo de hash MD5 para duplicados é CPU-intensivo e pode aquecer o servidor\n\u003e - Arquivos em uso exclusivo podem não ser detectados corretamente\n\u003e - Permissões insuficientes podem resultar em análise incompleta\n\u003e - Não recomendado executar durante backup ou outras operações intensivas de I/O\n\n### Performance\n- Análise de servidores grandes (30TB) pode levar várias horas\n- Uso intensivo de CPU durante cálculo de hashes MD5\n- Impacto temporário na performance de rede/disco\n\n### Precisão\n- Hashes MD5 têm probabilidade mínima de colisão\n- Arquivos em uso podem não ser detectados corretamente\n- Permissões insuficientes podem limitar a análise\n\n### Compatibilidade\n- Testado no Windows Server 2016/2019/2022\n- Requer PowerShell 5.1+ para funcionalidades completas\n- Alguns recursos podem variar entre versões do Windows\n\n## 🔄 Versionamento\n\n### Versão 2.3 (Atual)\n- ✅ Script 100% read-only com máxima segurança\n- ✅ Critério OR para grandes OU antigos com badges por impacto\n- ✅ Detecção aprimorada de Windows Deduplication\n- ✅ Dashboard HTML com design moderno e responsivo\n- ✅ Tratamento robusto de erros v2.3\n- ✅ Cálculos matemáticos corrigidos sem arredondamento duplo\n- ✅ Sistema de badges visuais para classificação de prioridade\n\n---\n\n## 📞 Suporte e Contato\n\n[![LinkedIn](https://img.shields.io/badge/LinkedIn-Mathews_Buzetti-blue)](https://www.linkedin.com/in/mathewsbuzetti)\n\nPara dúvidas, sugestões ou relato de problemas:\n- 📧 Entre em contato via LinkedIn\n- 🐛 Abra uma issue no GitHub\n- 💡 Contribuições são bem-vindas via Pull Request\n\n---\n\n**⚡ Desenvolvido por Mathews Buzetti - Especialista em Infraestrutura e Automação**\n\n*Copyright © 2025 - Licenciado sob MIT com restrições adicionais*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathewsbuzetti%2Fpowershell-file-server-space-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmathewsbuzetti%2Fpowershell-file-server-space-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathewsbuzetti%2Fpowershell-file-server-space-analyzer/lists"}