Answers:
每个帐户都有两个“名称”属性,因此让我澄清一些事情,以免引起混淆。一个是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
cmdlet似乎在Windows 7版本的PowerShell中不存在。(我在Windows 10上进行了测试。)我编辑了答案,也可以在Windows 7上使用。
在Windows安全系统事件日志中查找EventID 4781:帐户名称已更改:
4781:帐户名称已更改
“主题:”标识的用户更改了“目标帐户:”标识的用户的常规登录名或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
net user
列出旧的用户名吗?好的,如果有很多用户名,仍然很难弄清楚,但是在PC上通常不是这样。
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....