Вопрос

Это может показаться немного сумасшедшим вопросом, но как мне узнать (надеюсь, через API/ключ реестра) время и дату установки Windows?

Лучшее, что я могу придумать, это просмотреть различные файлы в C:\Windows и попытаться угадать...но это не совсем хорошее решение.

Это было полезно?

Решение

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate

Это число равно секундам с 1 января 1970 года.

Чтобы преобразовать это число в читаемую дату / время, просто вставьте десятичное значение в поле " UNIX TimeStamp: " этого онлайн-инструмента преобразования времени Unix .

Другие советы

Еще один вопрос, который можно задать для вызова кода ': вот несколько исполняемых файлов исходного кода для ответить на проблему, но они не являются полными.
Вы найдете скрипт vb, который любой может выполнить на своем компьютере с ожидаемым результатом?

<Ч>
systeminfo|find /i "original" 

даст вам фактическую дату ... а не количество секунд;)
Как Сэмми comments , 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 )

Если вы не используете 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;

У нас здесь достаточно ответов, но я хочу поставить свои 5 центов.

У меня установлена ​​Windows 10 10/30/2015 и Creators Update, установленные на 04/14/2017 поверх моей предыдущей установки.Все методы, описанные в ответах перед моими, дают мне дату установки Creators Update.

Original Install Date

Мне удалось найти дату создания нескольких файлов, которая соответствует реальной (чистой) дате установки моей Windows 10:

  • в C:\Windows

Few C:\Windows files

  • в C:\

Few C:\ files

Откройте командную строку, введите " systeminfo " и нажмите ввод. Ваша система может занять несколько минут, чтобы получить информацию. На странице результатов вы найдете запись под названием «Дата установки системы». Это дата установки Windows. Этот процесс работает в XP, Win7, а также на win8.

Как узнать дату/время установки Windows 7:

просто посмотри на это...

  • пуск > введите CMD
  • введите системную информацию

вот и все;тогда вы сможете увидеть всю информацию о вашей машине;очень простой метод

Вы когда-нибудь хотели узнать дату установки операционной системы на вашем компьютере? Вот быстрый и простой способ узнать дату и время установки (или последнего обновления) операционной системы вашего ПК.

Откройте командную строку (start-> gt;> введите cmd-> gt; нажмите enter) и выполните следующую команду

systeminfo | найти / я " дата установки "

Через пару секунд вы увидите дату установки

В Powershell выполните команду:

systeminfo | Select-String "Install Date:"

HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ InstallDate и systeminfo.exe создает неверная дата .

определение временной метки UNIX не зависит от часового пояса. Отметка времени UNIX определяется как количество секунд, прошедших с 00:00:00 по всемирному координированному времени (UTC), четверг, 1 января 1970 года, без учета високосных секунд.

Другими словами, если вы установили свой компьютер в Сиэтле, штат Вашингтон, и переехали в Нью-Йорк, штат Нью-Йорк, HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ InstallDate не будет отражать это. Это неправильная дата , она не хранит часовой пояс, в котором был изначально установлен компьютер.

В результате , если вы измените часовой пояс во время работы этой программы, дата будет неправильной. Необходимо повторно запустить исполняемый файл, чтобы он учитывал изменение часового пояса.

Но вы можете получить информацию о часовом поясе в WMI Win32_Registry class.

InstallDate имеет формат UTC (ггггммддччммсс.хххххх & # 177; UUU) согласно Microsoft TechNet статья " Работа с датами и временем с использованием WMI " где, в частности, xxxxxx - это миллисекунды, а & # 177; UUU - это количество минут, отличное от среднего времени по Гринвичу.

 private static string RegistryInstallDate()
    {

        DateTime InstallDate = new DateTime(1970, 1, 1, 0, 0, 0);  //NOT a unix timestamp 99% of online solutions incorrect identify this as!!!! 
        ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Registry");

        foreach (ManagementObject wmi_Windows in searcher.Get())
        {
            try
            {
                ///CultureInfo ci = CultureInfo.InvariantCulture;
                string installdate = wmi_Windows["InstallDate"].ToString(); 

                //InstallDate is in the UTC format (yyyymmddHHMMSS.xxxxxx±UUU) where critically
                // 
                // xxxxxx is milliseconds and       
                // ±UUU   is number of minutes different from Greenwich Mean Time. 

                if (installdate.Length==25)
                {
                    string yyyymmddHHMMSS = installdate.Split('.')[0];
                    string xxxxxxsUUU = installdate.Split('.')[1];      //±=s for sign

                    int year  = int.Parse(yyyymmddHHMMSS.Substring(0, 4));
                    int month = int.Parse(yyyymmddHHMMSS.Substring(4, 2));
                    int date  = int.Parse(yyyymmddHHMMSS.Substring(4 + 2, 2));
                    int hour  = int.Parse(yyyymmddHHMMSS.Substring(4 + 2 + 2, 2));
                    int mins  = int.Parse(yyyymmddHHMMSS.Substring(4 + 2 + 2 + 2,  2));
                    int secs  = int.Parse(yyyymmddHHMMSS.Substring(4 + 2 + 2 + 2 + 2, 2));
                    int msecs = int.Parse(xxxxxxsUUU.Substring(0, 6));

                    double UTCoffsetinMins = double.Parse(xxxxxxsUUU.Substring(6, 4));
                    TimeSpan UTCoffset = TimeSpan.FromMinutes(UTCoffsetinMins);

                    InstallDate = new DateTime(year, month, date, hour, mins, secs, msecs) + UTCoffset; 

                }
                break;
            }
            catch (Exception)
            {
                InstallDate = DateTime.Now; 
            }
        }
        return String.Format("{0:ddd d-MMM-yyyy h:mm:ss tt}", InstallDate);      
    }

Используйте Speccy. Показывает дату установки в разделе «Операционная система». http://www.piriform.com/speccy

Вы также можете проверить флажок в любой папке на системном диске, например " windows " и "программные файлы". Щелкните правой кнопкой мыши папку, выберите свойства и на вкладке «Общие» проверьте дату создания папки.

В RunCommand напишите " MSINFO32 " и нажмите ввод Он покажет всю информацию, связанную с системой

В ОС Windows 10 есть еще один раздел реестра, этот в файле куста SYSTEM:

> "\Setup\Source OS."

Информация о дате установки здесь - это дата и время установки исходной ОС компьютера. Он также сообщает вам, когда началось обновление, т.е.

 "\Setup\Source OS (Updated on xxxxxx)."

Конечно, это может быть не так, когда обновление заканчивается, пользователь может отключить его вместо перезагрузки при появлении запроса и т. д. ...

Обновление может фактически завершиться в другой день, и

> "\Setup\Source OS (Updated on xxxxxx)"

будет отражать дату / время начала обновления.

Я считаю, что дата создания c:\pagefile.sys в большинстве случаев может быть довольно достоверной.Его можно легко получить с помощью этой команды (при условии, что Windows установлена ​​на C:):

dir /as /t:c c:\pagefile.sys

Параметр «/as» указывает на «системные файлы», иначе они не будут найдены.'/t:c' устанавливает поле времени для отображения «создания».

Определите дату установки Windows с помощью WMIC

wmic os get installldate

Нажмите WindowsKey + R и введите cmd

В командной строке введите:

systeminfo | find /i "Original"

(для более старых версий окон введите "ORIGINAL" всеми заглавными буквами).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top