Очистка профиля пользователя windows 7
Удалить профиль может понадобиться при удалении старых пользователей, которых мы удалили из доступа к компьютеру, но файлы и настройки остались в системе после последнего входа, или когда профиль был поврежден вирусом и необходимо быстро почистить.
Важно. При удаление профиля пользователя, папки «Документы» и «Рабочий стол» также будут стерты, без возможности восстановления. Не забудьте заранее их сохранить.
Ранее я писал, как удалить профиль в ручном режиме, и какие при этом вылезают ошибки в системе. (Ошибка 1530 User Profiles Service, удаление профиля пользователя в ручную) С чего начать, теперь подробно.
Есть несколько вариантов, я опишу самый короткий. Напомню, что все действия делаются не из пользователя профиль, который будем удалять (Система не даст возможность рубить сук на котором сидит User).
- Необходимо открыть свойства системы, ранее в Windows XP окно называлось «Свойства моего компьютера». Открываем «Пуск«/»Компьютер» (правой кнопкой мышью открываем контекстное меню)/»Свойства«
- В открытом окне мы увидим свойства системы в упрощенном виде, но нам нужно выбрать пункт «Дополнительные параметры системы» (он потребует права Администратора) в левой колонке.
- В появившемся окне мы выбираем вкладку «Дополнительно» и в разделе «Профили пользователей» нажимаем кнопку «Параметры. «
- Далее выбираем профиль пользователя, который необходимо удалить, и нажимаем кнопку «Удалить«. Соглашаемся с нашими действиями и профиль, выбранного нами пользователя, будет удален.
Теперь при входе пользователем, у которого мы удалили профиль, будет создан новый и без ошибок в логах системы Windows как это было при удаление просто каталога пользователя с жесткого диска. Такая возможность была доступна в ранних операционных системах Windows, так как идентификатор хранился только в файле NTUSER.DAT самого профиля и не дублировался в реестр.
При удалении профиля пользователя таким образом мы корректно удаляем только его данные с жесткого диска (безвозвратно) и определенные ветки в реестре, которые сигнализируют о наличии профиля в системе Windows. Учтите, что при удалении профиля вы не удаляете саму учетную запись пользователя, а только его файлы и настройки. Пожалуй на этом все.
Для удаления учетной записи пользователя я напишу чуть позже, с картинками.
Удаление локальной и доменной учётной записи пользователя в Windows 7
Учётная запись может быть локальная или доменная.
Как удалить локальную и доменную учётные записи
Чтобы удалить локальную учётную запись
Можно использовать компонент system через командную строку запущенную от имени администратора.
Но перед этим копируйте папку пользователя из C:\Users\ для сохранения данных. Впоследствии вы сможете перенести их в новый профиль.
Если Локальная запись находится на ПК не введённом в домен в командную строку введите:
Если Локальная запись находится на ПК введённом в домен в командную строку введите:
Как удалить Доменную учётную запись
Удалить запись доменного пользователя выполнявшего вход ранее требуется:
- Удалить ветку реестра профиля пользователя
- Переименовать соответствующую пользователю папку в C:\Users\
Удалить ветку реестра
Заходим в редактор реестра Windows через поисковую строку в меню «Пуск», где набираем regedit.msc
Переименовать соответствующую пользователю папку в C:\Users\
Данная папка может быть, и удалена. Однако, убедитесь, что она не содержит важных данных пользователя. Именно в ней содержатся файлы с Рабочего стола, Документы, Загрузки и т.д.
В моём случае, я просто переименовал данную папку для последующего переноса важных файлов в папку нового профиля.
Удаление старых профилей пользователей Windows с помощью GPO или PowerShell
На рабочих станциях и серверах Windows, особенно на терминальных серверах RDS (Remote Desktop Services), периодически возникает необходимость очистки каталога C:\Users от старых профилей пользователей (уволенные пользователи, пользователи, которые долго не используют сервер и т.д.).
Основная проблема терминальных серверов – постоянный рост размеров каталогов профилей пользователей на диске. Частично эта проблема решается политиками квотирования размера профиля пользователя с помощью FSRM или NTFS квот, перемещаемыми папками и т.д. Но при большом количестве пользователей терминального сервера в папке C:\Users со временем накапливается огромное количество каталогов с ненужными профилями пользователей.
Ручное удаление профиля пользователя в Windows
Многие начинающиеся администраторы пытаются вручную удалить каталог с профилем пользователя из папки C:\Users. Так можно делать, если вы после удаления папки вручную удалите раздел профиля пользователя со ссылкой на каталог в ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\ProfileList. Правильный ручной способ удаления профиля пользователя в Windows – открыть свойства системы, перейти в Advanced System Settings -> User Profiles -> Settings, выбрать в списке пользователя (в столбце Size указан размер профиля пользователя) и нажать кнопку Удалить.
Но это ручной способ, а хочется автоматизации.
Групповая политика автоматического удаления старых профилей
В Windows есть встроенная групповая политика для автоматического удаления старых профилей пользователей старше xx дней. Эта политика находится в разделе Конфигурация компьютера -> Административные шаблоны -> Система -> Профили пользователей (Computer Configuration -> Administrative Templates -> System -> User Profiles) и называется “Удалять при перезагрузке системы профили пользователей по истечении указанного числа дней” (Delete user profiles older than a specified number days on system restart). Вы можете включить этот параметр в локальном редакторе политик (gpedit.msc) или с помощью доменных политик из консоли GPMC.msc.
Включите политику и укажите через сколько дней профиль пользователя считается неактивным и “Служба профилей пользователей Windows” можно автоматически удалить такой профиль при следующей перезагрузке. Обычно тут стоит указать не менее 45-90 дней.
Основные проблемы такого способа автоматической очистки профилей – ожидание перезагрузки сервера и неизбирательность (вы не можете запретить удаление определенных профилей, например, локальных учетных записей, администраторов и т.д.). Также эта политика может не работать, если некоторое стороннее ПО (чаще всего это антивирус) обращается к файлу NTUSER.DAT в профилях пользователей и обновляет дату последнего использования.
Очистка сервера от старых профилей пользователей с помощью PowerShell
Вместо использования рассмотренной выше политики автоматической очистки профилей, вы можете использовать простой PowerShell скрипт для поиска и удаления профилей неактивных или заблокированных пользователей.
Сначала попробуем подсчитать размер профиля каждого пользователя в папке C:\Users c помощью простого скрипта из статьи “Вывести размер папок с помощью PowerShell”:
gci -force ‘C:\Users’-ErrorAction SilentlyContinue | ? < $_ -is [io.directoryinfo] >| % <
$len = 0
gci -recurse -force $_.fullname -ErrorAction SilentlyContinue | % < $len += $_.length >
$_.fullname, ‘ <0:N2>GB’ -f ($len / 1Gb)
$sum = $sum + $len
>
“Общий размер профилей”,’ <0:N2>GB’ -f ($sum / 1Gb)
Итого суммарный размер всех профилей пользователей в каталоге C:\Users около 22 Гб.
Теперь выведем список пользователей, профиль которых не использовался более 60 дней. Для поиска можно использовать значение поля профиля LastUseTime.
У меня на терминальном сервере оказалось 143 профиля неактивных пользователей (общим размером около 10 Гб).
Чтобы удалить все эти профили достаточно добавить перенаправить список на команду Remove-WmiObject (перед использование скрипта удаления желательно несколько раз перепроверить его вывод с помощью параметра –WhatIf ):
Чтобы не удалять профили некоторых пользователей, например, специальные аккаунты System и Network Service, учетную запись локального администратора, пользователей с активными сессиями, список аккаунтов-исключений), нужно модифицировать скрипт следующим образом:
#Список аккаунтов, чьи профили нельзя удалять
$ExcludedUsers =»Public»,»zenoss»,»svc»,”user_1”,”user_2”
$LocalProfiles=Get-WMIObject -class Win32_UserProfile | Where <(!$_.Special) -and (!$_.Loaded) -and ($_.ConvertToDateTime($_.LastUseTime) -lt (Get-Date).AddDays(-60))>
foreach ($LocalProfile in $LocalProfiles)
<
if (!($ExcludedUsers -like $LocalProfile.LocalPath.Replace(«C:\Users\»,»»)))
<
$LocalProfile | Remove-WmiObject
Write-host $LocalProfile.LocalPath, «профиль удален” -ForegroundColor Magenta
>
>
Вы можете настроить запуск этого скрипта через shutdown скрипт групповой политики или по расписанию заданием планировщика. (перед настройкой автоматического удаления профилей внимательно протестируйте скрипт в своей среде!).
Можно модифицировать скрипт, чтобы автоматически удалять пользователи всех пользователей, которые добавлены в определенную группу AD (например, группа DisabledUsers):












