Очистіть кошик для всіх користувачів у Windows Server 2008 R2


Відповіді:


34

Наскільки я можу сказати, це не "офіційний" спосіб, який підтримує Microsoft. Є два варіанти. Один включає видалення c: \ $ Recycle.Bin, а інший - сценарій cleanmgr.exe для запуску під час кожного входу користувача.

Найближча до "офіційної" підтримки для видалення c: \ $ Recycle.bin - це з цієї MS KB , яка посилається на XP та Vista, але передбачає очікувану поведінку.


Негайне видалення

Якщо ви хочете, щоб це сталося негайно, вам здається, що ви можете просто запуститись, rd /s c:\$Recycle.Binі Windows повинен створити необхідні папки наступного разу, коли вони знадобляться. Я просто тестував це швидко, і, здається, працює, але, очевидно, - обережно.


Повторне видалення при вході в сценарій

Це можна зробити за допомогою інструмента очищення диска (cleanmgr.exe). На жаль, Microsoft вирішила поєднати це з набором функцій "Настільний досвід", тобто вам доведеться встановити купу інших лайнів і перезавантажити.

Альтернатива - схопити наступні два файли та перемістити їх у вказані місця на 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 має перейти в% systemroot% \ System32.

Cleanmgr.exe.mui має перейти у% systemroot% \ System32 \ en-US.

Один лише запуск Cleanmgr не дозволить вам очистити кошик для всіх, але ви можете використовувати / sageset та / sagerun для створення сценарію входу, який працює для всіх користувачів через GPO, який очистить їх кошик для наступного входу, як описано тут . Це не найчистіша річ, але вона спрацює. Пов'язана стаття призначена для XP, але синтаксис є незмінним, ніж для сервера 2008 R2.


Трохи досліджував це, було це посилання, яке трохи деталізує. social.technet.microsoft.com/Forums/en-US/winserverManagement/…
Bart Silverstrim

Протестовано, це не зрозуміло для всіх користувачів. Не дуже хочеться зв'язуватися з нашим підрядником і дозволити йому увійти, щоб видалити деякі файли ...
Кайл Брандт

Так, я можу підтвердити таку поведінку. Здається, що будь-який сценарій cleanmgrдля запуску при кожному вході є найбільш близьким до офіційного способу MS зробити це. Альтернативою є видування папки для сміття у кожному профілі. Він повинен відтворити його на наступному вході для кожного користувача, але я трохи втомлюся спробувати це у виробництві.
MDMarra

Детальніше про автоматизацію CleanMgr тут ... stackoverflow.com/a/35214197/80161
Nathan Hartley

9

Я не думаю, що існує належним чином задокументовано, оскільки кошики для користувачів зберігаються окремо у своїх профілях; це також може бути небезпечним для безпеки, оскільки документи або предмети в кошику, якщо вони будуть використані користувачами, можуть дати можливість витікати певні документи.

Можливо, сценарій з привілейованим адміністратором сценарієм може запускати та очищати файли зі сміття кожного локального профілю (але це все ще може бути синхронізовано на сервері, що містить ваші профілі, якщо у вас є роумінгові профілі). Але вам потрібно правильно встановити дозволи та право власності; Я знаю, що на наших серверах Адміністратор не має належного доступу до профілів на сервері зберігання даних; адміністратор повинен взяти на себе право власності на профіль, і коли ми закінчимо, поверніть право власності на належного користувача або в іншому випадку профілі для них більше не працюють належним чином.

Ви можете спробувати запустити процес при вході в систему, який очищає каталог кошика для кожного користувача, але це також спричиняє випадкове видалення чогось, що вони хочуть відновити пізніше, і тепер його більше не буде, оскільки він був видалений нарешті при виході з системи.

Можливо, "правильний" спосіб це зробити - це налаштувати квоти на робочих станціях та серверах, і коли ця квота потрапила для зберігання, користувач дізнається, що вони повинні видалити елементи з кошика. Через безпеку це буде питанням навчання. Інакше вам знадобиться вирішити проблему.

@markm мав пропозицію утиліти, яка, здається, робить це; Я заперечую твердження, що це не "правильний" спосіб, оскільки це надбудова і не вбудований у Windows за замовчуванням (хоча я не здивований, що корисна утиліта адміністрування не включена.) Єдина інша проблема, яку я " Будьте хвилюєтесь щодо його використання в тому, що це, можливо, доведеться запускати на робочій станції та на сервері, або у вас можуть виникнути проблеми синхронізації профілю з тим, що з’являється де. Схоже, це повинен бути лише міні-інструмент для доступу до вкладки "очищення диска" в Windows.

Іншою думкою ... неперевіреною ... було б використовувати переадресацію папок для перенаправлення своєї папки на смітник на центральний сервер. Я б класифікував це як монументально погана ідея (tm), однак. Потім ви видалите їх файли з цього спільного каталогу. Пов'язуючи це через мережу, налаштування безпеки тощо, це зробить цей рівень першочерговим хитком, що змусить інших сисадмінів тікати перед тим, як самовільно спалити.


Запуск очищення диска як підвищений користувач не потрапляє у кошик для всіх?
MDMarra

Я сподіваюся, навіть якщо це не буде прибирати PITA. У спільному середовищі, наприклад, термінальному сервері, який має потенціал для гнучкості.
Роб Моїр

Гм, перехрестя. Схоже, мені потрібно це перевірити.
MDMarra

Я видалив його, коли відповідь @ MarkM прозвучала найбільш канонічно розумно, але це здається, що він не працює для всіх користувачів після тестування KyleBrandt. Я думаю, що немає документально підтвердженого способу зробити це належним чином через безпеку, швидше за все ... можливість видалення речей інших користувачів, оскільки сміття є частиною їхнього (роумінгового) профілю, може становити загрозу безпеці.
Барт Сільверстрім

Видалили свою відповідь, тобто.
Барт Сільверстрім

6

Я запустив TreeSize Free і побачив, що у мене в кошику 15 кілограм, але я не міг його побачити, ймовірно, тому, що це робив давно відійшов користувач. Але в TreeSize Pro я міг її видалити, що помістило дані в кошик, які я міг бачити.


7
WinDirStat міг зробити це безкоштовно. Це мій перехід на інструмент, коли мені потрібно розібратися, чим використовується весь простір на жорсткому диску. Ви можете клацнути правою кнопкою миші файл або папку і видалити їх у коробку для сміття або назавжди, також можна клацнути правою кнопкою миші та відкрити там вікно Провідника або командний рядок. Це також не має ніяких труднощів щодо того, щоб показати вам усіх користувачів кошиків, хоча ви повинні шукати SID-адреси та їх відповідати кожному користувачеві.
JamesH

3

Це працює для мене: -

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

Це видалить recycle.bin; Windows заново створить кошик для сміття, тобто, як тільки користувач видалить новий файл.

Можливо, це не найвишуканіший код, і це може бути кращий спосіб зробити це, але це допоможе звільнити місце на перевантаженому сервері. Ви можете перевірити його за допомогою перемикача -WhatIf в команді Remove-Item.

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

Примітка: кожен привід підтримує свій кошик; тож ви хочете замінити літеру диска на той диск, для якого використовується ця команда, або ви можете використовувати наступне для всіх локальних дисків:

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 }

Сподіваюся, це допомагає


1

У мене був кошик, який показував понад 4 ГБ даних, але я не зміг його очистити. Зайшов і знайшов купу профілів, які більше не використовувались на сервері, і видалив їх у системних властивостях - Advanced - User Profiles, і тепер кошик порожній.

Очевидно, не видаляйте жодного облікового запису, який досі є поточним або використовується, але як адміністратор, ви можете це зробити так.


0

Це рішення мені сподобалось, тому що це легко зрозуміти, що він робить, і це робить роботу, але для того, щоб працювати з будь-якого місця, з якого ви запускаєте команду, потрібно запустити її змінити так (додавши \ після "drive_letter: ") і щоб мати змогу видалити ці папки від інших користувачів .. вам потрібно додати" -force "в кінці команди delete element. Крім того, коли ви видаляєте всі папки в межах C: \ $ Recycle.bin \, вам не потрібно включати "-recurse" при отриманні дочірніх елементів. Отже, це буде остаточна команда, яку я б використав:

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

видалення -Що якщо ви хочете зробити більше, ніж лише тестування команди


0

Використовуйте процес нижче, щоб видалити всі файли.

  1. увійдіть як адміністратор та досліджуйте c диск
  2. невірно скрити захищений файл операційної системи від параметрів папки
  3. перегляньте папку $ Recycle.Bin
  4. видалити всі файли та папки
  5. спорожніть кошик

Усі файли будуть видалені з диска.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.