В Windows имя учетной записи пользователя будет отличаться от имени профиля пользователя после его изменения с панели управления.
Как найти исходное имя профиля пользователя из измененного имени учетной записи пользователя?
В Windows имя учетной записи пользователя будет отличаться от имени профиля пользователя после его изменения с панели управления.
Как найти исходное имя профиля пользователя из измененного имени учетной записи пользователя?
Ответы:
У каждой учетной записи есть два свойства «name», поэтому позвольте мне немного прояснить ситуацию, чтобы не запутаться. Одним из них является имя учетной записи SAM (Security Account Manager), которое отображается в выходных данных net user
. Это имя учетной записи в отношении низкоуровневых компонентов ОС. Другое - это отображаемое имя, которое отображается на странице «Учетные записи пользователей» панели управления и в меню «Пуск». Оснастка «Местные пользователи и группы» для MMC ( lusrmgr.msc
) отображает как: имя SAM в столбце «Имя», так и отображаемое имя в столбце «Полное имя». Имя SAM - это то, что используется для создания папки профиля.
Изменить имя SAM не очень легко, если вы не используете эту оснастку MMC. Только изменения имени SAM приводят к событию 4781. Я подозреваю, что, учитывая, что вы не видите событие 4781 в своем журнале, изменилось только отображаемое имя. Это создает только событие 4738 («учетная запись пользователя была изменена»). Событие 4738 перечисляет только новое значение для отображаемого имени, а не старое значение, и я подозреваю, что история отображаемых имен нигде не хранится (ваша лучшая надежда будет копаться в журналах для большего количества экземпляров 4738).
К счастью, найти путь к профилю из отображаемого имени не так уж сложно. Откройте PowerShell и введите эту команду:
gwmi win32_useraccount
Вы получаете кучу записей, которые выглядят так:
AccountType : 512
Caption : <redacted>\tester
Domain : <redacted>
SID : S-1-5-21-<redacted>-1018
FullName : Test Account
Name : tester
Найдите тот, на FullName
котором отображается отображаемое имя учетной записи. Затем посмотрите на SID
значение (я отредактировал SID моей машины здесь). Откройте реестр и перейдите к ключу, упомянутому harrymc:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Откройте подключ с именем, совпадающим с идентификатором SID, который вы нашли. ProfileImagePath
Значение содержит путь к их папке профиля.
Get-LocalUser
командлет не существует в Windows 7 версии PowerShell. (Я тестировал на Windows 10.) Я также отредактировал свой ответ для работы на Windows 7.
В журнале событий системы безопасности Windows найдите EventID 4781: имя учетной записи было изменено :
4781: имя учетной записи было изменено
Пользователь, указанный в Subject: изменил либо обычное имя входа в систему, либо имя входа в систему, предшествующее Windows 2000, для пользователя, идентифицированного целевой учетной записью :. Событие 4738 фактически предоставляет лучшую информацию об этом изменении.
Это событие регистрируется как для локальных учетных записей SAM, так и для учетных записей домена.
Вы также увидите событие с кодом 4738, информирующее вас о той же информации.
Тема:
Пользователь и сеанс входа, который выполнил действие.
- Идентификатор безопасности: SID учетной записи.
- Имя учетной записи: имя для входа в учетную запись.
- Домен учетной записи: домен или, в случае локальных учетных записей, имя компьютера.
- Идентификатор входа - это полууникальный (уникальный между перезагрузками) номер, который идентифицирует сеанс входа. Идентификатор входа в систему позволяет коррелировать в обратном направлении к событию входа в систему (4624), а также к другим событиям, зарегистрированным во время того же сеанса входа в систему.
Целевая учетная запись:
- Идентификатор безопасности: SID учетной записи
- Имя учетной записи: имя учетной записи
- Домен аккаунта: домен аккаунта
- Старая учетная запись: старое имя входа
- Имя новой учетной записи: новое имя для входа
Этот ответ основан на том факте, что переименование учетной записи пользователя не приводит к автоматическому изменению пути профиля.
Если учетная запись была переименована, но путь к профилю не был изменен, имя пути можно найти в реестре
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
в элементе с именем ProfileImagePath
, значение которого будет
C:\Users\old-user-name
.
нажмите для увеличения изображения
Чтобы преобразовать отмеченный SID в имя текущей учетной записи пользователя, введите в cmd команду:
wmic useraccount where sid='S-1-3-12-12451234567-1234567890-1234567-1434' get name
net user
перечислить старые имена пользователей тоже? Хорошо, если есть много имен пользователей, это все еще трудно понять, но на ПК это обычно не так.
wmic useraccount where sid='S-1-3-12-12451234567-1234567890-1234567-1434' get name
.
Get-LocalUser : The term 'Get-LocalUser' is not recognized as the name of a cmdlet....