Limpe a lixeira para todos os usuários no Windows Server 2008 R2

Respostas:

34

Até onde eu sei, essa não é uma maneira "oficial" suportada pela Microsoft de fazer isso. Existem duas opções. Um envolve a exclusão de c: \ $ Recycle.Bin e o outro é o script cleanmgr.exe para executar em cada logon do usuário.

A coisa mais próxima do suporte "oficial" para excluir c: \ $ Recycle.bin é deste MS KB , que faz referência ao XP e ao Vista, mas implica o comportamento esperado.


Exclusão imediata

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


Exclusão recorrente de script de logon

Você pode fazer isso com a ferramenta Limpeza de disco (cleanmgr.exe). Infelizmente, a Microsoft decidiu empacotar isso com o conjunto de recursos "Desktop Experience", o que significa que você precisará instalar várias outras porcarias e reiniciar.

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 entrar em% systemroot% \ System32.

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

Executar o cleanmgr sozinho não permitirá que você limpe a lixeira de todos, mas é possível usar / sageset e / sagerun para criar um script de logon que seja executado para todos os usuários via GPO que limparão a lixeira no próximo logon, conforme descrito aqui . Não é a coisa mais limpa, mas vai funcionar. O artigo vinculado é para XP, mas a sintaxe é inalterada a partir do Server 2008 R2.

MDMarra
fonte
Fiz uma pequena pesquisa, havia esse link que elabora um pouco. social.technet.microsoft.com/Forums/en-US/winserverManagement/…
Bart Silverstrim
Testado, isso não está claro para todos os usuários. Realmente não quero ter que entrar em contato com o nosso contratante e que ele faça o login apenas para apagar alguns arquivos ...
Kyle Brandt
Sim, posso confirmar esse comportamento também. Parece que o script cleanmgra ser executado em cada login é a coisa mais próxima de uma maneira oficial da MS de fazer isso. A alternativa é afastar a pasta da lixeira em cada perfil. Ele deve recriá-lo no próximo login para cada usuário, mas eu ficaria um pouco cansado de tentar isso na produção.
MDMarra
Mais em automatizar cleanmgr aqui ... stackoverflow.com/a/35214197/80161
Nathan Hartley
9

Não acho que exista uma maneira adequada de documentar, pois as lixeiras dos usuários são mantidas separadas em seus perfis; isso também seria um risco à segurança, porque documentos ou itens na lixeira, se utilizados pelos usuários, poderiam permitir o vazamento de determinados documentos.

Pode ser possível criar um script com script com privilégios de administrador para executar e limpar arquivos da lixeira de cada perfil local (mas isso 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 definidas adequadamente; Sei nos nossos servidores que o administrador não tem acesso adequado aos perfis no servidor de armazenamento; o administrador precisa se apropriar do perfil e, quando terminar, devolva a propriedade ao usuário adequado, caso contrário, os perfis não funcionarão mais para ele.

Você pode tentar executar um processo no logoff que limpa o diretório de lixeira por usuário, mas isso também implica em excluir acidentalmente algo que ele deseja recuperar mais tarde e agora desaparecerá desde 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 teve uma sugestão de utilidade que parece fazer isso; Eu mantenho a afirmação de que não é uma maneira "adequada", pois é um complemento e não é incorporado ao Windows por padrão (embora não esteja surpreso que o utilitário de administração útil não esteja incluído.) Se você se preocupa em usá-lo, talvez ele precise ser executado em uma estação de trabalho e no servidor ou você possa ter problemas de sincronização de perfil com o que aparece onde. Parece que é 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. No entanto, eu classificaria isso como uma má ideia monumentalmente (tm). Em seguida, você excluiria os arquivos desse diretório compartilhado. Vincular isso pela rede, configuração de segurança etc. tornaria isso um kludge de prioridade de nível um que faria com que outros administradores de sistema fugissem antes de entrar em combustão espontânea.

Bart Silverstrim
fonte
A limpeza do disco é executada porque um usuário elevado não atinge a lixeira de todos?
MDMarra
Eu meio que espero que nem mesmo arrume uma PITA. Em um ambiente compartilhado, como um servidor de terminal com potencial para maldade.
precisa
Hum, interessante. Parece que eu preciso testar isso.
MDMarra
Excluí-o quando a resposta do @ MarkM soou mais canonicamente razoável, mas parece que não funciona para todos os usuários após o teste do KyleBrandt. Estou pensando que não há uma maneira documentada de fazer isso corretamente devido à segurança, provavelmente ... a capacidade de excluir as coisas de outros usuários, pois o lixo faz parte do perfil (móvel) pode ser um risco à segurança.
Bart Silverstrim
Excluiu minha resposta, é isso.
Bart Silverstrim
6

Corri o TreeSize Free e vi que tinha 15gigs na Lixeira, mas não consegui vê-lo, provavelmente porque foi feito por um usuário que já partiu há muito tempo. Mas no TreeSize Pro eu poderia excluí-lo, colocando os dados na Lixeira que eu podia ver.

Raio
fonte
7
WinDirStat poderia ter feito isso de graça. É minha ferramenta de ir quando preciso descobrir o que está usando todo o espaço em um disco rígido. Você pode clicar com o botão direito do mouse em um arquivo ou pasta e excluí-lo da lixeira ou permanentemente; também pode clicar com o botão direito do mouse e abrir uma janela do Explorer ou um prompt de comando. Ele também não tem escrúpulos em mostrar a todos os Lixeiras dos usuários, embora seja necessário procurar os SIDs e combiná-los com cada usuário.
precisa saber é
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 isso 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; portanto, você deseja substituir a letra da unidade por qualquer unidade para a qual esteja executando este 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 isto ajude

K Clethero
fonte
1

Eu tinha uma lixeira que mostrava mais de 4 GB de dados, mas não consegui limpá-la. Entrou e encontrou vários perfis que não eram mais usados ​​no servidor e os removeu nas propriedades do sistema - Avançado - Perfis de usuário e agora a lixeira está vazia.

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

Andrew
fonte
0

Gostei dessa solução porque é fácil entender o que está fazendo e faz o trabalho, mas, para trabalhar em qualquer local em que você executa o comando, é necessário executá-lo da seguinte maneira (adicionando \ após o "drive_letter: ") e para poder excluir essas pastas 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 em C: \ $ Recycle.bin \, não precisa incluir "-recurse" ao obter os itens filhos. Portanto, 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

Mike
fonte
0

Use o processo abaixo para remover todos os arquivos.

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

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

Rajnish Pati
fonte