Это может показаться немного безумным вопросом, но как я могу узнать (надеюсь, через ключ 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 (щелкните ее правой кнопкой мыши и проверьте свойства)