Qual é a maneira correta de limpar a lixeira para todos os usuários no Windows Server 2008 R2?
Qual é a maneira correta de limpar a lixeira para todos os usuários no Windows Server 2008 R2?
Respostas:
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.
Se você deseja que isso aconteça imediatamente, parece que você pode simplesmente executar rd /s c:\$Recycle.Bin
e 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.
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.
cleanmgr
a 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.
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.
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.
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
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.
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
Use o processo abaixo para remover todos os arquivos.
Todos os arquivos serão excluídos do disco.