Как узнать время и дату установки Windows?
Вопрос
Это может показаться немного сумасшедшим вопросом, но как мне узнать (надеюсь, через 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.
Мне удалось найти дату создания нескольких файлов, которая соответствует реальной (чистой) дате установки моей Windows 10:
- в
C:\Windows
- в
C:\
Откройте командную строку, введите " 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" всеми заглавными буквами).