这可能听起来有点像一个疯狂的问题,但我怎么能找到(希望通过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)
小智 83
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate
Run Code Online (Sandbox Code Playgroud)
它是自1970年1月1日以来的秒数.
要将该数字转换为可读日期/时间,只需将十进制值粘贴到此Unix时间转换在线工具的 "UNIX TimeStamp:"字段中.
Nik*_*tov 42
我们在这里有足够的答案,但我想把我的5美分.
我安装了Windows 10,10/30/2015
并04/14/2017
在我以前的安装之上安装了Creators Update .我之前的答案中描述的所有方法都给出了Creator Update安装的日期.
我设法找到几个文件的创建日期,它与我的Windows 10的真实(干净)安装日期相匹配:
C:\Windows
C:\
小智 36
打开命令提示符,键入" systeminfo "并按Enter键.您的系统可能需要几分钟才能获得信息.在结果页面中,您将找到一个条目"系统安装日期".这是Windows安装的日期.此过程适用于XP,Win7以及win8.
小智 12
曾经想知道你PC的操作系统安装日期吗?这是一种快速简便的方法,可以找出安装(或上次升级)PC操作系统的日期和时间.
打开命令提示符(start-> run - > type cmd-> hit enter)并运行以下命令
systeminfo | 找/我"安装日期"
几秒钟后,您将看到安装日期
小智 10
在Powershell中运行命令:
systeminfo | Select-String "Install Date:"
Run Code Online (Sandbox Code Playgroud)
小智 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' 将时间字段设置为显示“创建”。
归档时间: |
|
查看次数: |
236777 次 |
最近记录: |