Site icon Winhelponline

How to Find Windows Installation Date and Time

You may sometimes think of reinstalling Windows, especially when its performance goes down after a few years due to several different factors. And, you may like to know the date and time of your current Windows installation.

This post shows you the different methods using which you can determine the original installation date and time of your Windows installation. The information applies to all versions of Windows, including Windows 10.

Note that in Windows 10, the following methods show the installation date of the most recent feature update you installed, and not the install date and time of your 1st Windows 10 build.

How to Find Windows Installation Date and Time

1. Using SystemInfo

Open a Command Prompt window and type:


To output only the Original Install Date field, type:

systeminfo | findstr Date

2. Settings page in Windows 10

The Settings page shows the Windows installation date in Windows 10.

Click Start → Settings → System → About.

Scroll down to Windows specifications to find the Windows install date.

Screenshot of the settings page in Windows 10 v20H2

3. Using WMI/WSH Script

Copy the following VBScript code to Notepad, save with .vbs extension in ANSI encoding, and run the file.

Set dtmInstallDate = CreateObject( _
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& "." & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
For Each objOS In colOperatingSystems
   MsgBox "Install Date: " & getdate (objOS.InstallDate), _
   vbOKOnly, "OS Install Date"

Function getdate(wmitime)
   dtmInstallDate.Value = wmitime
   getdate = dtmInstallDate.GetVarDate
End Function

4. Using WMIC (WMI command-line)

wmic os get installdate

The date/time stamp is shown in the following WMI time format:


..which translates to:

29/05/2020, 11:38:49

5. Using PowerShell

This again uses WMI, but the only difference is it’s run from PowerShell and uses PowerShell’s built-in ConvertToDateTime function.

([WMI]'').ConvertToDateTime((Get-WmiObject Win32_OperatingSystem).InstallDate)

5. Using the Windows Registry

The Windows installation date and time is stored in the following registry key in the values named InstallDate and InstallTime:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate

The InstallDate value data contains the Unix time which represents the number of seconds that have elapsed since 1970-01-01T00:00:00Z (January 1, 1970, at 12:00 AM UTC).  To convert the data into a readable format, you can the Epoch converter website or run a couple of PowerShell commands.

via Epoch Converter site

Visit the Epoch converter website and type the timestamp you found in the registry, and convert it to human date format.

Convert Unix time to readable date/time

Using PowerShell

In the PowerShell window, run these two commands:

$date = Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\' | select -ExpandProperty InstallDate

(Get-Date "1970-01-01 00:00:00.000Z") + ([TimeSpan]::FromSeconds($date))

The above shows the date and time of the current Windows 10 feature update (v20H2) installation.

Windows 10/11 Build/Version Upgrade History

Did you know that Windows 10/11 keeps track of your every build/feature upgrade in the registry? Redditor u/sizzlr has found an interesting registry location and wrote a PowerShell script to unscramble the Windows 10/11 build installation dates from the registry.

Every time you install a feature update, Windows 10/11 creates a new subkey named “Source OS (Updated on )” and a bunch of values in the right pane. The registry key is located at:


Additionally, there are two values, namely InstallTime and InstallDate, which store the install date and time. The following PowerShell script gathers all the details for you and presents in a table:

$AllBuilds = $(gci "HKLM:\System\Setup" | ? {$_.Name -match "\\Source\s"}) | % { $_ | Select @{n="UpdateTime";e={if ($_.Name -match "Updated\son\s(\d{1,2}\/\d{1,2}\/\d{4}\s\d{2}:\d{2}:\d{2})\)$") {[dateTime]::Parse($Matches[1],([Globalization.CultureInfo]::CreateSpecificCulture('en-US')))}}}, @{n="ReleaseID";e={$_.GetValue("ReleaseID")}},@{n="Branch";e={$_.GetValue("BuildBranch")}},@{n="Build";e={$_.GetValue("CurrentBuild")}},@{n="ProductName";e={$_.GetValue("ProductName")}},@{n="InstallTime";e={[datetime]::FromFileTime($_.GetValue("InstallTime"))}} };

$AllBuilds | Sort UpdateTime | ft UpdateTime, ReleaseID, Branch, Build, ProductName

The installation date for each build/version is maintained in the registry.

Do you know any other methods to find the Windows install date? Let’s know in the Comments section below.

Exit mobile version