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


Answers:


6

每个帐户都有两个“名称”属性,因此让我澄清一些事情,以免引起混淆。一个是SAM(安全帐户管理器)帐户名,该帐户名显示在的输出中net user。就低级OS组件而言,这是帐户的名称。另一个是显示名称,它显示在“控制面板”的“用户帐户”页面和“开始”菜单中。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值保存其个人资料文件夹的路径。


输入您说的命令后,我收到此错误消息:Get-LocalUser : The term 'Get-LocalUser' is not recognized as the name of a cmdlet....
Fenixtriver

@FeniXtriver糟糕,该Get-LocalUsercmdlet似乎在Windows 7版本的PowerShell中不存在。(我在Windows 10上进行了测试。)我编辑了答案,也可以在Windows 7上使用。
本N

我实际上也在Windows 10上进行了测试,但是它似乎不起作用。无论如何,给出的新命令现在可以使用了。非常感谢您的宝贵意见。我已将您的答案标记为正确。:)
Fenixtriver

8

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

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

4781:帐户名称已更改

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

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

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

学科:

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

  • 安全性ID:帐户的SID。
  • 帐户名:帐户登录名。
  • 帐户域:域或计算机名称(如果是本地帐户,则为计算机名称)。
  • 登录ID是标识登录会话的半唯一(重新启动之间唯一)数字。登录ID允许您向后关联到登录事件(4624)以及在同一登录会话期间记录的其他事件。

目标帐户:

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

EventID 4781:帐户名称已更改


我在事件日志中找不到此事件。除了更改用户帐户名称以使用户帐户名称不同于用户配置文件名称以外,还有其他可能性吗?还是有其他识别方式?
Fenixtriver

@FeniXtriver您查看了安全事件日志吗?我不知道其他更改用户配置文件名称的方法,除非有人入侵了注册表。
DavidPostill

1
我怀疑这里的SAM帐户名称与显示名称有些混淆。我刚刚进行了测试,更改显示名称(例如使用“控制面板”)不会创建事件4781,因为它不会更改SAM名称。
本N

@DavidPostill是的,我已经调查了安全事件日志。我相信Ben N's是对的。我已将他的回答标记为正确。还是要谢谢你的帮助。如果您还有其他需要补充的地方,请随时告诉我。:)
Fenixtriver

8

该答案基于以下事实:重命名用户帐户不会自动更改配置文件路径。

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

1
要添加更多...也不会net user列出旧的用户名吗?好的,如果有很多用户名,仍然很难弄清楚,但是在PC上通常不是这样。
LPChip

1
@harrymc您如何知道哪个帐户名对应哪个配置文件路径?
Fenixtriver

1
一种方法是获取密钥,该密钥是一个以'S'开头的长字符串,然后在cmd中输入command wmic useraccount where sid='S-1-3-12-12451234567-1234567890-1234567-1434' get name
harrymc

@LPChip,您是对的。
Fenixtriver

@harrymc问题是我们一开始不知道SID是什么。目前,我已将Ben N的答案标记为正确。无论如何,非常感谢您的投入。如有任何补充,请随时告诉我。:)
Fenixtriver
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.