Fen*_*ver 8 windows windows-7 user-accounts user-profiles windows-10
在 Windows 上,从控制面板更改后,用户帐户名称将与用户配置文件名称不同。
如何从更改后的用户帐户名称中找到原始用户配置文件名称?
在 Windows 安全系统事件日志中查找EventID 4781:帐户名称已更改:
4781:帐户名称已更改
由 Subject: 标识的用户更改了由 Target Account: 标识的用户的正常登录名或 Win2k 之前的登录名。事件 4738 实际上提供了有关此更改的更好信息。
本地 SAM 帐户和域帐户都会记录此事件。
您还将看到事件 ID 4738,通知您相同的信息。
主题:
执行操作的用户和登录会话。
- 安全 ID:帐户的 SID。
- 帐户名:帐户登录名。
- 帐户域:域或 - 在本地帐户的情况下 - 计算机名称。
- 登录 ID 是标识登录会话的半唯一(重新启动之间唯一)编号。登录 ID 允许您向后关联登录事件 (4624) 以及在同一登录会话期间记录的其他事件。
目标账户:
- 安全 ID:帐户的 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
Run Code Online (Sandbox Code Playgroud)
每个帐户有两个“名称”属性,所以让我澄清一下,以免混淆。一个是 SAM(安全帐户管理器)帐户名称,它显示在net user
. 就低级操作系统组件而言,这是帐户的名称。另一个是显示名称,它显示在控制面板的用户帐户页面和开始菜单中。MMC 的本地用户和组管理单元 (lusrmgr.msc
)同时显示:名称列中的 SAM 名称和全名列中的显示名称。SAM 名称用于生成配置文件文件夹。
除非您使用此 MMC 管理单元,否则更改 SAM 名称并不容易。只有对 SAM 名称的更改才会产生事件 4781。我怀疑,鉴于您在日志中没有看到事件 4781,只有显示名称发生了更改。这只会产生事件 4738(“用户帐户已更改”)。事件 4738 只列出显示名称的新值,而不是旧值,我怀疑显示名称的历史记录没有保存在任何地方(您最好的希望是通过日志挖掘更多 4738 实例)。
幸运的是,从显示名称中找到配置文件路径并不太难。打开 PowerShell 并键入以下命令:
gwmi win32_useraccount
Run Code Online (Sandbox Code Playgroud)
你会得到一堆看起来像这样的条目:
AccountType : 512
Caption : <redacted>\tester
Domain : <redacted>
SID : S-1-5-21-<redacted>-1018
FullName : Test Account
Name : tester
Run Code Online (Sandbox Code Playgroud)
找到FullName
显示帐户显示名称的那个。然后查看该SID
值(我在这里编辑了我的机器 SID)。打开注册表并导航到 harrymc 提到的键:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Run Code Online (Sandbox Code Playgroud)
打开与您找到的 SID 同名的子项。该ProfileImagePath
值包含其配置文件文件夹的路径。