Новые служебные профили операционной системы
В Windows XP представлены три новых профиля для нужд системы.
- LocalService
- NetworkService
- System
Профили LocalService и NetworkService
Профили LocalService и NetworkService автоматически создаются операционной системой Windows XP для двух одноименных встроенных учетных записей. Диспетчер служб использует эти учетные записи для обеспечения тех сервисов, которым не требуется запуск из-под локальной учетной записи. Эти два профиля, по сути, являются обычными профилями пользователей, однако они жизненно необходимы для функционирования системы. Как следствие, к этим профилям отношение немного иное:
- LocalService и NetworkService не отображаются в списке профилей в свойствах системы.
- Оба профиля по умолчанию расположены в папке %systemroot%\Documents and Settings, но являются максимально скрытыми, и поэтому не видны.
Профиль System
Приложение или служба могут использовать функцию API LoadUserProfile, чтобы загрузить профиль пользователя. В случае загрузки профиля локальной системы (System), Windows 2000 создавала профиль %computername%$, где %computername% – имя локального компьютера. Это могло вызвать проблемы у некоторых приложений, т.к. в зависимости от того, загружен ли профиль System, его раздел HKEY_CURRENT_USER мог соответствовать различным разделам реестра: HKEY_USERS\S-1-5-18 или HKEY_USERS\.DEFAULT (поскольку, профиль System уже мог быть загружен в один из этих разделов другим компонентом операционной системы).
Во избежание подобной ситуации в Windows XP создан новый профиль для локальной системы (System), хранящийся в %systemroot%\System32\Config\SystemProfile. Системный профиль постоянно загружен указывает на раздел HKEY_USERS\.DEFAULT. Это обеспечивает системным компонентам целостность профиля и реестра.
Более надежное перемещение пользователей
В Windows 2000 некоторые неудачно написанные приложения могли создать проблемы для механизма сохранения пользовательских данных при выходе из системы. Продолжая обращение к параметрам системного реестра, они могли помешать операционной системе произвести выгрузку куста реестра пользователя. В такой ситуации, изменения в профиле не сохраняются на сервере. У этой проблемы обычно три симптома:
- Пользователи начинают интересоваться, почему их настройки не сохраняются при перемещении на другой компьютер.
- Серверу терминалов, обеспечивающему работу большого количества пользователей, требуется больше памяти, поскольку заблокированные профили так никогда и не выгружаются.
- Если профиль помечен для удаления по завершении сеанса (временный профиль или просто очистка машины), то удаление становится невозможным.
Windows XP предотвращает появление таких проблем следующим образом:
- Когда пользователь выходит из Windows 2000, система пытается скопировать профиль в течение 60 секунд, а затем сдается. Windows XP по завершении 60 секунд сохраняет пользовательский куст реестра, а затем корректно перемещает профиль.
- Когда приложение или служба прекращают обращения к параметру реестра, Windows XP выгружает пользовательский куст реестра, высвобождая память, которую профиль занимал на сервере терминалов.
- Если профиль помечается для удаления через определенное количество входов в систему, то по достижении счетчиком этого значения профиль выгружается и удаляется. Если же приложение не освобождает пользовательские параметры реестра, профиль будет удален при следующей загрузке компьютера.
Обратите внимание на то, что если пользователь с перемещаемым профилем выполняет вход в систему на машине, которая не смогла выгрузить этот профиль ранее (и профиль все еще не выгружен), то он получит этот локальный невыгруженный профиль. Все изменения, произведенные в профиле за это время на других машинах, не будут доступны на компьютере с заблокированным профилем.