Это может показаться немного безумным вопросом, но как я могу узнать (надеюсь, через ключ 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 (щелкните ее правой кнопкой мыши и проверьте свойства) 🙂
Очень простой способ из PowerShell:
(Get-CimInstance -Class Win32_OperatingSystem) .InstallDate
Извлечено из: https://www.sysadmit.com/2019/10/windows-cuando-fue-instalado.html
Нажмите Wi ndowsKey + R и введите cmd
В командном окне введите:
systeminfo | find/i "Original"
(для более старых версий Windows введите «ORIGINAL» заглавными буквами).
3
Вы можете сделать это с помощью PowerShell:
Get-ItemProperty -Path 'HKLM: SOFTWARE Microsoft Windows NT CurrentVersion ' -Name InstallDate | Select-Object -Property @ {n = 'InstallDate'; e = {[DateTime] :: new (1970,1,1,0,0,0,0, 'UTC'). AddSeconds ($ _. InstallDate). ToLocalTime ()}}
Попробуйте эту команду powershell :
Get-ChildItem -Path HKLM: System Setup Source * | ForEach-Object {Get-ItemProperty -Path Registry :: $ _} | Select-Object ProductName, ReleaseID, CurrentBuild, @ {n = "Дата установки"; e = {([DateTime] '1/1/1970'). AddSeconds ($ _. InstallDate)}} | Сортировка объекта «Дата установки»
1
Попробовав различные методы, я решил, что время создания тома NTFS системного тома, вероятно, является лучшим прокси. Хотя есть инструменты для проверки (см. Эту ссылку), мне нужен метод без дополнительной утилиты. Я остановился на дате создания «C: System Volume Information» , и мне показалось, что в разных случаях он проверялся.
Однострочный PowerShell для получения это:
([DateTime] (Get-Item -Force 'C: System Volume Information '). CreationTime) .ToString ('MM/dd/yyyy' )
Как узнать, когда Windows была установлена на компьютер?
Есть несколько способов определить текущую версию Windows. Использование было установлено на компьютере. Ниже приведен список каждого из способов.
Поиск даты установки Windows с помощью systeminfo
Пользователи, работающие под управлением Microsoft Windows XP Professional, Windows Vista, Windows 7, Windows 8 или Windows 10 может использовать команду systeminfo, чтобы показать, когда Windows была установлена на компьютере. Чтобы запустить и использовать команду systeminfo, выполните следующие действия.
Если вы обновили до более новой версии Windows (например, обновили Windows 8 до Windows 10) исходный Показанная дата установки — это дата обновления.
- Откройте командную строку Windows.
- В командной строке введите следующая команда, чтобы показать только исходную дату установки. Если вы используете неанглийскую версию Windows, эта команда может не работать, и вы можете использовать один из других вариантов.
systeminfo | find/i "original "
Если все сделано правильно, systeminfo должна вернуть вывод, аналогичный показанному в примере.
Исходная дата установки: 17.12.2015, 19:09:50
или
- Откройте командную строку Windows.
- В командной строке введите systeminfo и нажмите Enter , чтобы увидеть результат, аналогичный следующему примеру. «Исходная дата установки» — это дата установки Windows на компьютер.
Имя хоста: COMPUTERHOPE
Имя ОС: Microsoft Windows 10 Pro
OS Версия: 10.0.10586 Н/Д Сборка 10586
Производитель ОС: Microsoft Corporation
Конфигурация ОС: Автономная рабочая станция
Тип сборки ОС: Многопроцессорная бесплатная
Зарегистрированный владелец: Computerhope
Зарегистрированная организация: Computer Hope
Идентификатор продукта: 00000-00000-00000-AAAAA
Исходная дата установки: 17.12.2015, 7:09:50 PM
Время загрузки системы: 28 марта 2016 г., 6:57:39
Производитель системы: Dell Inc.
Модель системы: XPS 8300
Тип системы: ПК на базе x64
Процессор (ы): 1 Процессор (ы) установлен.
[01]: Intel64 Family 6 Model 42 Stepping 7 Genuine Intel ~ 3401 Mhz
Версия BIOS: Dell Inc. A06, 17.10.2011
Каталог Windows: C: WINDOWS
Системный каталог: C: WINDOWS system32
Загрузочное устройство: Device HarddiskVolume1
Системный языковой стандарт: en-us; английский (США)
Язык ввода: en-us; английский (США)
Часовой пояс: (UTC-07: 00) Горное время (США и Канада )
Общий объем физической памяти: 8,174 МБ
Доступная физическая память: 2,955 МБ
Виртуальная память: максимальный размер: 16,366 МБ
Виртуальная память: Доступно: 6,455 МБ
Виртуальная память: Используется: 9 911 МБ
Расположение файла подкачки: C: pagefile.sys
Домен: WORKGROUP
Сервер входа в систему: \ MicrosoftAccount
Исправления: установлено 10 исправлений.
[01]: KB3116900
[02]: KB3124200
[03]: KB3124262
[04]: KB3124263
[05]: KB3135173
[06]: KB3139907
[07]: KB3140741
[08]: KB3140743
[09]: KB3140768
[10]: KB3144756
Сетевая карта (и): установлено 2 сетевых адаптера (и).
[01]: DW1501 Wireless-N WLAN Half-Mini Карта
Имя подключения: Wi-Fi
Статус: Media disco nnected
[02]: Broadcom NetLink (TM) Gigabit Ethernet
Имя подключения: Ethernet
DHCP включен: Да
DHCP-сервер: 192.168.1.1
IP-адрес (а)
[01]: 192.168.1.52
[02]: fe00 :: b0b0: 0000: 0000: 0000
Требования Hyper-V: режим монитора виртуальной машины Расширения: Да
Виртуализация включена во встроенном ПО: Да
Трансляция адресов второго уровня: Да
Доступно предотвращение выполнения данных: Да
Определение даты установки Windows в реестр
Дата установки также находится в реестре Windows для всех версий Windows, выполнив следующие действия.
- Откройте реестр.
- Перейдите по следующему пути.
HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion
- Оказавшись в папке выше, найдите ключ «InstallDate», который содержит шестнадцатеричное и десятичное значение даты установки Windows. Откройте ключ «InstallDate».
- Выберите Decimal , чтобы получить десятичное значение, которое представляет собой дату в эпоху. После того, как это значение скопировано, вам нужно использовать преобразователь эпох, чтобы преобразовать это значение в читаемую дату. Ниже приведен пример эпохи и ее преобразованного значения даты.
Значение эпохи: 1450404590
GMT значение: пт, 18 декабря 2015 г., 02:09:50 GMT