Windows 登录历史记录和操作系统安装日期

Windows 登录历史记录和操作系统安装日期,windows,powershell,batch-file,operating-system,computer-science,Windows,Powershell,Batch File,Operating System,Computer Science,实际上,在我购买笔记本电脑之前,我想知道windows操作系统的安装日期。以及卖家在我购买之前的登录次数,以及日期和时间 登录日期存储在事件日志中。因此,您可以使用wevtutil查询事件: wevtutil qe Security /q:"*[System/EventID=4624] and *[System/Task=12544] and *[EventData/Data[@Name='LogonType']=5]" /e:Events /f:Text | find "Date:" 对于安

实际上,在我购买笔记本电脑之前,我想知道windows操作系统的安装日期。以及卖家在我购买之前的登录次数,以及日期和时间

登录日期存储在事件日志中。因此,您可以使用
wevtutil
查询事件:

wevtutil qe Security /q:"*[System/EventID=4624] and *[System/Task=12544] and *[EventData/Data[@Name='LogonType']=5]" /e:Events /f:Text | find "Date:"
对于安装日期,您可以使用:

WMIC OS GET InstallDate /format:value

请使用转换日期尝试此批次代码:

@echo off
Color 9B & Mode con cols=60 lines=3
Title The Install Date of your OS by Hackoo 2016
for /f "delims=" %%A in ('WMIC OS GET InstallDate /format:value') do (
    @for /f "tokens=2 delims==" %%B in ("%%A") do (
        Call :ConvertDate %%B
    )>"%~n0.txt"
)

for /f "delims=" %%D in ('Type "%~n0.txt"') do ( set InstallDate=%%D )
echo(
echo    The Install Date of your OS is : %InstallDate%
pause>nul
Exit /b
::**********************************************************************
Rem Function for Converting WMI Dates to a Standard Date-Time Format
:ConvertDate <Date>
(
    echo WScript.echo WMIDateStringToDate("%~1"^)
    echo Function WMIDateStringToDate(Mydate^)
    echo  WMIDateStringToDate = CDate(Mid(Mydate, 5, 2^) ^& "/" ^& _
    echo  Mid(Mydate, 7, 2^) ^& "/" ^& Left(Mydate, 4^) _
    echo  ^& " " ^& Mid (Mydate, 9, 2^) ^& ":" ^& _
    echo  Mid(Mydate, 11, 2^) ^& ":" ^& Mid(Mydate,13, 2^)^)
    echo End Function
)>"%~n0.vbs"
cscript /nologo "%~n0.vbs" "%~1"
Del "%~n0.vbs"
exit /b
::**********************************************************************
@echo关闭
颜色9B和模式con cols=60行=3
标题:2016年Hackoo之前的操作系统安装日期
对于('WMIC OS GET InstallDate/格式:value')中的/f“delims=“%%A(
@对于/f“令牌=2个delims==”%%B in(“%%A”)do(
电话:ConvertDate%%B
)>“%~n0.txt”
)
对于/f“delims=“%%D in('Type“%~n0.txt“')do(set InstallDate=%%D)
回音(
回显操作系统的安装日期为:%InstallDate%
暂停>nul
退出/b
::**********************************************************************
Rem函数,用于将WMI日期转换为标准日期时间格式
:兑换日期
(
echo WScript.echo WMIDateStringToDate(“%1”^)
回显函数WMIDateStringToDate(Mydate^)
echo WMIDateStringToDate=CDate(中期(Mydate,5,2^)^&“/”^&_
回音中(Mydate,7,2^)^&“/”^&左(Mydate,4^)_
回音^&“^&Mid(Mydate,9,2^)^&:”^&_
回音中期(Mydate,11,2^)^&:“^&Mid(Mydate,13,2^)^)
回波结束函数
)>“%~n0.vbs”
cscript/nologo“%~n0.vbs”“%~1”
Del“%~n0.vbs”
退出/b
::**********************************************************************

使用Powershell获取所需数据:

$date = Get-Date -Date 26.04.2016 #date when you bought your laptop
$wmi = Get-WmiObject -Class Win32_OperatingSystem
$logons = Get-EventLog -LogName Security -EntryType SuccessAudit -InstanceId 4624 -Before $date
@{InstallDate=$wmi.ConvertToDateTime($wmi.InstallDate);LogonsCount=$logons.count}

请确保您的安全日志最近未被清理以获取正确的值。

好的。您想使用powershell或批处理文件执行此操作吗?到目前为止您尝试了什么?请参阅
wmic os get/value
输出中的
InstallDate
属性。我在cmd中键入了systeminfo,但结果发现原始安装日期为t他是我的系统从microsoft进行升级的日期。我从run中尝试eventvwr.msc命令的次数更多,但在windows日志中,我没有找到我要搜索的结果。@jissak从值中可以看出我的操作系统上次更新的日期,就像我从cmd@JosefZOkay使用systeminfo命令得到的结果一样!我有一台笔记本电脑d 2台式机。如果我的笔记本电脑显示上次更新时间。如果我的一台台式机的操作系统是windows 8.1,则显示我安装操作系统的实际日期。如果我的台式机的处理器是AMD,操作系统是windows 10,则显示我既没有安装操作系统,也没有从microsoft获取操作系统更新的时间。但我想知道实际的安装日期我的笔记本电脑运行OS时的日期installed@Dream_Wind-您也可以尝试
systeminfo |查找/i“安装日期”
,但它将生成相同的结果。我认为没有其他工具来确定安装日期。