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

Как узнать дату и время установки Windows?
На чтение
26 мин.
Просмотров
16
Дата обновления
11.11.2024

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

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


В regedit.exe перейдите в:

  HKEY_LOCAL_MACHINE  SOFTWARE  Microsoft  Windows NT  CurrentVersion  InstallDate  

Это количество секунд с 1 января 1970 года. (Примечание: для Windows 10 эта дата будет, когда было установлено последнее обновление функции, а не исходная дата установки.)

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


Другой вопрос, уместный для « code-challenge »: вот несколько исполняемых файлов исходного кода, которые отвечают на проблему, но они не полные.
Сможете ли вы найти сценарий vb, который каждый сможет выполнить на своем компьютере с ожидаемым результатом?


  systeminfo | find/i "original  " 

даст вам фактическую дату … не количество секунд;)
Как отмечает Сэмми, find/i" install " дает больше, чем вам нужно.
И это работает, только если языковой стандарт — английский: он должен соответствовать языку.
Для шведского это будет « ursprungligt «и» ursprüngliches «для немецкого языка.



В сценарии Windows PowerShell вы можете просто ввести:

  PS> $ os = get-wmiobject win32_operatingsystemPS> $ 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 InstallDatePS> $ d = get  -date -year 1970 -month 1 -day 1 -hour 0 -minute 0 -second 0 ## добавить к часам (смещение по Гринвичу) ##, чтобы программно получить смещение часового пояса: ## get-date -f zzPS> ($ d  .AddSeconds ($ id.InstallDate)). ToLocalTime (). AddHours ((get-date -f zz)) -f "MM/dd/yyyy"  

Остальная часть этот пост дает вам другие способы доступа к той же информации. Выберите свой яд;)


В VB.Net это даст что-то вроде:

  Dim dtmInstallDate As DateTimeDim oSearcher As New  ManagementObjectSearcher ("ВЫБРАТЬ * ИЗ Win32_OperatingSystem") Для каждого oMgmtObj как объекта управления в oSearcher.Get dtmInstallDate = ManagementDateTimeConverter. ToDateTime (CStr (oMgmtO bj ("InstallDate"))) Далее  

В Autoit (язык сценариев Windows) это будет:

 ; Дата установки Windows; $ 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 это будет выглядеть так:

  Функция GetInstallDate: String; Var di: longint;  buf: Массив [0..3] байтов; Начало результата: = 'Неизвестно';  С TRegistry.Create Начните RootKey: = HKEY_LOCAL_MACHINE;  LazyWrite: = True;  OpenKey (' SOFTWARE  Microsoft  Windows NT  CurrentVersion', False);  di: = readbinarydata ('InstallDate', buf, sizeof (buf));//Результат: = DateTimeToStr (FileDateToDateTime (buf [0] + buf [1] * 256 + buf [2] * 65535 + buf [3] *)  16777216)); showMessage (inttostr (di));  Свободный;  End; End;  

В качестве альтернативы CoastN предлагает в комментариях:

В качестве system.ini-file остается нетронутым при типичном развертывании Windows, вы можете фактически получить дату установки, используя следующую строку:

  (PowerShell): (Get-Item "C:  Windows  system.ini"). CreationTime  

17


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

У меня Windows 10 установлена ​​ 30.10.2015 , а Creators Update установлен 14.04.2017 поверх моего предыдущего установка. Все методы, описанные в ответах до моего, дают мне дату установки Creators Update.

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

  • в C:Windows

  • в C:

4


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

2


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

просто посмотрите это …

  • start> введите CMD
  • введите systeminfo

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


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

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

systeminfo | find/i «дата установки»

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

1


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

  systeminfo |  Select-String «Дата установки:»  

1


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

ComputerHKEY_LOCAL_MACHINESYSTEMSetup 

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

  Computer  HKEY_LOCAL_MACHINE  SYSTEM  Setup  Source OS (обновлено xxxxxx). " 

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

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

  Computer  HKEY_LOCAL_MACHINE  SYSTEM  Setup  Source OS (Обновлено xxxxxx) " 

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


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.

InstallDate находится в формате UTC (yyyymmddHHMMSS.xxxxxx ± UUU) согласно статье Microsoft TechNet «Работа с датами и временем с использованием WMI», где xxxxxx — миллисекунды, а ± UUU — количество минут, отличное от Время по Гринвичу.

  частная статическая строка RegistryInstallDate () {DateTime InstallDate = new DateTime (1970, 1, 1, 0, 0, 0); //НЕ временная метка unix. 99% онлайн-решений неверно определяют это как !!!!  ManagementObjectSearcher searchcher = новый ManagementObjectSearcher ("ВЫБРАТЬ * ИЗ Win32_Registry");  foreach (ManagementObject wmi_Windows в search.Get ()) {try {///CultureInfo ci = CultureInfo.InvariantCulture;  строка installdate = wmi_Windows ["InstallDate"]. ToString (); //Дата установки находится в формате UTC (yyyymmddHHMMSS.xxxxxx ± UUU), где критически////xxxxxx - миллисекунды, а//± UUU - количество минут, отличное от среднего времени по Гринвичу.  если (installdate.Length == 25) {строка yyyymmddHHMMSS = installdate.Split ('.') [0];  строка xxxxxxsUUU = installdate.Split ('.') [1]; //± = s для знака int year = int.Parse (yyyymmddHHMMSS.Substring (0, 4));  int месяц = ​​int.Parse (ггггммддЧЧММСС.Substring (4, 2));  int date = int.Parse (ггггммддЧЧММСС.Substring (4 + 2, 2));  int час = int.Parse (ггггммддЧЧММСС.Substring (4 + 2 + 2, 2));  int mins = int.Parse (ггггммддЧЧММСС.Substring (4 + 2 + 2 + 2, 2));  int secs = int.Parse (ггггммддЧЧММСС.Substring (4 + 2 + 2 + 2 + 2, 2));  интервал msecs = int.Parse (xxxxxxsUUU.Substring (0, 6));  double UTCoffsetinMins = double.Parse (xxxxxxsUUU.Substring (6, 4));  TimeSpan UTCoffset = TimeSpan.FromMinutes (UTCoffsetinMins);  InstallDate = new DateTime (год, месяц, дата, час, минуты, секунды, миллисекунды) + UTCoffset;  } перерыв;  } catch (исключение) {InstallDate = DateTime.Now;  }} return String.Format ("{0: ддд д-МММ-гггг ч: мм: сс тт}", InstallDate);  }  

3


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

  dir/as/t:cc:pagefile.sys pre> 
Символ '/as' указывает на 'системные файлы', иначе он не будет найден. '/T: c' устанавливает в поле времени отображение слова «создание».

3


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

wmic os get installdate

1


Используйте speccy. Дата установки отображается в разделе «Операционная система». Http://www.piriform. com/speccy

1


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

3


В RunCommand напишите "MSINFO32" и нажмите Enter. Будет показана вся информация, относящаяся к системе

1


Вы можете просто проверить дату создания папки Windows (щелкните ее правой кнопкой мыши и проверьте свойства)

0 Комментариев
Комментариев на модерации: 0
Оставьте комментарий