AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 588474
Accepted
MDMoore313
MDMoore313
Asked: 2014-04-12 11:26:30 +0800 CST2014-04-12 11:26:30 +0800 CST 2014-04-12 11:26:30 +0800 CST

如何查找本地用户帐户的创建日期?

  • 772

我想获取本地用户帐户的创建日期(如果重要的话,Win 7)。我查看了以下 WMI 对象(当然还有 google):

Win32_UserAccount Win32_NetworkLoginProfile

从返回的对象NetworkLoginProfile具有上次登录时间,但没有创建日期。检查Date Created其个人资料文件夹的属性仅给出该文件夹的创建日期,而不一定是帐户本身。

windows
  • 5 5 个回答
  • 57585 Views

5 个回答

  • Voted
  1. Best Answer
    Evan Anderson
    2014-04-12T11:55:30+08:002014-04-12T11:55:30+08:00

    数据在 SAM 中,但似乎没有被微软公开记录,我也没有找到官方 API 来检索它。我可以看到,查看该实用程序的源代码chntpw,该值存储在每个帐户的“F”注册表项中。引用源代码:

    #define USER_F_PATH "\\SAM\\Domains\\Account\\Users\\%08X\\F"
    
    struct user_F {
      ...
      char t_creation[8]; /* Time of account creation */
      ...
    }
    

    regripper取证项目有一个插件,samparse ,它将报告帐户创建日期。

    取证工具可能不是您想要的,但看起来微软并没有让它变得容易。


    在对此进行研究时,我确实发现Microsoft MVP 不知道帐户创建数据存储在 SAM 中确实很有趣。为了他的利益,也许他并没有离开该chntpw实用程序,这是我开始搜索有关未记录的 SAM 结构信息的地方。

    • 12
  2. HopelessN00b
    2014-04-12T11:52:27+08:002014-04-12T11:52:27+08:00

    真正知道的唯一方法是在创建帐户时在计算机上启用帐户管理审核。然后,您会在创建日期的事件日志中看到 EventID 4720。(文章说 Active Directory,但同样适用于本地帐户;我检查了。)

    没有它,您最接近的方法是检查用户注册表配置单元、ntuser.dat文件、用户配置文件文件夹等的创建日期,但正如评论中提到的,这仅对用户的第一次登录是准确的,因为那是那些事情被创建。

    对您来说不幸的是,这是“如果您没有记录,那么该信息不存在”的情况。

    • 3
  3. charleswj81
    2014-04-20T17:56:32+08:002014-04-20T17:56:32+08:00

    我正准备给你一个 POC PowerShell 脚本来提取和解析创建时间,但我意识到它chntpw的逻辑是不正确的。它称为创建时间的值实际上是密码上次设置的时间,尽管这些值在初始帐户创建时是相同的。有关 SAM 的详尽描述,请参见此处。

    不过,Evan 的第二个链接 forsamparse可能会正确。看看它确实有效。如果你在这里查看它的来源,第 99 行:

    $c_date = $create->get_timestamp();
    

    你会看到它get_timestamp从 Perl 的Parse::Win32Registry. 我很确定这实际上是密钥的最后一次写入时间。由于特定键 ( ) 似乎HKLM\SAM\SAM\Domains\Account\Users\Names\<USERNAME>仅包含指向相应 RID 键的指针,因此它不应在创建后更改,并且最后写入时间将等于创建时间。

    如果您想坚持使用更多内置工具,这里有一系列 Scripting Guy 文章,解释了如何通过 PowerShell:

    使用 PowerShell 访问注册表上次修改时间戳

    重用 PowerShell 注册表时间戳代码

    创建代理函数以显示注册表项时间戳

    通过 PowerShell 利用注册表键时间戳

    • 3
  4. Mike
    2017-08-12T10:38:40+08:002017-08-12T10:38:40+08:00

    powershell 中的这个命令应该可以解决问题:

    systeminfo | findstr /C:"Install Date"
    
    • -3
  5. Kevin
    2014-12-10T06:40:46+08:002014-12-10T06:40:46+08:00

    通过我的电脑导航到

    C:\Users,您将看到本地计算机上列出的所有用户帐户。您可以右键单击相应的用户帐户并转到属性,它将显示创建日期,这应该与用户帐户的创建相同

    只是我的 2 美分

    • -4

相关问题

  • 知道任何适用于 Windows 的快速可编写脚本的 ftp 客户端吗?[关闭]

  • 如果 Windows 服务崩溃,如何自动重新启动它?

  • 无法安排任务(访问被拒绝)

  • 物理机重启时自动重启虚拟机(VMWare)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve