Что делать, если пользователи забывают очищать жесткие диски

Благодаря большой емкости современных жестких дисков пользователи клиентских компьютеров редко жалуются на нехватку дискового пространства. В результате легко забыть о чистке диска и других операциях по обслуживанию, необходимых для бесперебойной и эффективной работы Windows XP и Windows 2000 Professional.

Фрагментация диска и лишние временные файлы плохо влияют на работу системы. В состав XP и Windows 2000 Pro входят утилиты Disk Cleanup и Disk Defragmenter, но, как правило, уговаривать пользователей применять эти инструменты бесполезно. А если штат предприятия, как это часто случается, недостаточно укомплектован ИТ-персоналом, трудно найти желающих сделать эту работу за пользователей. В XP можно автоматически запускать как Disk Cleanup, так и Disk Defragmenter и использовать встроенный планировщик заданий (Scheduled Tasks) для регулярной очистки и дефрагментации диска. В Windows 2000 Pro можно автоматизировать запуск Disk Cleanup, но не Disk Defragmenter, который работает на базе консоли Microsoft Management Console (MMC).

Поскольку перед дефрагментацией неиспользуемые файлы желательно удалить, сначала я расскажу о том, как автоматизировать запуск инструмента Disk Cleanup. Но перед тем как начать, необходимо упомянуть об опасности потери данных в процессе дефрагментации. Если администратор не уверен в безопасности автоматизированной дефрагментации клиентов, лучше выполнить эту операцию вручную.

Очистка диска

Удалить ненужные файлы в XP и Windows 2000 Pro можно с помощью Disk Cleanup. Многим наверняка приходилось работать с этим инструментом через графический интерфейс, но его можно запустить и из командной строки. С помощью параметров командной строки (ключей) Disk Cleanup можно настроить на удаление файлов определенных типов. Поначалу работа с командной строкой может показаться слишком сложной, но те, кто освоит ее, смогут убедиться в эффективности данного метода.

Экран 1. Выбор файлов для удаления в окне Disk Cleanup Settings

При запуске Disk Cleanup из командной строки используется команда Cleanmgr, которая имеет три параметра: /d, /sageset и /sagerun. Автоматизация удаления файлов с помощью Cleanmgr — двухэтапный процесс. Сначала команда запускается с параметрами /d и /sageset, чтобы указать набор файлов, подлежащих удалению, а затем выполняется повторно с параметром /sagerun для проведения собственно очистки.

Параметр /d позволяет выбрать диск, с которого будут удалены ненужные файлы. Параметр /sageset используется для выбора типов файлов, которые следует удалить (например, временные файлы установки, старые файлы Chkdsk), и присвоения данному набору типов файлов уникального номера. Синтаксис команды с параметрами /d и /sageset:

cleanmgr /d X: /sageset:n

где X — символ целевого диска, а n — уникальное числовое значение от 0 до 65535. Disk Cleanup хранит набор файлов и связанный с ним номер в реестре.

Параметр /sagerun используется для обработки утилитой Disk Cleanup набора файлов, указанных параметром /sageset. Команда имеет следующий вид:

cleanmgr /sagerun:n

где n — номер удаляемого набора файлов. При запуске команды с параметром /sagerun параметр /d не применяется.

Покажем, как организовать группу файлов для удаления, а затем применить к ним Disk Cleanup. Необходимо открыть окно командной строки и ввести команду

cleanmgr /d C: /sageset:100

затем нажать клавишу Enter. На экране 1 показано диалоговое окно Disk Cleanup Settings. В этом диалоговом окне следует выбрать типы файлов, подлежащих удалению. По щелчку на кнопке OK Disk Cleanup сохранит эту группу файлов в реестре под номером 100. Затем нужно ввести команду

cleanmgr /sagerun:100

чтобы автоматизировать применение инструмента Disk Cleanup к этим файлам. Таким образом, процедура весьма проста.

Параметры выбора файлов и периодичности операций

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

Временные файлы. В эту группу входят временные файлы процедур установки, Internet, Windows и временные автономные (offline) файлы. Файлы этой категории можно удалять без колебаний.

Рабочие файлы. К ним относятся старые файлы Chkdsk и файлы каталогов для индексации контента. Их также можно удалить, не опасаясь нежелательных последствий.

Файлы, выбираемые пользователем. В эту группу входят файлы программ, загруженные из сети, файлы в корзине и автономные файлы. В некоторых случаях эти файлы для автоматического удаления недоступны. Загружаемые из сети программные файлы, сохраняемые в папке %systemroot%Downloaded Program Files, обычно представляют собой элементы управления ActiveX и апплеты Java, которые загружаются браузером при посещении некоторых сайтов. Их удаление не причинит ощутимого вреда, так как браузер может загрузить их повторно. Однако перед удалением необходимо учесть размер элементов управления и апплетов и частоту их применения.

Корзину все используют по-разному. Одни пользователи почти не вспоминают о ее существовании, а другие обращаются к ней ежедневно как к обычной папке файловой системы. Следует учесть привычки пользователей второй группы, прежде чем автоматически удалять содержимое корзины.

В автономных (offline) хранилищах файлов содержатся копии сетевых файлов, помещенные туда вручную пользователями или в результате применения групповой политики. Эти папки лучше не трогать, если только пользователи не накапливают слишком много файлов, что создает проблемы для администратора.

Разобравшись в тонкостях различных вариантов, необходимо установить частоту выполнения операций очистки. Например, во многих организациях считается, что достаточно удалять временные файлы раз в неделю, но еженедельное удаление файлов, выбранных пользователем, — явный перегиб. Если определенные файлы требуется удалять чаще других, то необходимо составить несколько селекционных наборов, присвоив каждому из них уникальный номер с помощью параметра /sageset. Необходимо внимательно следить за номерами и соответствующими параметрами, так как восстановить эту информацию непросто.

Параметры реестра для /Sageset и /Sagerun

Назначенные пользователем параметры выбора файлов хранятся в разделе реестра HKEY_LOCAL_MACHINE SOFTWAREMicrosoft WindowsCurrentVersionExplorerVolumeCaches на клиентской машине. Подразделы внутри этого раздела соответствуют доступным параметрам в Disk Cleanup. Параметры StateFlags в этих подразделах соответствуют числу, указанному пользователем в параметре /sageset. Например, на экране 2 показан подраздел Internet Cache Files. В этом подразделе заслуживают внимания параметр StateFlags0100, который был настроен в соответствии с ранее данными мною рекомендациями, и StateFlags2112, настроенный с помощью другой операции /sageset. Значение 2 типа DWORD указывает утилите Disk Cleanup, что необходимо удалить файлы кэша Internet при запуске команды Cleanmgr с параметром /sagerun:2112. Элемент StateFlags со значением 2 типа DWORD указывает, что утилите Disk Cleanup не следует удалять файлы, связанные с текущим подразделом реестра.

Экран 2. Параметры реестра для Cleanmgr

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

Прежде чем рассмотреть порядок работы с Disk Defragmenter, следует упомянуть еще одну функцию Disk Cleanup: сжатие файлов. Сжав старые файлы, можно сэкономить дисковое пространство. Однако современные диски настолько велики, что трудно найти весомые аргументы в пользу сжатия файлов. Поэтому решение данного вопроса остается на усмотрение каждой организации.

Disk Defragmenter

К сожалению, для пользователей Windows 2000 Pro один из недостатков встроенного инструмента Disk Defragmenter заключается в том, что его нельзя регулярно применять с помощью сценария или планового задания. К счастью, в XP появилась команда Defrag.exe, которая устраняет это ограничение. Базовый синтаксис команды:

defrag.exe volume

где volume — дисковый том или точка монтирования, которую требуется дефрагментировать. Помимо обязательного аргумента volume, команда defrag.exe имеет три факультативных параметра: /a (только анализировать), /f (принудительная дефрагментация) и /v (подробный вывод).

Для автоматизации Disk Defragmenter необходимо использовать параметр /f. Этот параметр заставляет Disk Defragmenter продолжать работу, даже если свободное дисковое пространство составляет менее 15% или текущий уровень фрагментации вполне приемлем. В частности, команду

defrag.exe C: /f

можно использовать в командном файле или плановом задании. Из-за ресурсоемкости процедуры дефрагментации запуск командного файла или задания следует планировать на нерабочие часы. Не стоит запускать Disk Defragmenter из сценария регистрации.

Чтобы следить за ходом дефрагментации, можно составить сценарий, в котором используются значения ERRORLEVEL, возвращаемые командой defrag.exe. Значения ERRORLEVEL оповещают о нехватке пространства на диске и других проблемах, способных помешать успешному завершению дефрагментации. Они также могут сообщить об успешном выполнении операции. В статье Microsoft «How to Provide Event Logging for the Disk Defragmenter Utility with Windows Script Host» рассказывается о том, как использовать Windows Script Host (WSH) для экстраполяции значений ERRORLEVEL и занесения записей в журнал событий Windows.

Если администратор все же намерен автоматизировать дефрагментацию клиентов Windows 2000 Pro, то можно использовать утилиту независимого поставщика. Даже если клиенты работают с XP, можно применить утилиту независимого поставщика, чтобы расширить функциональность и повысить масштабируемость. В продаже имеются такие утилиты дефрагментации, как Diskeeper 8.0 компании Executive Software, O&O Defrag 6.0 компании NORTHERN Parklife, PerfectDisk 6.0 компании Raxco Software и Defrag Manager 2.5 компании Winternals Software.

Превентивный подход — гарантия высокой производительности и стабильности.

Проблема нехватки дискового пространства перестала быть актуальной, но чистый дефрагментированный диск приносит пользователям другие преимущества. Автоматизированное регулярное удаление ненужных файлов и упорядочение оставшихся позволит освободить время администратора для решения более важных задач.

Эд Рот — редактор Windows & .NET Magazine. С ним можно связаться по адресу: eroth@winnetmag.com

Поделитесь материалом с коллегами и друзьями