如何查找Windows的安装时间和日期?

Fre*_*est 123 windows install

这可能听起来有点像一个疯狂的问题,但我怎么能找到(希望通过API /注册表项)Windows的安装时间和日期?

到目前为止我能想到的最好的方法是查看C:\ Windows中的各种文件并尝试猜测......但这并不是一个很好的解决方案.

Von*_*onC 162

另一个对" 代码挑战 " 敏感的问题:这里有一些源代码可执行文件来回答这个问题,但它们并不完整.
你会找到一个vb脚本,任何人都可以在他/她的计算机上执行,具有预期的结果吗?


systeminfo|find /i "original" 
Run Code Online (Sandbox Code Playgroud)

会给你实际的日期...而不是秒数;)
正如Sammy 评论,find /i "install"给出的不仅仅是你需要的.
这仅适用于语言环境为英语的情况:它需要与语言匹配.
对于瑞典语来说,这对德语来说就是" ursprungligt"和" ursprüngliches".


在Windows PowerShell脚本中,您只需键入:

PS > $os = get-wmiobject win32_operatingsystem
PS > $os.ConvertToDateTime($os.InstallDate) -f "MM/dd/yyyy" 
Run Code Online (Sandbox Code Playgroud)

使用WMI(Windows Management Instrumentation)

如果您不使用WMI,则必须先读取转换注册表值:

PS > $path = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
PS > $id = get-itemproperty -path $path -name InstallDate
PS > $d = get-date -year 1970 -month 1 -day 1 -hour 0 -minute 0 -second 0
## add to hours (GMT offset)
## to get the timezone offset programatically:
## get-date -f zz
PS > ($d.AddSeconds($id.InstallDate)).ToLocalTime().AddHours((get-date -f zz)) -f "MM/dd/yyyy"
Run Code Online (Sandbox Code Playgroud)

本文的其余部分为您提供了访问相同信息的其他方法.选择你的毒药;)


在VB.Net中会给出类似的东西:

Dim dtmInstallDate As DateTime
Dim oSearcher As New ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem")
For Each oMgmtObj As ManagementObject In oSearcher.Get
    dtmInstallDate =
        ManagementDateTimeConverter.ToDateTime(CStr(oMgmtO bj("InstallDate")))
Next
Run Code Online (Sandbox Code Playgroud)

Autoit(Windows脚本语言)中,它将是:

;Windows Install Date
;
$readreg = RegRead("HKLM\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\", "InstallDate")
$sNewDate = _DateAdd( 's',$readreg, "1970/01/01 00:00:00")
MsgBox( 4096, "", "Date: " & $sNewDate )
Exit
Run Code Online (Sandbox Code Playgroud)

在Delphy 7中,这将是:

Function GetInstallDate: String;
Var
  di: longint;
  buf: Array [ 0..3 ] Of byte;
Begin
  Result := 'Unknown';
  With TRegistry.Create Do
  Begin
    RootKey := HKEY_LOCAL_MACHINE;
    LazyWrite := True;
    OpenKey ( '\SOFTWARE\Microsoft\Windows NT\CurrentVersion', False );
    di := readbinarydata ( 'InstallDate', buf, sizeof ( buf ) );
//    Result := DateTimeToStr ( FileDateToDateTime ( buf [ 0 ] + buf [ 1 ] * 256 + buf [ 2 ] * 65535 + buf [ 3 ] * 16777216 ) );
showMessage(inttostr(di));
    Free;
  End;
End;
Run Code Online (Sandbox Code Playgroud)

  • 使用`systeminfo | find/i"original"`仅过滤"原始安装日期".如果您使用"install"作为字符串,您将获得比您需要的更多信息.此外,如果语言环境不是英语,那么这可能不起作用.它需要匹配语言.对于瑞典人来说,对于德国人来说,这将是"ursprungligt"和"ursprüngliches". (3认同)
  • 我发现了原因.这是因为我的Windows不是英文版.:) (2认同)
  • 对我来说,systeminfo|find /i "original" 返回 6/30/2017,因为我已经拥有这台机器大约 4 年了,所以它必须是一些 Windows 更新。 (2认同)
  • 显示我是两周前安装的系统,但实际上已经有一两年了。看来这是最后一次大升级的日期了。 (2认同)

小智 83

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate
Run Code Online (Sandbox Code Playgroud)

它是自1970年1月1日以来的秒数.

要将该数字转换为可读日期/时间,只需将十进制值粘贴到此Unix时间转换在线工具的 "UNIX TimeStamp:"字段中.

  • 不起作用反映了最新的servicepack/update安装日期(例如CURRENT版本,而不是原始版本的安装时间. (7认同)
  • 除非使用磁盘映像安装Windows,否则效果很好.有没有办法检查用户配置文件的创建来解决这个问题? (5认同)
  • 那很好,你有一个特殊的地方去获取这些信息,或者你只知道它? (3认同)
  • 我认为它提供的是上次Windows更新日期,而不是系统安装日期。 (2认同)

Nik*_*tov 42

我们在这里有足够的答案,但我想把我的5美分.

我安装了Windows 10,10/30/201504/14/2017在我以前的安装之上安装了Creators Update .我之前的答案中描述的所有方法都给出了Creator Update安装的日期.

原始安装日期

我设法找到几个文件的创建日期,它与我的Windows 10的真实(干净)安装日期相匹配:

  • C:\Windows

几乎没有C:\ Windows文件

  • C:\

很少C:\文件

  • 比其他答案更好,但成像部署怎么样? (6认同)
  • 这绝对更接近正确的答案; 其他解决方案不再适用于Windows 10升级.但是,此处列出的5个文件/文件夹中没有一个在我的系统上有正确的日期(有些是后来的,有些是实际上更早的).但是,我在系统上找到了1个文件和2个文件夹,其中包含正确的日期:C:\ Windows\hbcikrnl.ini,C:\ Windows\symbols \,&C:\ Windows\CSC \.因此,如果您知道它何时,请转到C:\ Windows \,显示系统系统文件,按日期排序,并找到看起来正确的内容. (6认同)

小智 36

打开命令提示符,键入" systeminfo "并按Enter键.您的系统可能需要几分钟才能获得信息.在结果页面中,您将找到一个条目"系统安装日期".这是Windows安装的日期.此过程适用于XP,Win7以及win8.

  • 请注意,您必须是管理员才能执行此操作。 (2认同)
  • 在Windows 7上,这会给出“原始安装日期”条目,由于某些原因,该条目是11.1.2002,这显然是不正确的:( (2认同)

小智 17

如何找出Windows 7的安装日期/时间:

看到这个......

  • 开始>输入CMD
  • 输入systeminfo

而已; 然后你可以看到有关你的机器的所有信息; 非常简单的方法


小智 12

曾经想知道你PC的操作系统安装日期吗?这是一种快速简便的方法,可以找出安装(或上次升级)PC操作系统的日期和时间.

打开命令提示符(start-> run - > type cmd-> hit enter)并运行以下命令

systeminfo | 找/我"安装日期"

几秒钟后,您将看到安装日期

  • 直到您安装了主要服务包,然后它反映了该日期 (3认同)

小智 10

在Powershell中运行命令:

systeminfo | Select-String "Install Date:"
Run Code Online (Sandbox Code Playgroud)

  • Select-String要求Windows PowerShell版本> 3.0更好地使用`find/i` (2认同)

小智 7

Windows 10 操作系统还有另一个注册表子项,该子项位于 SYSTEM hive 文件中:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\Setup\
Run Code Online (Sandbox Code Playgroud)

此处的安装日期信息是原始计算机操作系统安装日期/时间。它还告诉您更新何时开始,即

 Computer\HKEY_LOCAL_MACHINE\SYSTEM\Setup\Source OS (Updated on xxxxxx)."
Run Code Online (Sandbox Code Playgroud)

这当然可能不是在更新结束时,用户可以在提示时选择关闭而不是重新启动等......

更新实际上可以在不同的一天完成,并且

Computer\HKEY_LOCAL_MACHINE\SYSTEM\Setup\Source OS (Updated on xxxxxx)"
Run Code Online (Sandbox Code Playgroud)

将反映开始更新的日期/时间。


小智 5

我发现 c:\pagefile.sys 的创建日期在大多数情况下都非常可靠。使用以下命令可以轻松获取它(假设 Windows 安装在 C: 上):

dir /as /t:c c:\pagefile.sys
Run Code Online (Sandbox Code Playgroud)

“/as”指定“系统文件”,否则找不到。'/t:c' 将时间字段设置为显示“创建”。