当前位置:  开发笔记 > 后端 > 正文

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

如何解决《如何查找Windows的安装时间和日期?》经验,为你挑选了7个好方法。

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

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



1> VonC..:

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


systeminfo|find /i "original" 

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


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

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

使用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"

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


在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

在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

在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;


使用`systeminfo | find/i"original"`仅过滤"原始安装日期".如果您使用"install"作为字符串,您将获得比您需要的更多信息.此外,如果语言环境不是英语,那么这可能不起作用.它需要匹配语言.对于瑞典人来说,对于德国人来说,这将是"ursprungligt"和"ursprüngliches".
我发现了原因.这是因为我的Windows不是英文版.:)

2> 小智..:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate

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

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


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

3> Nikolay Kost..:

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

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

原始安装日期

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

C:\Windows

几乎没有C:\ Windows文件

C:\

很少C:\文件


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

4> 小智..:

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


在Windows 7上,这会给出“原始安装日期”条目,由于某些原因,该条目是11.1.2002,这显然是不正确的:(

5> 小智..:

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

看到这个......

开始>输入CMD

输入systeminfo

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



6> 小智..:

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

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

systeminfo | 找/我"安装日期"

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


直到您安装了主要服务包,然后它反映了该日期

7> 小智..:

在Powershell中运行命令:

systeminfo | Select-String "Install Date:"


Select-String要求Windows PowerShell版本> 3.0更好地使用`find/i`
推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有