Приложение. Изменения в перемещаемых профилях пользователей в Windows 2000.
Примеры недостатков алгоритма в Windows NT 4.0
При использовании Windows NT 4.0 возникает проблема, когда пользователь одновременно выполняет вход в систему на нескольких компьютерах. Продолжая упомянутый выше пример:
- Пользователь входит в систему на компьютере А.
- Пользователь входит в систему на компьютере Б.
- Пользователь создает документ на компьютере А и сохраняет его в профиле.
- Пользователь выходит из системы на компьютере А.
- Пользователь выходит из системы на компьютере Б.
Документ, созданный пользователем на третьем этапе удаляется, так как с точки зрения компьютера Б главный профиль хранится локально. Лишние файлы на сервере должны удаляться, чтобы серверная копия стала зеркалом локальной.
Алгоритм Windows 2000 сохранит документ, произведя сравнение времени создания документа со временем загрузки профиля. Если документ, находящийся на сервере, был создан или изменен после загрузки профиля, следовательно, он был получен из другого источника и должен быть сохранен.
Похожая проблема может возникнуть при редактировании файлов. Допустим, в папке "Мои документы" серверной копии профиля лежит файл Реферат.doc:
- Пользователь входит в систему на компьютере А.
- Пользователь входит в систему на компьютере Б.
- Пользователь редактирует Реферат.doc на компьютере А.
- Пользователь выходит из системы на компьютере А.
- Пользователь выходит из системы на компьютере Б.
Изменения, внесенные в реферат на компьютере А, пропадут. При выходе из системы Б компьютер перезапишет новую версию документа старой, полагая, что именно на нем расположен главный профиль.
В Windows 2000 алгоритм сохранит изменения в документе, отслеживая дату последнего изменения файла. Как следствие, работа пользователей становится более комфортной.
Обзор алгоритма Windows 2000
Операционная система Windows 2000 производит объединение профилей на файловом уровне. Результирующий профиль содержит все файлы серверного и локального профилей. Если некий файл находится как в серверном, так и в локальном профиле, то будет использован файл, измененный в последнюю очередь. Это означает, что новые файлы не удаляются, а обновленные версии существующих файлов не перезаписываются более старыми версиями. Таким образом, Windows 2000 предлагает намного более высокий уровень детализации при работе с файлами, чем Windows NT 4.0.
При обновлении файла или документа сравниваются даты последних изменений исходного файла и файла в папке назначения. Если последний новее, то он не будет перезаписан. При входе пользователя в систему отмечается время, которое затем используется для контроля изменений, происходящих в файлах профиля на протяжении сеанса. Допустим, в папке "Мои документы" серверной копии профиля лежит файл Доклад.doc, которого нет в локальном профиле. Либо это новый файл с другой машины, либо он ранее существовал в локальном профиле, но был удален пользователем. Зная время загрузки профиля, можно определить, был ли изменен файл Доклад.doc после входа в систему. Если да, то его нужно сохранить, так как очевидно, изменения были внесены с другого компьютера. Если файл уже был на сервере до входа в систему, то он бы скопировался в профиль на машину клиента. Поскольку файла там нет, значит, пользователь удалил его за ненадобностью. Такой файл на сервере сохранен не будет.
Кроме того, может возникнуть необходимость удаления файлов из локального кэша профиля, чтобы файлы, удаленные между сеансами, не попадали в серверную копию профиля. Рассмотрим такой сценарий:
- Пользователь входит в систему на компьютере А.
- Пользователь редактирует документ на компьютере А.
- Пользователь входит в систему на компьютере Б.
- Пользователь выходит из системы на компьютере Б. Копия документа сохраняется в локальном профиле.
- Пользователь удаляет документ и выходит из системы на компьютере А.
Кэшированный профиль синхронизируется с копией на сервере при входе в систему, чтобы обеспечить удаление файлов. Если файлы в локальном кэше не редактировались с момента последнего выхода из системы и отсутствуют на сервере, они подлежат удалению. Отслеживая изменения файлов, Windows 2000 производит объединение профилей.
Некоторые файлы копируются всегда, так как их дата меняется при выгрузке профиля. Файлы ntuser.dat и ntuser.ini копируются на сервер в любом случае.