A common pain point in an IT administrator’s career is user profiles. User profiles are a ubiquitous part of a Windows IT pro’s life; especially those that manage virtual desktop environments like Remote Desktop Services (RDS) or Citrix. In this post, I’m going to demonstrate a way you take out your aggression by using PowerShell to delete user profiles (and discover them).
Системные администраторы Windows должны иметь дело с:
- поврежденными файлами реестра пользователей
- файлами, которые необходимо разделять между всеми профилями пользователей
- выяснением, как воссоздать поврежденные профили
- …и многим другим
То, что когда-то было утомительным опытом, стало немного менее утомительным с использованием PowerShell. Вот несколько способов, которыми PowerShell может облегчить управление профилями пользователей Windows.
Управление и отчетность по Active Directory, Exchange и Microsoft 365 с помощью ManageEngine ADManager Plus. Скачайте бесплатную пробную версию!
Перечисление профилей пользователей
Легко взглянуть на профили пользователей в файловой системе на одном компьютере под управлением Windows. Просто посмотрите в папке C:\Users. Но не только вы не получаете полной картины, когда делаете это, это также проблематично из-за потенциальных проблем с доступом к файловой системе. Есть лучший способ, и это через WMI или CIM. В CIM существует класс Win32_UserProfile. Этот класс содержит все профили, которые существуют на компьютере, и много другой полезной информации, которую простая папка файловой системы вам не расскажет.
С помощью PowerShell вы можете получить доступ к этому классу CIM с помощью команды Get-CimInstance
.
Ниже я нахожу первый профиль пользователя на локальном компьютере. Вы заметите множество полезной информации, такой как LastUseTime
, SID
и так далее.
Команда Get-CimInstance
не только работает локально, но и удаленно. Используя параметр ComputerName
, вы можете указать 1, 10 или 100 различных удаленных компьютеров, и она с удовольствием запросит каждый из них.
Удаление профилей пользователя
После того как вы поняли, как перечислить профили пользователей на компьютерах, вы можете пойти дальше и удалить эти профили.
I can’t count how many times I’ve had to delete user profiles because something got corrupted and I just needed the user to log in again and recreate it. At one time, I would simply have the user log off and remove the C:\Users<UserName> folder from the file system. Usually it works, sometimes it didn’t. What I didn’t realize was that I was actually leaving some remnants behind.
Правильный способ сделать это – инициировать удаление через CIM.
Используя тот же класс CIM, который вы только что рассмотрели, можно не только просматривать профили, но и полностью удалять их. Это то же самое, что и переход в Профили пользователей в настройках системы и нажатие Удалить кнопка.

Для этого снова перечислите профили пользователей, и на этот раз примените фильтр, чтобы выбрать один профиль пользователя для удаления. В этом случае удалите профиль пользователя с именем UserA. Вы можете сделать это, используя командлет Where-Object
PowerShell и некоторую строковую манипуляцию, чтобы получить имя папки пользователя из свойства LocalPath
, как показано ниже.
Как только вы сможете узкоспециализировать этот единственный профиль, вы можете передать этот экземпляр CIM в командлет Remove-CimInstance
для каждого объекта, который возвращает Get-CimInstance
. Этот процесс удалит профиль пользователя из файловой системы и реестра.
Снова, если вы хотите расширить это на несколько компьютеров, вы просто используете параметр ComputerName
на Get-CimInstance
.
Управляйте и отчитывайтесь о каталоге Active Directory, Exchange и Microsoft 365 с помощью ManageEngine ADManager Plus. Скачайте бесплатную пробную версию!
Резюме
Теперь вы видели простой способ перечисления и удаления профилей пользователей Windows. Если вы не были в курсе класса CIM Win32_UserProfile, вы могли рассматривать каталог C:\Users<Username> как профиль, но теперь вы должны знать, что нужно удалить экземпляр CIM Win32_UserProfile.
Вы видите, что профиль пользователя включает в себя гораздо больше, чем просто папка файловой системы. Используйте CIM, когда вам в следующий раз потребуется запросить или удалить профили пользователей с компьютеров под управлением Windows в вашей среде.
Source:
https://adamtheautomator.com/powershell-delete-user-profile/