如何从 Windows 中更改的用户帐户名中识别(原始)用户配置文件名称?

如何从 Windows 中更改的用户帐户名中识别(原始)用户配置文件名称?

在 Windows 上,从控制面板更改用户帐户名称后,该名称将与用户配置文件名称不同。

如何从更改的用户帐户名中找到原始的用户配置文件名称?

答案1

每个帐户都有两个“名称”属性,因此让我稍微解释一下,以免大家混淆。一个是 SAM(安全帐户管理器)帐户名,它显示在 的输出中net user。就低级操作系统组件而言,这是帐户的名称。另一个是显示名称,它显示在控制面板的用户帐户页面和“开始”菜单中。MMC 的本地用户和组管理单元 ( lusrmgr.msc) 同时显示:名称列中的 SAM 名称和全名列中的显示名称。SAM 名称用于生成配置文件文件夹。

除非使用此 MMC 管理单元,否则更改 SAM 名称并不容易。只有对 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值保存的是其配置文件文件夹的路径。

答案2

如何从更改的用户帐户名中找到原始的用户配置文件名称?

在 Windows 安全系统事件日志中查找EventID 4781:帐户名称已更改

4781:帐户名称已更改

由主题标识的用户:更改了由目标帐户标识的用户的正常登录名或 Win2k 之前的登录名:。事件 4738 实际上提供了有关此更改的更好信息。

本地 SAM 帐户和域帐户都会记录此事件。

您还将看到事件 ID 4738,它会告知您相同的信息。

主题:

执行操作的用户和登录会话。

  • 安全 ID:帐户的 SID。
  • 账户名:账户登录名。
  • 帐户域:域或(本地帐户的情况下)计算机名称。
  • 登录 ID 是一个半唯一(每次重启后唯一)的数字,用于标识登录会话。登录 ID 允许您向后关联登录事件 (4624) 以及在同一登录会话期间记录的其他事件。

目标帐户:

  • 安全 ID:帐户的 SID
  • 账户名称:账户名称
  • 账户域名:账户所属的域名
  • 旧帐户名称:旧登录名
  • 新账户名:新登录名

来源EventID 4781:帐户名称已更改

答案3

这个答案基于这样的事实:重命名用户帐户不会自动更改配置文件路径。

如果帐户已重命名但配置文件路径未更改,则可以在注册表中 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

相关内容