/
/

Como criar scripts para limpeza automática de arquivos temporários e perfis de usuário antigos em máquinas remotas

por Team Ninja
How to Script Automatic Clean-Up of Temporary Files and Old User Profiles on Remote Machines blog banner image

Resumo instantâneo

Esta postagem do blog NinjaOne oferece uma lista abrangente de comandos CMD básicos e um mergulho profundo nos comandos do Windows, com +70 comandos CMD essenciais para usuários iniciantes e avançados. Explicamos sobre comandos práticos de prompt de comando para gerenciamento de arquivos, navegação em diretórios, solução de problemas de rede, operações de disco e automação, tudo com exemplos reais para maximizar a produtividade. Seja para aprender comandos básicos CMD ou dominar ferramentas avançadas de CLI do Windows, este guia ajuda você a usar o prompt de comando com mais eficiência.

Arquivos temporários e perfis de usuário obsoletos são dados não essenciais que se acumulam silenciosamente em um dispositivo. Parecem inofensivos, mas esses arquivos e perfis residuais podem ocupar muito espaço em disco.

Se ficarem sem gerenciamento por muito tempo, criam riscos de segurança em ambientes com vários usuários ou estações compartilhadas.

Uma forma de manter todos os endpoints enxutos e com desempenho ideal é automatizar a limpeza.

Hoje, vamos mostrar como criar scripts de automação para limpar arquivos temporários e perfis de usuário antigos em máquinas remotas.

Prefere ver o assunto em vídeo? Assista a “Como criar scripts para limpeza automática de arquivos temporários e perfis de usuário antigos em máquinas remotas”.

Como automatizar a limpeza de arquivos temporários e perfis de usuário com o PowerShell

Limpar arquivos temporários e remover perfis de usuário antigos é uma tarefa rotineira para MSPs. Isso mantém os sistemas funcionando bem, libera espaço em disco e reduz riscos de segurança.

Mas fazer isso manualmente em centenas de endpoints toma muito tempo. Por isso, a maioria dos administradores de sistema usa scripts do PowerShell para automatizar todo o processo.

Antes de começar, confirme se os seguintes requisitos estão atendidos:

📌 Pré-requisitos:

  • Windows 10/11 ou Server 2016+
  • PowerShell versão 5.1 ou posterior
  • Direitos de administrador local
  • NinjaOne ou outras ferramentas de RMM para implantação e coleta de logs (opcional)
  • Acesso a GPO para aplicar políticas de limpeza (opcional)

Essas são as principais ferramentas necessárias para este guia.

📌 Estratégias de implantação recomendadas:

Clique para escolher um método 💻
Melhor para usuários individuais
💻💻💻
Melhor para empresas
Método 1: criar um script de limpeza de arquivos temporários com o PowerShell ✓ ✓
Método 2: criar um script de remoção de perfis de usuário antigos com o PowerShell ✓
Método 3: usar a Política de Grupo para padronizar ou complementar a limpeza ✓

Método 1: criar um script de limpeza de arquivos temporários com o PowerShell

📌 Caso de uso: criar um script que remove arquivos temporários e diretórios de usuário de um endpoint para reduzir a bagunça e liberar espaço de armazenamento.

Limpar os diretórios temporários do Windows e dos usuários:

# System temp
$systemTemp = "$env:windir\Temp"
Get-ChildItem -Path $systemTemp -Recurse -Force -ErrorAction SilentlyContinue | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue# User temp
$users = Get-ChildItem 'C:\Users' -Directory
foreach ($user in $users) {
$tempPath = "$($user.FullName)\AppData\Local\Temp"
if (Test-Path $tempPath) {
Get-ChildItem -Path $tempPath -Recurse -Force -ErrorAction SilentlyContinue |
Remove-Item -Force -Recurse -ErrorAction SilentlyContinue
}
}

Exclua contas de sistema e sessões de usuário ativas para evitar perda acidental de dados.

Método 2: criar um script de remoção de perfis de usuário antigos com o PowerShell

📌 Caso de uso: implantar um script que identifica e exclui perfis de usuário inativos com base na data do último login.

A. Remover perfis sem uso nos últimos 30 dias

$cutoff = (Get-Date).AddDays(-30)
Get-CimInstance -ClassName Win32_UserProfile | Where-Object {
-not $_.Special -and $_.LastUseTime -lt $cutoff
} | ForEach-Object {
Remove-CimInstance -InputObject $_
}

B. Verificar sem remover

Get-CimInstance -ClassName Win32_UserProfile | Where-Object {
-not $_.Special -and $_.LastUseTime -lt $cutoff
} | Select-Object LocalPath, LastUseTime

Método 3: usar a Política de Grupo para padronizar ou complementar a limpeza

📌 Caso de uso: aplicar configurações de Política de Grupo para forçar a limpeza de perfis na reinicialização do sistema e padronizar o processo em todos os dispositivos.

  1. Abra o Editor de Política de Grupo.
  2. Vá até: Configuração do Computador > Modelos Administrativos > Sistema > Perfis de Usuário.
  3. Defina a configuração “Excluir perfis de usuário mais antigos que um número especificado de dias na reinicialização do sistema” como Ativado.
  4. Defina o valor como 30 dias.

💡Dica: use isso junto com um script de automação do PowerShell para garantir a aplicação no nível do sistema.

Etapas adicionais para automatizar a limpeza de arquivos temporários e perfis de usuário

Veja outras etapas que facilitam a exclusão de arquivos temporários e perfis de usuário antigos.

Método 1: agendar a limpeza com o Agendador de Tarefas

📌 Caso de uso: criar uma tarefa agendada para executar scripts de limpeza automaticamente fora do horário de pico e manter a higiene do sistema.

A. Criar uma tarefa agendada pelo CMD

schtasks /create /tn "AutoCleanup" /tr "powershell.exe -File C:\Scripts\Cleanup.ps1" /sc weekly /st 02:00 /ru SYSTEM

B. Validar o agendamento

schtasks /query /tn "AutoCleanup"

Mantenha um cronograma de limpeza consistente em todos os tenants para fins de relatório e conformidade.

Método 2: registrar os resultados da limpeza no Registro para visibilidade no RMM

📌 Caso de uso: registrar a atividade de limpeza no registro ou em arquivos locais para que a ferramenta de RMM possa monitorar, reportar e auditar.

A. Criar a chave de auditoria e armazenar os metadados

New-Item -Path "HKLM:\SOFTWARE\Org\CleanupAudit" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\CleanupAudit" -Name "LastCleanupDate" -Value (Get-Date).ToString("u")
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\CleanupAudit" -Name "ProfilesRemoved" -Value 3
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\CleanupAudit" -Name "TempFilesDeletedMB" -Value 512

B. Consultar pelo CMD

reg query HKLM\SOFTWARE\Org\CleanupAudit

Assim, a ferramenta de RMM ganha um ponto de dados para monitoramento e alertas.

⚠️ Pontos de atenção

Fique de olho nestas armadilhas ao seguir o guia:

Riscos Possíveis consequências Como reverter
Remover arquivos temporários de contas de sistema Falhas de serviços ou instabilidade do sistema Use uma lista de permissões para excluir contas de sistema conhecidas.
Executar tarefas agendadas sem as permissões corretas O script falha silenciosamente ou gera erros Execute as tarefas como SYSTEM ou com direitos totais de administrador.
Arquivos não removidos por problemas de permissão Limpeza parcial Procure arquivos bloqueados ou permissões herdadas de outro usuário.
Tarefa agendada não executada por erros de configuração A limpeza não acontece Verifique o caminho do script, a sintaxe e as configurações do sistema.
GPO não aplicada ao comportamento desejado Comportamento de limpeza inconsistente entre os dispositivos Use gpresult /h report.html para verificar a herança da Política de Grupo em todos os endpoints.
Aplicar políticas de limpeza sem testar Perda acidental de dados e erros no sistema Teste os scripts e as configurações de Política de Grupo em um ambiente de homologação antes de liberar.

Guia de início rápido

NinjaOne tem vários scripts que ajudam a limpar arquivos temporários e gerenciar perfis de usuário. Veja algumas opções relevantes:

1. Relatório de perfis de usuário órfãos: existe um script que “procura pastas de perfil de usuário sem uma conta de usuário associada”. Isso ajuda a identificar perfis antigos ou desnecessários.

2. Gerenciamento de arquivos temporários: não há um script direto de “limpar arquivos temporários”, mas NinjaOne oferece recursos flexíveis de scripts para você criar um script personalizado que:

  • encontra e remove arquivos temporários;
  • limpa diretórios específicos;
  • remove perfis de usuário antigos.

3. Flexibilidade de automação: a plataforma permite criar scripts personalizados que podem:

  • buscar arquivos mais antigos que uma data específica;
  • remover arquivos de diretórios temporários;
  • gerenciar perfis de usuário em máquinas remotas.

Boas práticas para automatizar a limpeza de perfis de usuário e arquivos temporários

Para que os scripts rodem bem em ambientes diferentes, siga estas dicas práticas:

Verifique se há sessões de usuário ativas antes de excluir perfis

Sem essa verificação, pode acabar excluindo uma conta em uso e interrompendo o trabalho de alguém.

Para evitar isso, use quser no CMD ou Get-Process -IncludeUserName no PowerShell e confirme se o usuário ainda está conectado.

Deixe contas de serviço e logins compartilhados fora da limpeza

Excluir contas usadas por serviços em segundo plano ou compartilhadas entre vários usuários pode interromper tarefas automatizadas.

A solução é excluir as contas de serviço da limpeza com um array de lista de permissões.

Proteja perfis recentes com limites de idade conservadores

Um perfil sem uso há algum tempo não é necessariamente descartável. Alguns perfis são criados para uso temporário, como para equipes remotas ou executivos.

Definir um limite mais folgado (por exemplo, 60 ou 90 dias) ao identificar perfis obsoletos ajuda a evitar a remoção acidental de contas válidas.

Faça rotação periódica dos logs para rastreabilidade e controle de armazenamento

Crie resumos das limpezas em arquivos locais ou compartilhamentos de rede para facilitar a resolução de problemas. Esses logs devem indicar quantos arquivos temporários e perfis de usuário o script removeu e quando.

Além disso, faça a rotação desses resumos para economizar espaço em disco, arquivando ou excluindo os logs mais antigos.

Como NinjaOne simplifica a limpeza remota de arquivos temporários e perfis

NinjaOne facilita manter os endpoints remotos limpos e saudáveis ao:

  • implantar e agendar scripts de limpeza nos endpoints;
  • acompanhar chaves de registro com a data da última limpeza e a quantidade de perfis excluídos;
  • alertar sobre janelas de limpeza perdidas ou falhas de script;
  • marcar dispositivos para correção em verificações de integridade com base no uso de disco;
  • gerar relatórios de cobertura e sucesso da limpeza entre os tenants.

Com NinjaOne, os MSPs automatizam a higiene de endpoints em escala e acompanham resultados em tempo real de várias bases de clientes em um único painel.

Melhore a higiene dos endpoints com a limpeza automatizada de perfis e arquivos temporários

Automatizar a remoção e a limpeza de arquivos temporários e perfis de usuário antigos é uma decisão inteligente para qualquer MSP. Tira o trabalho manual da manutenção de centenas de endpoints e garante desempenho consistente em vários ambientes de clientes.

Com limpezas agendadas, você evita de forma proativa problemas como lentidão do sistema e falta de espaço em disco.

Temas relacionados:

Recomendados para você

Pronto para simplificar as partes mais difíceis da TI?

Termos e condições NinjaOne

Ao clicar no botão “Aceito” abaixo, você indica sua aceitação dos seguintes termos legais, bem como dos nossos Termos de Uso:

  • Direitos de propriedade: A NinjaOne é proprietária e continuará a ser proprietária de todos os direitos, títulos e interesses relativos ao script (incluindo os direitos autorais). A NinjaOne está concedendo a você uma licença limitada para usar o script de acordo com os presentes termos legais.
  • Limitação de uso: Você só poderá usar o script para fins comerciais internos ou pessoais legítimos, sendo vedado compartilhar o script com terceiros.
  • Proibição de republicação: Em nenhuma circunstância você tem permissão para republicar o script em qualquer biblioteca de scripts pertencente ou sob o controle de qualquer outro fornecedor de software.
  • Isenção de responsabilidade da garantia: O script é fornecido “no estado em que se encontra” e “conforme disponível”, sem qualquer tipo de garantia. A NinjaOne não promete ou garante que o script estará livre de defeitos ou que atenderá às suas necessidades ou expectativas específicas.
  • Assunção de riscos: O uso do script é por sua própria conta e risco. Você reconhece que há certos riscos inerentes ao uso do script, e você compreende e assume cada um desses riscos.
  • Renúncia e isenção de responsabilidade: Você não responsabilizará a NinjaOne por consequências adversas ou não intencionais resultantes do seu uso do script e renunciará a quaisquer direitos ou tutelas legais que possa ter contra a NinjaOne em relação ao seu uso do script.
  • EULA: Se você for cliente da NinjaOne, o uso do script está sujeito ao Contrato de Licença de Usuário Final aplicável a você (EULA).