Достаточно часто при работе на терминальном сервере для решения проблем пользователей приходится удалять их профили, тем самым при следующем входе пользователя будет создан новый чистый профиль. Однако многие системные администраторы Windows при переходе с Windows 2003 на Windows 2008 сталкиваются с тем, что удаление профиля в этих ОС необходимо выполнять по разному. Если в Windows Server 2003 было достаточно удалить профиль пользователя из каталога C:\Documents and Settings, то в Windows 2008 не все так просто.
Во-первых, как вы знаете, в Windows Server 2008, Windows Vista и Windows 7 локальные профили пользователей хранятся в каталоге C:\Users. Кроме того, эти ОС ведут учет всех локальных профилей в веке реестра “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList” Для каждого профиля, который хранится локально, внутри этого раздела реестра создается подраздел. Имя подраздела – это SID учетной записи пользователя. Сопоставить имя пользователя и SID можно с помощью PsGetSid так, или же просто откройте любую ветку и посмотрите значение параметра ProfileImagePath.
Что будет, если просто удалить каталог с профилем пользователя?
Что же будет, если удалить каталог с профилем пользователя в Windows 2008 или Windows 7 (C:\Users\”Username”) без модификации реестра? После удаления профиля, при следующем входе пользователя в системном трее появится сообщение, говорящее о том, что Windows не смогла загрузить профиль пользователя и пользователь будет работать с временным профилем.
Event ID 1511.Your user profile was not loaded correctly. You have been logged on with a temporary profile. Changes you make to this profile will be lost when you log off. Please see the event log for details or contact your administrator.
А как вы знаете, временный профиль Windows – это профиль, который загружается при наличии проблем с нормальным профилем, и который при завершении сеанса, не сохраняется.
Как же корректно удалить профиль пользователя в Windows 2008?
Воспользуйтесь одним из следующих методов удаления профиля:
- Удалите каталог с профилем пользователя И соответствующую ему ветку реестра в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
- Откройте Пуск > Выполнить и наберите sysdm.cpl. Перейдите на вкладку Advanced, затем в разделе User Profiles нажмите кнопку Settings и удалите нужный (или ненужный :)) вам профиль пользователя.
Поздно, я уже удалил каталог с профилем пользователя, что делать?
Не беспокойтесь, к счастью, Windows достаточно умна. Если система находит в реестре в ветке ProfileList, SID пользователя, с которым не ассоциирован ни один каталог с профилем пользователя (C:\Users\”username”), она создает резервную копию этой ветки с расширением .bak. Просто удалите эту резервную ветку.
Со временем на сервере накапливаются старые каталоги уволенных пользователей и
даже не смотря на небольшой размер, занятое ими место может вылиться с десятки
гигабайт, поэтому хорошей практикой будет периодическая чистка старых
профилей. На самом деле все очень легко можно автоматизировать политиками, но
я опасаюсь в таком вопросе автоматизации: нет-нет, да и выстрелит
необходимость найти документ 5 летней давности, поэтому домашние каталоги топ
сотрудников лучше не удалять, а выборочная автоматизация удаления — это совсем
другая история.
Так, как пути к домашним каталогам хранятся в реестре, мы не можем просто
взять и удалить каталог на уровне файловой системы, а потому идем в «Панель
управления»>»система»>»Дополнительные параметры системы»>вкладка
«Дополнительно»>кнопка «Профили пользователей»>»Параметры»
Мы попадаем в список зарегистрированных на сервере пользователей как
локальных, так и доменных (картинку не привожу из соображений секьюрности) в котором мы можем оценить дисковое пространство, занимаемое каждым из пользователй. Теперь мы можем выделить нужного пользователя и
удалить его кнопкой «Удалить». При этом удалится, как запись в реестре, так и
домашний каталог пользователя.
Есть у меня один терминальный сервер на Windows 2008, который предоставляет пользователям доступ к приложению по технологии RemoteApp.
Критичность сервиса низкая, критичность приложения еще ниже. Поэтому когда у пользователя наблюдались какие-то непонятные проблемы с приложением, я просто удалял его профиль, он входил в систему и все было хорошо.
Но в один прекрасный день профиль пользователя стал создаваться на в именной папке (%username%), а во временной папке типа TEMP.XXX. Поковыряв логи я так и не понял, почему это происходит, и забил.
Однако через некоторое время мне это надоело и я решил все-таки разобраться.
Запустив поиск по реестру с помощью regedit с логином пользователя в качестве параметра, я был несколько обескуражен тем, что результат поиска был нулевой.
Тогда я решил выполнить поиск по SID. Немного погулив, я наткнулся на эту запись. Заглянув в ключ
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
я нашел там раздел с SID’ом проблемного пользователя в качестве имени, а среди значений этого раздела нашел и строковый раздел с логином пользователя (ах, эта Windows, почему сразу не выдать мне это при поиске?)
То есть, этот пользователь в реестре все еще присутствовал. Посмотрев внимательно на имя раздела (то бишь, расширив левую часть окна regedit’а), я увидел, что имя раздела кроме SID’а пользователя содержит приписку
.bak
Мозг сказал, что решение где-то рядом
Профиль уже был удален… Экспортировав на всякий случай раздел, я его безжалостно удалил. И… вот оно! Пользователь смог нормально зайти в систему, и для него создался профиль в каталоге, носящем гордое имя, в качестве которого подставился логин пользователя.
Вывод: профили надо удалять правильно!
Пишу в основном для себя, т.к. постоянно забываю, как полностью вычистить.
Итак ситуация, имеется Windows 2008 с установленным сервером терминалов (Служба удаленных рабочих столов) на которой крутиться 1С, при переходе с 1С 8.1 на 8.2 (часть баз осталась на 8.1, часть перенсена на 8.2) некоторые профили отказались грузить 8.2 и с упорством продолжали грузить 8.1. Хотя в клиенте Remote Desktop Connection четко прописаны пути для запуска 8.2.
Чтобы не париться и не разбираться, что там с профилем не так, решил просто удалить профили проблемных пользователей и создать заново.
Удаление папки с именем пользователя из каталога C:\Users, к желаемому результату не приведет. Просто будет загружаться временный профиль, и сохранить настройки будет невозможно.
Необходимо еще удалить ветку из реестра принадлежащую удаленному пользователю
Идем в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\
и просматриваем папки вида S-1-… В каждом папке есть параметр ProfileImagePath со значением вида C:\Users\ИмяПользователя. Таким образом ищем ветку, в которой указан наш удаленный пользователь и соотвественно удаляем ее.
Теперь пользователь полностью удален и можно создавать профиль заново.
Прочитано:
784
Иногда, когда приходит письмо от отдела кадров об увольнении сотрудника.
Я руководствуюсь следующим порядком:
Первым делом блокирую учетную запись сроком на 1 месяц.
На иконке My Computer правой кнопкой мыши, далее Manage – Computer Management – Local Users and Groups – Users.
Таких сотрудников накапливается множество.
Выводим список заблокированных учетных записей через wmi – запрос:
wmic useraccount where (Status=’Degraded’) get Caption
Далее, удаляем учетную запись:
Net user <user_name> /delete
, где <user_name> берем данные из предыдущего вывода.
, но даже после этого удаления остаются данные профиля и помечаются, как Account Unknown. Для их удаления переходи: — на иконке My Computer правой кнопкой мыши, далее Properties – Advanced – User Profiles – Settings
На каждой нажимаем Delete.
Вот на этом можно считать, что с удаление мы справились. Способ не автоматизированный. Но действующий.