Limpar a Lixeira para todos os usuários no Windows Server 2008 R2

37

Qual é a maneira correta de limpar a lixeira de todos os usuários no Windows Server 2008 R2?

    
por Kyle Brandt 14.11.2011 / 15:32

7 respostas

29

Tanto quanto eu posso dizer, estes não são "oficiais" Microsoft suportado maneira de fazer isso. Existem duas opções. Um envolve a exclusão de c: \ $ Recycle.Bin e o outro é o script cleanmgr.exe para ser executado em cada logon de usuário.

O mais parecido com o suporte "oficial" para excluir c: \ $ Recycle.bin é deste MS KB , que faz referência ao XP e Vista, mas implica o comportamento esperado.

Exclusão imediata

Se você quiser que isso aconteça imediatamente, parece que você pode executar apenas rd /s c:\$Recycle.Bin e o Windows deve recriar as pastas necessárias na próxima vez em que elas forem necessárias. Acabei de testar isso rapidamente e parece funcionar, mas, obviamente, proceda com cautela.

Exclusão de script de logon recorrente

Você pode fazer isso com a ferramenta Limpeza de disco (cleanmgr.exe). Infelizmente, a Microsoft decidiu incluir isso com o conjunto de recursos "Desktop Experience", o que significa que você terá que instalar um monte de outras porcarias e reinicializações.

A alternativa é pegar os dois arquivos a seguir e movê-los para os locais especificados por Technet :

C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.1.7600.16385_none_c9392808773cd7da\cleanmgr.exe
C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.1.7600.16385_en-us_b9cb6194b257cc63\cleanmgr.exe.mui

Cleanmgr.exe deve ir em% systemroot% \ System32.

O Cleanmgr.exe.mui deve estar em% systemroot% \ System32 \ en-US.

A execução do cleanmgr sozinho não permite limpar a lixeira de todos, mas você pode usar / sageset e / sagerun para criar um script de logon para todos os usuários por meio do GPO que limpará a lixeira no próximo logon, conforme descrito aqui . Não é a coisa mais limpa, mas vai funcionar. O artigo vinculado é para o XP, mas a sintaxe permanece inalterada desde o Server 2008 R2.

    
por 14.11.2011 / 15:37
9

Eu não acho que haja uma maneira adequada documentada como as lixeiras para os usuários são mantidas separadas em seus perfis; isso também seria um risco à segurança, pois documentos ou itens da lixeira, se usados pelos usuários, poderiam permitir que certos documentos vazassem.

Pode ser possível criar scripts em um script privilegiado pelo administrador para executar e limpar arquivos da lixeira de cada perfil local (mas que ainda pode ser sincronizado com o servidor que mantém seus perfis se você tiver perfis móveis). Mas você precisa ter permissões e propriedade configuradas corretamente; Eu sei em nossos servidores O administrador não tem acesso adequado aos perfis no servidor de armazenamento; o administrador precisa apropriar-se do perfil e, quando terminar, devolver a propriedade ao usuário adequado ou os perfis não funcionarão mais adequadamente para eles.

Você pode tentar executar um processo no logoff que limpe o diretório de lixeira por usuário, mas isso também implica a exclusão acidental de algo que ele deseja recuperar mais tarde e agora desaparecerá, já que foi excluído no último logoff.

Provavelmente, a maneira "correta" de fazer isso é configurar cotas em estações de trabalho e servidores e, quando essa cota é atingida para armazenamento, o usuário aprende que precisa excluir itens da lixeira. Por causa da segurança, seria um problema de treinamento. Caso contrário, você precisaria de uma solução alternativa.

O @markm tinha uma sugestão de utilidade que parece fazer isso; Eu mantenho a afirmação de que não é uma maneira "adequada", já que é um complemento e não está embutido no Windows por padrão (embora eu não esteja surpreso que o utilitário de administração útil não esteja incluído.) O único outro problema que eu Se preocupar em usá-lo é que ele pode ter que ser executado em uma estação de trabalho e no servidor ou você pode ter problemas de sincronização de perfil com o que aparece onde. Parece que é suposto ser apenas uma mini-ferramenta para acessar a guia "limpeza de disco" no Windows.

Outro pensamento ... não testado ... seria usar o redirecionamento de pasta para redirecionar sua pasta de lixo para um servidor central. Eu classificaria isso como uma monumentalmente Bad Idea (tm), no entanto. Em seguida, você excluiria os arquivos desse diretório compartilhado. Vincular isso à rede, à configuração de segurança, etc. tornaria isso um kludge de prioridade de nível um que faria com que outros administradores fugissem antes da combustão espontânea, no entanto.

    
por 14.11.2011 / 15:41
6

Corri o TreeSize Free e vi que tinha 15gig na Lixeira, mas não consegui ver, provavelmente porque foi feito por um usuário que saiu há muito tempo. Mas no TreeSize Pro eu poderia deletá-lo, o que colocaria os dados na Lixeira que eu podia ver.

    
por 20.11.2012 / 17:01
3

Isso funciona para mim: -

Get-ChildItem "C:\'$Recycle.bin\" | Remove-Item -Recurse -Force

Ele removerá o recycle.bin; O Windows recriará a lixeira conforme necessário, ou seja, assim que um usuário excluir um novo arquivo.

Pode não ser o código mais elegante e pode haver uma maneira melhor de fazê-lo, mas ajudará a liberar espaço em um servidor congestionado. Você pode testá-lo usando a opção -WhatIf no comando Remove-Item.

Get-ChildItem "C:\'$Recycle.bin\" | Remove-Item -Recurse -Force -WhatIf

NB: cada unidade mantém sua própria lixeira; Então, você deseja substituir a letra da unidade pela unidade pela qual está executando esse comando ou usar o seguinte para todas as unidades locais:

Get-PSProvider -PSProvider FileSystem '
| Select-Object -ExpandProperty Drives '
| Where-Object { $_.DisplayRoot -notlike "\*" } '
| Select-Object -ExpandProperty Root '
| ForEach-Object { "$_'$Recycle.bin\" } '
| Where-Object { Test-Path -Path $_ -PathType Container } '
| ForEach-Object { Get-ChildItem -Path $_ -Force | Remove-Item -Recurse -Force }

Espero que isso ajude

    
por 21.10.2014 / 15:10
1

Eu tinha uma lixeira que mostrava mais de 4 GB de dados, mas não consegui removê-la. Entrou e encontrou um monte de perfis que não eram mais usados no servidor e os removeu nas propriedades do sistema - Advanced - User Profiles e agora a lixeira está vazia.

Obviamente, não exclua nenhuma conta que ainda esteja atual ou em uso, mas como administrador, você pode fazer isso dessa maneira.

    
por 27.08.2012 / 07:20
0

Eu gostei dessa solução porque é fácil entender o que ela está fazendo e funciona, mas para trabalhar de qualquer local onde você executar o comando, você precisa executar a mudança assim (adicionando um \ após o comando "drive_letter:") e para poder apagar a pasta de outros usuários .. você precisa adicionar o "-force" no final do comando remove-item. Além disso, como você está excluindo todas as pastas dentro de C: \ $ Recycle.bin \, não é necessário incluir "-recurse" ao obter os itens filhos. Então, este será o comando final que eu usaria:

Get-ChildItem "C: '$ Recycle.bin \" -Force | Remove-Item -Recurse -force -WhatIf

removendo -WhatIf se você quiser fazer mais do que apenas testar o comando

    
por 10.09.2015 / 20:52
0

Use o processo abaixo para remover todos os arquivos.

  1. faça login como usuário administrador & explore c drive
  2. desmarque ocultar o arquivo do sistema operacional protegido das opções de pasta
  3. procure a pasta $ Recycle.Bin
  4. excluir todos os arquivos & pastas
  5. esvazie sua lixeira

Todos os arquivos serão excluídos do disco.

    
por 16.12.2017 / 08:26