Qual è il modo corretto di cancellare il cestino per tutti gli utenti in Windows Server 2008 R2?
Qual è il modo corretto di cancellare il cestino per tutti gli utenti in Windows Server 2008 R2?
Risposte:
Per quanto ne so, non è un modo "ufficiale" supportato da Microsoft per farlo. Vi sono due opzioni. Uno prevede l'eliminazione di c: \ $ Recycle.Bin e l'altro è lo script cleanmgr.exe da eseguire ad ogni accesso dell'utente.
La cosa più vicina al supporto "ufficiale" per l'eliminazione di c: \ $ Recycle.bin proviene da questo MS KB , che fa riferimento a XP e Vista, ma implica il comportamento previsto.
Se vuoi che ciò accada immediatamente, sembra che tu possa semplicemente eseguire rd /s c:\$Recycle.Bin
e Windows dovrebbe ricreare le cartelle necessarie la prossima volta che sono necessarie. Ho appena testato questo rapidamente e sembra funzionare, ma - ovviamente - procedere con cautela.
Puoi farlo con lo strumento Pulizia disco (cleanmgr.exe). Sfortunatamente, Microsoft ha deciso di raggrupparlo con il set di funzionalità "Esperienza desktop", il che significa che dovrai installare un sacco di altre schifezze e riavviare.
L'alternativa è prendere i seguenti due file e spostarli nelle posizioni specificate per 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 dovrebbe andare in% systemroot% \ System32.
Cleanmgr.exe.mui dovrebbe andare in% systemroot% \ System32 \ en-US.
L'esecuzione di cleanmgr da solo non ti permetterà di cancellare il cestino di tutti, ma puoi usare / sageset e / sagerun per creare uno script di accesso che venga eseguito per tutti gli utenti tramite GPO che cancellerà il loro cestino al prossimo accesso, come descritto qui . Non è la cosa più pulita, ma funzionerà. L'articolo collegato è per XP, ma la sintassi è invariata rispetto a Server 2008 R2.
cleanmgr
da eseguire ad ogni login sia la cosa più vicina a un modo MS ufficiale di farlo. L'alternativa è eliminare la cartella del cestino su ciascun profilo. Si deve ricreare sul successivo accesso per ogni utente, ma sarei un po 'stanco di provare questo in produzione.
Non credo che sia documentato un modo corretto poiché i contenitori per il riciclaggio per gli utenti sono tenuti separati nei loro profili; ciò costituirebbe anche un rischio per la sicurezza, in quanto documenti o elementi nel cestino, se esaminati dagli utenti, potrebbero consentire la fuoriuscita di determinati documenti.
Potrebbe essere possibile eseguire lo script di uno script con privilegi di amministratore per eseguire e cancellare i file dal cestino di ciascun profilo locale (ma potrebbe essere comunque sincronizzato con il server che contiene i profili se si dispone di profili di roaming). Ma devi avere le autorizzazioni e la proprietà impostate correttamente; So che sui nostri server l'amministratore non ha un accesso adeguato ai profili sul server di archiviazione; l'amministratore deve assumere la proprietà del profilo e, quando avremo finito, restituirà la proprietà all'utente corretto altrimenti i profili non funzioneranno più correttamente per loro.
Potresti provare a eseguire un processo alla disconnessione che cancella la directory del cestino per utente, ma che comporta anche l'eliminazione accidentale di qualcosa che vogliono recuperare in seguito e ora scomparirà da quando è stato eliminato all'ultima disconnessione.
Probabilmente il modo "corretto" per farlo è configurare le quote su workstation e server e quando tale quota viene colpita per l'archiviazione, l'utente impara che devono eliminare gli elementi dal cestino. Per motivi di sicurezza sarebbe un problema di formazione. Altrimenti avresti bisogno di una soluzione alternativa.
@markm aveva un suggerimento di utilità che sembra fare questo; Sostengo l'affermazione che non è un modo "corretto" poiché è un componente aggiuntivo e non è integrato in Windows per impostazione predefinita (anche se non mi sorprende che l'utilità di amministrazione utile non sia inclusa.) L'unico altro problema che ho ' d preoccuparsi di usarlo è che potrebbe essere necessario eseguirlo su una workstation e sul server o si potrebbero avere problemi di sincronizzazione del profilo con ciò che appare dove. Sembra che dovrebbe essere solo un mini-strumento per accedere alla scheda "pulizia del disco" in Windows.
Un altro pensiero ... non testato ... sarebbe quello di utilizzare il reindirizzamento delle cartelle per reindirizzare la loro cartella cestino su un server centrale. Lo classificherei come una monumentalmente cattiva idea (tm), tuttavia. Quindi elimineresti i loro file da quella directory condivisa. Collegare questo tramite la rete, la configurazione della sicurezza, ecc. Renderebbe questo un livello di priorità kludge che farebbe scappare altri amministratori di sistema prima di bruciare spontaneamente, comunque.
Ho eseguito TreeSize Free e ho visto che avevo 15 grammi nel Cestino, ma non riuscivo a vederlo, probabilmente perché era stato fatto da un utente scomparso da tempo. Ma in TreeSize Pro ho potuto eliminarlo, che ha messo i dati nel Cestino che ho potuto vedere.
Questo funziona per me: -
Get-ChildItem "C:\`$Recycle.bin\" | Remove-Item -Recurse -Force
Rimuoverà il recycle.bin; Windows ricreerà il cestino come richiesto, ovvero non appena un utente elimina un nuovo file.
Potrebbe non essere il codice più elegante e potrebbe esserci un modo migliore per farlo, ma aiuterà a liberare spazio su un server congestionato. Puoi testarlo usando l'opzione -WhatIf sul comando Rimuovi-elemento.
Get-ChildItem "C:\`$Recycle.bin\" | Remove-Item -Recurse -Force -WhatIf
NB: ogni unità mantiene il proprio cestino; quindi desideri sostituire la lettera di unità con qualsiasi unità per cui stai eseguendo questo comando, oppure puoi utilizzare quanto segue per tutte le unità locali:
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 }
Spero che sia di aiuto
Avevo un cestino che mostrava oltre 4 GB di dati ma non ero in grado di cancellarlo. È entrato e ha trovato un sacco di profili che non erano più utilizzati sul server e li ha rimossi sotto le proprietà di sistema - Avanzate - Profili utente e ora il cestino è vuoto.
Ovviamente non eliminare alcun account ancora in uso o in uso ma come amministratore puoi farlo in questo modo.
Mi è piaciuta questa soluzione perché è facile capire cosa sta facendo e fa il lavoro, ma per lavorare da qualsiasi posizione da cui si esegue il comando, è necessario eseguirlo cambiarlo in questo modo (aggiungendo un \ dopo la "drive_letter: ") e per poter eliminare quelle cartelle da altri utenti .. devi aggiungere" -force "alla fine del comando remove-item. Inoltre, quando si eliminano tutte le cartelle in C: \ $ Recycle.bin \ non è necessario includere "-recurse" quando si ottengono gli elementi figlio. Quindi questo sarà il comando finale che vorrei usare invece:
Get-ChildItem "C:` $ Recycle.bin \ "-Force | Remove-Item -Recurse -force -WhatIf
rimuovere -WhatIf se si desidera fare qualcosa di più che testare solo il comando
Utilizzare la procedura seguente per rimuovere tutti i file.
Tutti i file verranno eliminati dal disco.