Иногда возникает момент когда нужно удалить все следы пребывания некого пользователя в операционной системе. Если рассмотреть в теории всё просто, заходим в В “мой компьютер” это если windows 7 или в “Компьютер” это если Win 8-10, нажимаем правой кнопкой мыши на пустом месте папки и выбираем “свойства” откроется окно
И далее по картинке и по номерам цифр, на третьем пункте выбираем профиль для удаления и нажимаем кнопку удалить как на пункте 4.
Вот и здорово если всё удалилось, но не всегда так, и даже если вы удалите от сюда профиль всё равно данные в реестре останутся.
Для полного удаления заходим в реестр командой “regedit”.
Если вы не знаете как попасть в реестр то вводим в поиске операционной системы эту команду regedit и дальше по картинке переходим в ветку реестра отвечающую за профиля пользователей.
В верху адрес куда нам нужно попасть и на нижней стрелке нужно найти свой профиль для удаления. А дальше просто кнопкой “Delete” и перезагружаем систему, всё больше профиля нет.
Администраторы время от времени должны удалять старые профили пользователей (уволенные пользователи, неактивные пользователи, и т.д.) в каталоге 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 для конкретного пользователя.
Профиль пользователя представляет собой набор файлов и папок для хранения всех личных предпочтений, параметров приложения, документов и других данных.
Каждая учетная запись Пользователя имеет соответствующий профиль пользователя.
Как правило, он хранится в C:\Users\Username и включает в себя ряд вложенных папок, таких как рабочий стол, документы, загрузки и т. д. вместе с скрытыми папками, как папка appdata, которая сохраняет настройки для различных компонентов Windows и установленных приложений.
Основной целью профиля пользователя является создание персонализированной среды с индивидуальными опциями, адаптированными к конечному пользователю.
Если ваш профиль пользователя поврежден или вам нужно восстановить его по умолчанию, то вы можете удалить профиль без удаления учетной записи. При следующем входе в систему для учетной записи пользователя автоматически создается новый профиль. Посмотрим, как это сделать.
Перед началом убедитесь, что ваша учетная запись имеет права администратора. Кроме того, нельзя удалить профиль текущего аккаунта (активные). Убедитесь, что вы вошли в систему с другой учетной записью пользователя, а не на один профиль, данные которого вы хотите удалить.
— Нажмите Win+R на клавиатуре.
— Введите следующее в текстовое поле и нажмите клавишу ввод:
SystemPropertiesAdvanced
system-properties-advanced-in-the-run-dialog
— Откройте дополнительные свойства системы. Там нажмите на кнопку параметры в разделе профили пользователей.
user-profiles-settings-button-system-properties
— В окне Профили пользователей выберите профиль учетной записи пользователя и нажмите кнопку Удалить.
delete-user-profile-windows-10
— Подтвердите запрос, и профиль учетной записи пользователя будет удален.
— При следующем входе пользователя его профиль будет автоматически создан со всеми параметрами и настройками по умолчанию.
Удалить профиль пользователя в Windows 10 вручную
— Откройте проводник.
— Перейдите в папку C:\Users и найдите имя пользователя, которое вы хотите удалить. В соответствующей папке содержится все, что связано с профилем пользователя, поэтому необходимо просто удалить эту папку.
delete-user-profile-folder-windows-10
— Теперь откройте редактор реестра.
— Перейдите в следующий раздел реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList.
— Слева пройдите через подразделы. Для каждого подраздела найдите значения строкового значения ProfileImagePath. После того, как вы найдете удаляемый профиль пользователя, удалите его.
registry-profile-path
— Вот и все! Вы только что удалили профиль пользователя для учетной записи. Он будет повторно создан с использованием значений по умолчанию при следующем входе пользователя.
Источник:
Winaero
.
Перевел: Яндекс переводчик.
Опубликовал: Билл Гейтц.
Содержание
- Удаляем локальные учетки в Windows 10
- Способ 1: Панель управления
- Способ 2: Командная строка
- Способ 3: Окно команд
- Способ 4: Консоль управления компьютером
- Способ 5: Параметры
- Вопросы и ответы
ОС Windows 10 — это многопользовательская операционная система. Это означает, что на одном ПК может одновременно присутствовать несколько учетных записей, принадлежащим одному или разным пользователям. Исходя из этого, может возникнуть ситуация, когда необходимо удалить определенный локальный аккаунт.
Стоит упомянуть, что в Windows 10 существуют локальные аккаунты и учетные записи Microsoft. Последние используют для входа электронную почту и позволяют работать с набором персональных данных независимо от аппаратных ресурсов. То есть, имея такой аккаунт, Вы можете легко работать на одном ПК, а потом продолжить на другом, и при этом все Ваши настройки и файлы сохранятся.
Рассмотрим, как можно удалить локальные данные пользователя на ОС Виндовс 10 несколькими простыми способами.
Также стоит отметить, что для удаления юзеров, независимо от способа, нужно иметь права администратора. Это необходимое условие.
Способ 1: Панель управления
Самый простой способ удалить локальный аккаунт — это воспользоваться штатным инструментом, который можно открыть через «Панель управления». Итак, для этого необходимо выполнить такие действия.
- Зайдите в «Панель управления». Это можно сделать через меню «Пуск».
- Нажмите иконку «Учетные записи пользователей».
- Далее, «Удаление учетных записей пользователей».
- Щелкните по объекту, который Вы хотите уничтожить.
- В окне «Изменение учетной записи» выберите пункт «Удаление учетной записи».
- Кликните на кнопке «Удалить файлы», если Вы хотите уничтожить все файлы юзера или кнопку «Сохранение файлов» для того, чтобы оставить копию данных.
- Подтвердите свои действия, кликнув по кнопке «Удаление учетной записи».
Способ 2: Командная строка
Аналогичного результата достичь можно, используя командную строку. Это более быстрый метод, но его не рекомендуется использовать новичкам, так как система в таком случае не будет переспрашивать удалять ли юзера или нет, не предложит сохранить его файлы, а просто удалит все, что связано с конкретным локальным аккаунтом.
- Откройте командную строку (правый клик по кнопке «Пуск-> Командная строка (администратор)»).
- В окне, которое появится, наберите строку (команду)
net user "Имя пользователя" /delete
, где под Именем пользователя подразумевается логин аккаунта, который Вы хотите уничтожить, и нажмите клавишу «Enter».
Способ 3: Окно команд
Еще один способ удалить данные, которые используются для входа. Подобно командной строке, этот метод навсегда уничтожит аккаунт без лишних вопросов.
- Нажмите комбинацию «Win+R» или откройте окно «Выполнить» через меню «Пуск».
- Введите команду
control userpasswords2
и нажмите «ОК». - В окне, которое появится, на вкладке «Пользователи», щелкните по имени юзера, которого Вы хотите уничтожить, и нажмите кнопку «Удалить».
Способ 4: Консоль управления компьютером
- Нажмите правой кнопкой на меню «Пуск» и найдите пункт «Управление компьютером».
- В консоли, в группе «Служебные программы» выберите пункт «Локальные пользователи» и сразу же справа кликните по категории «Пользователи».
- В построенном списке учетных записей найдите ту, которую необходимо уничтожить и нажмите на соответствующую иконку.
- Щелкните по кнопке «Да» для подтверждения удаления.
Способ 5: Параметры
- Нажмите кнопку «Пуск» и кликните на иконке в виде шестеренки («Параметры»).
- В окне «Параметры», перейдите в раздел «Учетные записи».
- Далее, «Семья и другие люди».
- Найдите имя юзера, которого Вы собираетесь удалить, и щелкните по нему.
- А потом нажмите кнопку «Удалить».
- Подтвердите удаление.
Очевидно, что методов удаления локальных учетных записей предостаточно. Поэтому, если необходимо провести такую процедуру, то просто выберите способ, который Вам больше всего понравился. Но всегда нужно отдавать себе строгий отчет и понимать, что эта операция влечет за собой бесповоротное уничтожение данных для входа и всех файлов юзера.
Еще статьи по данной теме:
Помогла ли Вам статья?
Столкнулся с проблемой — глюканул профиль пользователя: винда стала требовать пароль, при этом, пароля там не было. Сброс пароля с помощью net user ни к чему не приводил. В учетных записях (netplwiz) пользователь не отображался, однако в реестре профиль был, команда net users его показывала.
Поскольку, там ничего ценного не было, то решил удалить его и создать другой.
В командной строке ввел net user profile_name /delete — сообщение, что команда выполнена.
Перезагрузил, в командной строке net users — профиль на месте.
net user profile_name /delete выдает ошибку, что профиля нет.
net user profile_name /add выдает ошибку, что профиль есть.
В общем, профиль Шредингера.
При этом, не работает ПУ — Учетные записи пользователей — Изменение типа… и ПУ — Учетные записи пользователей — Удаление… не открываются.
В реестре, в ветке HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList раздел профиля удалил.
ОС Win10 Home
Собственно, вопрос: как удалить профиль не переустанавливая системы?
-
Вопрос задан
-
78 просмотров