Администраторы время от времени должны удалять старые профили пользователей (уволенные пользователи, неактивные пользователи, и т.д.) в каталоге C:\Users на рабочих станциях и серверах Windows. Чаще всего с задачей очисткой профилей пользователей Windows сталкиваются на терминальных серверах RDS (Remote Desktop Services).
Основная проблема терминальных серверов – постоянный рост размеров каталогов профилей пользователей на диске. Частично эта проблема решается политиками квотирования размера профиля пользователя с помощью FSRM или NTFS квот, использованием профилей типа FSLogix или User Profile Disk, перемещаемыми папками и т.д. Но при большом количестве RDS пользователей в папке C:\Users со временем накапливается огромное количество каталогов с неиспользуемыми профилями пользователей.
Содержание:
- Как вручную удалить профиль пользователя в Windows?
- Групповая политика для автоматической очистки старых профилей
- PowerShell скрипт для удаления старых профилей пользователей в Windows
Как вручную удалить профиль пользователя в Windows?
В Windows вы можете вручную удалить профиль пользователя через панель управления.
- Откройте Advanced System Settings (команда
SystemPropertiesAdvanced
) -> User Profiles -> Settings; - В этом окне перечислен список всех профилей пользователей (локальных и доменных), которые хранятся на этом компьютере. Размер каждого профиля пользователя на диске указан в столбце Size.
- Выберите пользователя, чей профиль нужно удалить и нажмите кнопку Delete.
В Windows 11/10 и Windows Server 2022/2019 вы можете удалить профили пользователей с диска через приложение Settings. Перейдите в раздел Accounts -> Access work and school (или выполните команду быстрого доступа
ms-settings:otherusers
). Выберите пользователя и нажмите Remove чтобы удалить его данные с компьютера.
При корректном удалении профиля пользователя с диска будет удален каталог профиля в C:\Users и запись о пользователе в реестре.
Многие начинающиеся администраторы пытаются вручную удалить каталог с профилем пользователя из папки C:\Users. В этом случае нужно обязательно вручную удалить информацию о профиле из реестра Windows:
- Откройте редактор реестра
regedit.exe
; - Перейдите в ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
- Для каждого пользователя, выполнившего локальный вход в систему (этот метод входа должен быть разрешен пользователю настройками параметра Allow log on locally в GPO), создается отдельная ветка с SID пользователя в качестве имени;
- Вы можете найти раздел реестра, соответствующий пользователю по SID, или можете вручную просмотреть содержимое всех вложенных разделв, пока не найдете раздел, в котором значение ProfileImagePath указывает на каталог с профилем пользователя на диске (например,
C:\Users\kbuldogov
); - Удалите данный раздел реестра, чтобы завершить корректное удаление профиля.
Также вы можете удалить профиль конкретного пользователя с помощью PowerShell:
Get-CimInstance -Class Win32_UserProfile | Where-Object { $_.LocalPath.split(‘\’)[-1] -eq 'kbuldogov' } | Remove-CimInstance
Эта команда удалит как каталог на диске, так и ссылку на профиль пользователя kbuldogov в реестре HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList.
Эта команда будет работать как в Windows PowerShell, так и в новых версиях PowerShell Core 6.x,7.x
Можно удалить профиль пользователя на удаленном компьютере с помощью PowerShell Remoting и командлета Invoke-Command:
$compname="wks21s32"
$user = "kbuldogov"
Invoke-Command -ComputerName $compname -ScriptBlock {
param($user)
Get-CimInstance -Class Win32_UserProfile | Where-Object { $_.LocalPath.split(‘\’)[-1] -eq $user } | Remove-CimInstance
} -ArgumentList $user
Групповая политика для автоматической очистки старых профилей
В Windows есть специальный параметр групповой политики для автоматического удаления старых профилей пользователей старше xx дней. Вы можете включить этот параметр с помощью локального редактора GPO (
gpedit.msc
) или с помощью консоли управления доменными GPO (
gpmc.msc
). В этом примере на назначим политику автоматической очистки профилей на хосты в ферме RDS, которые вынесены в отдельный контейнер (Organizational Unit) Active Directory.
Прежде чем применять политику удаления старых профилей ко всем хостам, настоятельно рекомендуем проверить ее на тестовом сервере. Выведите один из серверов RDSH в режим обслуживания и протестируйте политику на нем.
- Найдите OU с компьютерами/серверами, на который вы хотите применить политику очистки старых профилей пользователей. Щелкните по OU и выберите Create a GPO in this domain and Link it here;
- Укажите имя политики и отредактируйте GPO;
- Перейдите в раздел Конфигурация компьютера -> Административные шаблоны -> Система -> Профили пользователей (Computer Configuration -> Administrative Templates -> System -> User Profiles);
- Откройте параметр “Удалять при перезагрузке системы профили пользователей по истечении указанного числа дней” (Delete user profiles older than a specified number days on system restart);
- Включите политику и укажите через сколько дней профиль пользователя считается неактивным и “Служба профилей пользователей Windows” можно автоматически удалить такой профиль при следующей перезагрузке. Обычно тут стоит указать не менее 45-90 дней;
- После применения новых настроек групповых политк, служба User Profile Services на ваших серверах Windows будет автоматически удалять старые профили пользователей. Удаление выполняется при перезагрузке сервера.
При использовании этой политики нужно быть уверенным, что при выключении/перезагрузке сервера нет проблем с системным временем (время не сбивается), иначе могут быть удалены профили активных пользователей.
Другой недостаток — вы не можете запретить удаление определенных профилей, например, локальных учетных записей, администраторов и т.д.
В версиях до Windows 11/10 и Windows Server 2022/2019 эта политика работала некорректно. Дело в том, что неактивноть профиля пользователя ранее определялась по дате именения файла NTUSER.dat. При установке обновлений Windows, служба Trusted Installer может менять дату изменения файла NTUSER.dat в профиле каждого пользователя. В результате служба Win32_UserProfile считает, что профиль использовался недавно.
В современных версиях Windows эта политика проверяет активность профиля пользователей по параметрам LocalProfileUnloadTimeLow и LocalProfileUnloadTimeHigh в ветке
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<User Sid>
.
Вы можете получить значения параметров реестра LocalProfileLoadTimeLow и LocalProfileUnloadTimeHigh в привычном формате времени с помощью скрипта:
$profilelist = Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" foreach ($p in $profilelist) { try { $objUser = (New-Object System.Security.Principal.SecurityIdentifier($p.PSChildName)).Translate([System.Security.Principal.NTAccount]).value } catch { $objUser = "[UNKNOWN]" } Remove-Variable -Force LTH,LTL,UTH,UTL -ErrorAction SilentlyContinue $LTH = '{0:X8}' -f (Get-ItemProperty -Path $p.PSPath -Name LocalProfileLoadTimeHigh -ErrorAction SilentlyContinue).LocalProfileLoadTimeHigh $LTL = '{0:X8}' -f (Get-ItemProperty -Path $p.PSPath -Name LocalProfileLoadTimeLow -ErrorAction SilentlyContinue).LocalProfileLoadTimeLow $UTH = '{0:X8}' -f (Get-ItemProperty -Path $p.PSPath -Name LocalProfileUnloadTimeHigh -ErrorAction SilentlyContinue).LocalProfileUnloadTimeHigh $UTL = '{0:X8}' -f (Get-ItemProperty -Path $p.PSPath -Name LocalProfileUnloadTimeLow -ErrorAction SilentlyContinue).LocalProfileUnloadTimeLow $LoadTime = if ($LTH -and $LTL) { [datetime]::FromFileTime("0x$LTH$LTL") } else { $null } $UnloadTime = if ($UTH -and $UTL) { [datetime]::FromFileTime("0x$UTH$UTL") } else { $null } [pscustomobject][ordered]@{ User = $objUser SID = $p.PSChildName Loadtime = $LoadTime UnloadTime = $UnloadTime } }
PowerShell скрипт для удаления старых профилей пользователей в Windows
Вы можете удалять профили неактивных или заблокированных пользователей с помощью скрипта PowerShell.
Сначала попробуем подсчитать размер профиля каждого пользователя в папке C:\Users c помощью простого скрипта из статьи “Вывести размер папок с помощью PowerShell”:
gci -force ‘C:\Users\’-ErrorAction SilentlyContinue | Where { !($_.Attributes -match " ReparsePoint") }| ? { $_ -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.
Get-WMIObject -class Win32_UserProfile | Where {(!$_.Special) -and ($_.ConvertToDateTime($_.LastUseTime) -lt (Get-Date).AddDays(-60))}| Measure-Object
У меня на терминальном сервере оказалось 143 профиля неактивных пользователей (общим размером около 10 Гб).
Следующий PowerShell скрипт выведет список подробную информацию о профилях пользователей, которые не обновлялись более 60 дней. Скрипт сконвертирует SID пользователя в имя, посчитает размер профиля каждого пользователя и выведет все в таблице:
$allprofilesinfo = @() $OldProfiles=Get-WMIObject -class Win32_UserProfile | Where {(!$_.Special) -and ($_.ConvertToDateTime($_.LastUseTime) -lt (Get-Date).AddDays(-60))} Foreach ($OldProfile in $OldProfiles) {$objSID = New-Object System.Security.Principal.SecurityIdentifier ($OldProfile.SID) $objUser = $objSID.Translate( [System.Security.Principal.NTAccount]) $userinfo = New-Object PSObject -Property @{ userName = $objUser.Value ProfilePath = $OldProfile.localpath LastUsedDate = $OldProfile.ConvertToDateTime($OldProfile.LastUseTime) FolderSize = "{0:N2} GB" -f ((gci –force $OldProfile.localpath –Recurse -ErrorAction SilentlyContinue| measure Length -s).sum / 1Gb) } $allprofilesinfo += $userinfo } $allprofilesinfo
Чтобы удалить все эти профили достаточно добавить перенаправить список на команду Remove-WmiObject (перед использование скрипта удаления желательно несколько раз перепроверить его вывод с помощью параметра –WhatIf ):
Get-WMIObject -class Win32_UserProfile | Where {(!$_.Special) -and (!$_.Loaded) -and ($_.ConvertToDateTime($_.LastUseTime) -lt (Get-Date).AddDays(-30))} | Remove-WmiObject –WhatIf
Как мы уже упомянули выше, при установке некоторых обновлений Windows, служба Trusted installer может менять дату изменения файла NTUSER.dat в профиле каждого пользователя.
На скриншоте выше видно, что все профили были изменены примерно в одно и тоже время. Проверьте дату последней установки обновлений в Windows:
gwmi win32_quickfixengineering |sort installedon |select InstalledOn -Last 1
Или с помощью модуля PSWindowsUpdate:
Get-WUHistory | Select-Object -First 20
Скорее всего она совпадет с датой изменения профилей. Поэтому в старых версиях Windows можно получить список неактивных профилей с помощью другого скрипта, который проверяет атрибуту lastwritetime каталога пользователя:
$USERS= (Get-ChildItem -directory -force 'C:\Users' | Where { ((Get-Date) — $_.lastwritetime).days -ge 60 } | % {'c:\users\' + $_.Name})
foreach ($User in $USERS) {
Get-WMIObject -class Win32_UserProfile | Where {(!$_.Special) -and (!$_.Loaded) -and ($_.LocalPath -eq $User)} | 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 и выполните на сервере скрипт:
$users = Get-ADGroupMember -Identity DisabledUsers | Foreach {$_.Sid.Value}
$profiles = Get-WmiObject Win32_UserProfile
$profiles | Where {$users -eq $_.Sid} | Foreach {$_.Delete()}
Windows Server — это мощная операционная система, предназначенная для серверных сред и предлагающая различные возможности и функции для эффективного управления пользователями и ресурсами. Удаление учетной записи пользователя является распространенной административной задачей при управлении сервером. Если вам необходимо удалить устаревшего пользователя, ограничить доступ или просто очистить список пользователей, в данном руководстве мы рассмотрим процесс удаления пользователя в Windows Server 2022 и 2019.
Прежде чем приступить к работе, убедитесь, что у вас есть административный доступ к системе Windows Server 2022 или 2019. Кроме того, вы должны хорошо понимать возможные последствия удаления учетной записи пользователя, поскольку это действие может привести к потере данных, если оно выполнено неаккуратно.
Для удаления учетной записи пользователя на машине Windows Server 2022/2019 выполните следующие действия:
Войдите в систему Windows Server под учетной записью с правами администратора. Эти привилегии необходимы для внесения изменений в учетные записи пользователей.
В папке C:\Users находятся папки профилей пользователей. Первым делом Вам необходимо удалить папку профиля, так как после полного удаления пользователя в системе Windows, удалить данную папку будет проблематично простыми средствами.
Откройте Settings, перейдите в раздел About и выберите “Advanced system settings”.
Нажмите на кнопку “Settings” для User Profiles.
В списке пользователей выберите нужного пользователя и нажмите на “Delete”.
Готово. Папка профиля выбранного пользователя успешно удалена из системы.
Далее мы можем перейти в полноценному удалению пользователя в системе Windows Server.
Откройте консоль «Computer Management«. Есть два быстрых варианта запуска «Computer Management»:
1. Нажмите на Start и начните писать в поиске «Computer Management». После того как вам будет показано результат – запускайте программу.
2. Нажмите на Start и откройте меню «Windows Administrative Tools».
В новом окне нажмите и запустите «Computer Management».
Перейдите в раздел Computer Management -> System Tools -> Local Users and Groups -> Users.
Выберите учетную запись пользователя, которую необходимо удалить из системы. Затем нажмите правой кнопкой мыши и нажмите на кнопку «Удалить«.
Появится диалоговое окно подтверждения, запрашивающее, уверены ли вы в том, что хотите удалить учетную запись пользователя. Проверьте имя пользователя, чтобы убедиться в том, что вы удаляете правильную учетную запись. После подтверждения учетная запись пользователя будет удалена из системы. Все связанные с ней данные пользователя, такие как файлы и папки, также будут удалены.
Нажмите «OK«, чтобы подтвердить удаление.
Пользователь удален.
Вот некоторые дополнительные моменты, которые следует учитывать при удалении учетной записи пользователя в Windows Server 2022/2019:
- Перед удалением убедитесь, что все важные данные, связанные с учетной записью пользователя, сохранены в резервной копии, поскольку это действие необратимо.
- роверьте, является ли пользователь членом какой-либо локальной или доменной группы. Удаление пользователя может повлиять на его членство в группе, поэтому следует соответствующим образом обновить членство в группе.
- Удаление пользователя может не привести к автоматическому удалению его профиля. Может потребоваться вручную удалить папку профиля пользователя с сервера, обычно расположенную в каталоге C:\Users.
- Если необходимо ограничить доступ пользователя, не удаляя учетную запись окончательно, следует отключить ее. Отключенные учетные записи не могут быть использованы для входа в систему, но их данные остаются нетронутыми.
- В Windows Server 2022/2019 предусмотрены возможности аудита. Убедитесь, что вы просматриваете и архивируете журналы аудита в целях обеспечения безопасности и соответствия нормативным требованиям.
Удаление учетной записи пользователя в Windows Server 2022/2019 — несложный процесс, но его следует выполнять с осторожностью. Выполнив описанные в данном руководстве шаги и приняв во внимание дополнительные соображения, можно безопасно удалить ненужные учетные записи пользователей, сохранив при этом целостность серверной среды. Всегда помните о резервном копировании данных и соблюдайте лучшие практики управления учетными записями пользователей для поддержания безопасности и организованности серверной системы.
Используя наши услуги удаленного рабочего сервера, Вы сможете полноценно и безпроблемно работать с Вашим сервером, производить любые настройки системы, которые требуют полные права администратора!
https://finerdp.com/ru/rdp-server
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Sign up
This article describes how to add and remove local users on Windows Server® 2012, 2012 R2, 2016, and 2019.
-
Log in to the server from which you are removing the user.
-
To access Local users and groups:
- Click Start > Run.
- Enter lusrmgr.msc in the box and click OK.
- Alternatively, you can use Windows search to search for Local Users and Groups.
-
In the console, double click on Users, and a list of users displays on the right.
-
Click More Actions and select New User.
-
At a minimum, enter a username, a new password, and confirm that password. You should also enter the name under
Full Name and a description of the account in the Description field.- To allow users to set their password, check the User must change password at next login box. Otherwise, uncheck it.
- To prevent the user from setting a new password, check the User cannot change password box. You cannot select this
if you have checked User must change password at next login. - If you are creating the user but the user should not yet have login rights, check the Account is disabled box. You
can undo this when you want. - Optionally, you can set the password to never expire by checking the Password never expires box. However, you should
rarely use this option because aged passwords pose a security risk.
-
After you fill out the form, click Create to save the new user and close the New User dialog. The newly created
user now shows in the list of users.
-
Right-click on the user that you want to delete.
-
Click Delete.
-
Click Yes to confirm when the warning prompt that the deletion can’t be undone displays.
Warning: If the user is associated with any services, those services might stop functioning after the user is deleted.
You can disable, instead of deleting, a user to avoid any issues.
Use the Feedback tab to make any comments or ask questions. You can also start a conversation with us.
Updated over 1 year ago
После того, как установлена роль Active Directory в домене windows server 2019, появляется возможность управления доменом. Далее необходимо создать пользователей, которые будут входить под учетными записями, группы и подразделения.
Как создать и удалить пользователя, группу и объект в домене
- Создание пользователя в домене
- Создание группы в домене
- Создание объекта в домене
- Удаление пользователя в домене
- Удаление группы в домене
- Удаление подразделения в домене
Для создания и удаления пользователя, группы и подразделения воспользуемся средством централизованного управления сервером — Диспетчер серверов. Далее выбираем «Пользователи и компьютеры Active Directory».
Создание пользователя в домене.
1. Нажимаем «Пуск«, далее выбираем «Диспетчер серверов«.
2. В новом окне нажимаем «Средства«, в открывшемся списке выбираем «Пользователи и компьютеры Active Directory«.
3. Далее нажимаем правой клавишей на «User«, далее «Создать» — «Пользователь«.
4. Заполняем необходимые поля для создания пользователя (Имя, Фамилия, Имя входа пользователя). «Полное имя» заполнится автоматически. Затем нажимаем «Далее«.
5. В следующем окне дважды набираем пароль для пользователя. Затем устанавливаем чекбокс на «Требовать смены пароля при следующем входе в систему«. Тогда при входе в систему пользователю будет предложено заменить текущий пароль. Нажимаем «Далее«.
6. В новом окне смотрим сводную информацию по вновь созданному пользователю и нажимаем «Готово«. Будет создан новый пользователь.
Создание группы в домене
1. Для создания группы в домене, нажимаем правой клавишей мыши на «Users«, далее «Создать» — «Группа«.
2. Задаем «Имя группы«, «Область действия группы» и «Тип группы«, далее нажимаем «ОК«. Будет создана группа.
3. Для добавления пользователей в группу, открываем пользователя, выбираем вкладку «Член групп«, нажимаем кнопку «Добавить«.
4. В новом окне вводим имя группы, в которую будет добавлен пользователь. Проверяем нажав кнопку «Проверить имена«, далее «ОК«.
5. Также возможно добавить пользователя в группу, открыв нужную группу. Далее выбираем вкладку «Члены группы«. Нажимаем «Добавить«.
6. В новом окне вводим имена пользователей, которые будут добавлены в группу. Проверяем нажав клавишу «Проверить имена«, далее «ОК«.
Добавление подразделения в домене
1. Для добавления подразделения в домене нажимаем правой клавишей мыши на домен, в появившемся меню «Создать» — «Подразделение«.
2. Задаём имя подразделения, далее «ОК«.
3. Если необходимо, в созданном подразделении создаём вложенные подразделения. Далее в созданные подразделения можно перенести или создать различные объекты (пользователи, компьютеры, группы).
Удаление пользователя
1. Обычно сначала пользователя отключают и по истечении определенного промежутка времени удаляют. Для этого выбираем пользователя, правой клавишей мыши — «Отключить учетную запись«.
2. Для удаления выбирают необходимого пользователя, далее правой клавишей мыши — «Удалить«.
3. Появится предупреждение о том, что «Вы действительно хотите удалить Пользователь с именем…«. Нажимаем «Да» и выбранный пользователь будет удален из домена.
Удаление группы
1. Для удаления группы в домене выбираем нужную группу, нажимаем правой клавишей — «Удалить«.
2. Появится предупреждение о том, что «Вы действительно хотите удалить Группу безопасности….«. Нажимаем «Да«. Выбранная группа будет удалена из домена.
Удаление подразделения
1. Перед тем, как удалять подразделение, необходимо снять защиту, которая не дает удалить объект от случайного удаления. Если попробовать просто удалить подразделение, то появится предупреждение — «Недостаточные привилегии для удаления Departmnet1, или объект защищен от случайного удаления«.
2. Для снятия защиты в меню «Вид» выбираем «Дополнительные компоненты«.
3. Далее выбираем подразделение (объект), которое хотим удалить. Правой клавишей мыши — «Свойства«.
4. Выбираем вкладку «Объект«. Убираем чекбокс «Защитить объект от случайного удаления«, далее «ОК«.
5. Далее нажимаем правой клавишей мыши на выбранное подразделение — «Удалить«.
6. Появится предупреждение о том, что «Вы действительно хотите удалить Подразделение с именем….?«. Нажимаем «Да«. Если в выбранном объекте не будет других вложенных объектов, то подразделение будет удалено.
7. Если объект содержит другие объекты, то появится предупреждение «Объект Department1 содержит другие объекты. Вы действительно хотите удалить объект Department1 и все содержащиеся в нем объекты?«. Нажимаем «Да» и выбранный объект будет удален с вложенными объектами.
8. Далее в окне «Active Directory — пользователи и компьютеры» в меню «Вид» возвращаем галочку напротив «Дополнительные компоненты«.
Посмотреть видео о том, как создать или удалить пользователя, группу, объект в домене можно здесь:
- Windows server 2019 — установка и настройка WSUS, создание и настройка GPO
- Windows server 2019 — добавление и удаление компьютера в домене
- Windows server 2019 — переименование администратора домена, изменение формата выводимого имени пользователя
- Windows server 2019 — установка и настройка Active Directory, DNS, DHCP
- Windows server 2019 — установка и настройка сервера печати, разворачивание МФУ с помощью GPO
- Windows server 2019 — GPO изменение экранной заставки, отключение монитора, изменение политики паролей
{/source}