- Удаление профиля доменного пользователя в Windows
- Удаление старых профилей пользователей Windows с помощью GPO или PowerShell
- Ручное удаление профиля пользователя в Windows
- Групповая политика автоматического удаления старых профилей
- Очистка сервера от старых профилей пользователей с помощью PowerShell
- Как в Win2003 Server удалить всю инфо о пользователе?
Удаление профиля доменного пользователя в Windows
Feb 22, 2016 · 2 min read
Иногда при работе в терминальном сервере, или на любом ПК, введенным в домен, приходится принудительно удалять профиль пользователя.
В Windows XP/2003 Server было достаточно удалить подкаталог в Documents and Settings, однако в Windows 7/Server 2008 при удалении подкаталога в папке Users система выдаст сообщение:
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.
Профиль пользователя был загружен неправильно! Вход выполнен с использованием временного профиля.
Изменения, внесенные в этот профиль, будут потеряны при выходе. Смотрите подробности в журнале событий или обратитесь к администратору.
Чтобы открыть компонент “система” в панели управления от администратора нужно выполнить:
Дополнительно> Профили пользователей> Параметры
В группе “ Профили, хранящиеся на этом компьютере” выбрать нужный и нажать кнопку “ удалить”.
Но таким образом можно удал и ть только локальный профиль. Для того чтобы удалить профиль пользователя домена выполнившего вход на другой ПК домена нужно сначала удалить ветку реестра и сопоставленную этому профилю папку в C:\Users
Записи о профилях пользователей хранятся в ветке реестра:
Для каждого профиля, который хранится локально, в этой ветке создается подраздел с SID учетной записи пользователя. Для того, чтобы сопоставить каждому профилю его SID можно воспользоваться утилитой Sysinternals PsGetSid. Сам путь профилю хранится внутри этой ветки в параметре ProfileImagePath.
Удаление старых профилей пользователей 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):
Как в Win2003 Server удалить всю инфо о пользователе?
Список форумов SYSAdmins.RU -> WINDOWS | На страницу 1, 2 След. |
Автор | |||||
---|---|---|---|---|---|
shaker Новичок Зарегистрирован: 03.11.2006
|
| ||||
Вернуться к началу |
| ||||
Зарегистрируйтесь и реклама исчезнет! | |||||
Igor533 Новичок Зарегистрирован: 29.04.2007
|
| ||||
Вернуться к началу |
| ||||
Xpl85 Активный участник Зарегистрирован: 19.03.2007 |
| ||||
Вернуться к началу |
| ||||
Igor533 Новичок Зарегистрирован: 29.04.2007
|
| ||||
Вернуться к началу |
| ||||
ыыыыыыыыы Почетный житель Зарегистрирован: 07.07.2003
|
| ||||
Вернуться к началу |
| ||||
MVV Windows guru Зарегистрирован: 20.10.2003
|
| ||||
Вернуться к началу |
| ||||
shaker Новичок Зарегистрирован: 03.11.2006
|
| ||||
Вернуться к началу |
| ||||
Igor533 Новичок Зарегистрирован: 29.04.2007
|
| ||||
Вернуться к началу |
| ||||
shaker Новичок Зарегистрирован: 03.11.2006 |