답변:
에서 regedit.exe
로 이동
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate
1970 년 1 월 1 일 이후의 시간 (초)으로 제공됩니다. (참고 : Windows 10의 경우이 날짜는 원래 설치 날짜가 아니라 마지막 기능 업데이트가 설치된 날짜입니다.)
이 숫자를 읽을 수있는 날짜 / 시간으로 변환하려면이 Unix Time Conversion 온라인 도구 의 "UNIX TimeStamp :"필드에 10 진수 값을 붙여 넣으십시오 .
' 코드 도전 '에 대한 또 다른 질문 은 다음과 같습니다. 여기에 문제를 해결하기위한 일부 소스 코드 실행 파일이 있지만 완전하지는 않습니다.
누구나 컴퓨터에서 실행할 수있는 vb 스크립트를 예상 한 결과로 찾을 수 있습니까?
systeminfo|find /i "original"
당신에게 실제 날짜 ...없는 초 줄 것입니다;)
으로 새미의 의견을 , 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 Management Instrumentation ) 를 사용하여
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 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;
대안으로 CoastN 은 다음 과 같이 의견을 제안 합니다 .
는 AS
system.ini-file
일반적인 Windows 배포의 손길이 닿지 않은 숙박, 당신은 실제로 다음 oneliner을 사용하여 설치 날짜를 얻을 수 있습니다 :(PowerShell): (Get-Item "C:\Windows\system.ini").CreationTime
systeminfo|find /i "original"
"원래 설치 날짜"만 필터링하는 데 사용하십시오 . "install"을 문자열로 사용하면 필요한 것보다 많은 정보를 얻을 수 있습니다. 또한 로케일이 영어가 아닌 경우 작동하지 않을 수 있습니다. 언어와 일치해야합니다. 스웨덴어의 경우 독일어의 경우 "ursprungligt"및 "ursprüngliches"입니다.
여기에 충분한 답변이 있지만 5 센트를 넣고 싶습니다.
이전 설치 위에 Windows 10이 설치되어 10/30/2015
있고 Creators Update가 설치되어 04/14/2017
있습니다. 내 답변에 설명 된 모든 방법은 크리에이터 업데이트 설치 날짜를 알려줍니다.
Windows 10의 실제 설치 날짜와 일치하는 파일 생성 날짜가 거의 없습니다.
C:\Windows
C:\
system.ini
내 Windows 7 및 2008 컴퓨터에서 이해가되지 않는 날짜 , 설치 소스에서 생성 된 타임 스탬프가 설치시 복사되는 것으로 보입니다. C:\pagefile.sys
정확한 타임 스탬프가있었습니다.
명령 프롬프트를 열고 " systeminfo "를 입력 한 후 Enter를 누르십시오. 정보를 얻는 데 몇 분이 걸릴 수 있습니다. 결과 페이지에 "시스템 설치 날짜"라는 항목이 있습니다. 이것이 Windows 설치 날짜입니다. 이 프로세스는 XP, Win7 및 win8에서도 작동합니다.
PC의 운영 체제 설치 날짜를 알고 싶습니까? 다음은 PC 운영 체제가 설치되거나 마지막으로 업그레이드 된 날짜와 시간을 빠르고 쉽게 찾을 수있는 방법입니다.
명령 프롬프트를 열고 (start-> run-> type cmd-> hit enter) 다음 명령을 실행하십시오.
systeminfo | / i "설치 날짜"찾기
몇 초 안에 설치 날짜가 표시됩니다
Powershell에서 다음 명령을 실행하십시오.
systeminfo | Select-String "Install Date:"
find /i
Windows 10 OS에는 SYSTEM 하이브 파일에있는 또 다른 레지스트리 하위 키가 있습니다.
Computer\HKEY_LOCAL_MACHINE\SYSTEM\Setup\
여기서 설치 날짜 정보는 원래 컴퓨터 OS 설치 날짜 / 시간입니다. 또한 업데이트가 시작된 시점을 알려줍니다. 즉
Computer\HKEY_LOCAL_MACHINE\SYSTEM\Setup\Source OS (Updated on xxxxxx)."
물론 업데이트가 종료되지 않았을 수도 있고, 프롬프트가 표시되면 재부팅하지 않고 끄도록 선택할 수도 있습니다.
실제로 다른 날에 업데이트를 완료 할 수 있으며
Computer\HKEY_LOCAL_MACHINE\SYSTEM\Setup\Source OS (Updated on xxxxxx)"
업데이트를 시작한 날짜 / 시간을 반영합니다.
HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ InstallDate 및 systeminfo.exe가 잘못된 날짜를 생성합니다 .
정의 UNIX 타임 스탬프의이 시간대에 독립적이다. UNIX 타임 스탬프는 1970 년 1 월 1 일 목요일 00:00:00 협정 세계시 (UTC) 이후 경과 한 초 수로 정의되며 윤초를 계산하지 않습니다.
즉, 시애틀, WA에 컴퓨터를 설치하고 뉴욕으로 옮긴 경우 HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ InstallDate에이 내용이 반영되지 않습니다. 날짜 가 잘못되어 컴퓨터가 처음 설치된 시간대를 저장하지 않습니다.
이것의 효과는있다 이 프로그램을 실행하는 동안 시간대를 변경하는 경우, 날짜가 잘못된 것입니다. 표준 시간대 변경을 설명하려면 실행 파일을 다시 실행해야합니다.
그러나 WMI Win32_Registry 클래스 에서 시간대 정보를 얻을 수 있습니다 .
InstallDate는 Microsoft TechNet 기사 "WMI를 사용한 날짜 및 시간에 대한 작업" 에 따라 UTC 형식 (yyyymmddHHMMSS.xxxxxx ± UUU)으로되어 있습니다. 여기서 xxxxxx는 밀리 초이고 ± 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);
}
c : \ pagefile.sys의 생성 날짜는 대부분의 경우에 매우 신뢰할 수 있습니다. 이 명령을 사용하여 쉽게 얻을 수 있습니다 (Windows가 C :에 설치되어 있다고 가정).
dir /as /t:c c:\pagefile.sys
'/ as'는 '시스템 파일'을 지정합니다. 그렇지 않으면 찾을 수 없습니다. '/ t : c'는 'creation'을 표시하도록 시간 필드를 설정합니다.
정교함을 사용하십시오. 운영 체제 섹션에 설치 날짜가 표시됩니다. http://www.piriform.com/speccy
"windows"및 "program files"와 같은 시스템 드라이브의 폴더를 확인할 수도 있습니다. 폴더를 마우스 오른쪽 버튼으로 클릭하고 속성을 클릭 한 다음 일반 탭에서 폴더를 만든 날짜를 확인하십시오.
.WIM
파일) 를 사용하는 최신 버전의 Windows 에서 생성 날짜는 OS가 특정 시스템에 설치 될 때가 아니라 Microsoft가 이미지를 생성 한 날짜입니다.
RunCommand에서 write "MSINFO32"
and hit enter 시스템과 관련된 모든 정보를 표시합니다.
PowerShell에서 매우 간단한 방법 :
(Get-CimInstance -Class Win32_OperatingSystem).InstallDate
https://www.sysadmit.com/2019/10/windows-cuando-fue-instalado.html 에서 추출
를 눌러 WindowsKey+ R를 입력cmd
명령 창에서 다음을 입력하십시오.
systeminfo | find /i "Original"
(이전 버전의 창의 경우 모든 대문자로 "ORIGINAL"을 입력하십시오).
Windows 폴더의 생성 날짜를 마우스 오른쪽 버튼으로 클릭하고 속성을 확인하십시오. :)
이 powershell 명령을 사용해보십시오 :
Get-ChildItem -Path HKLM:\System\Setup\Source* |
ForEach-Object {Get-ItemProperty -Path Registry::$_} |
Select-Object ProductName, ReleaseID, CurrentBuild, @{n="Install Date"; e={([DateTime]'1/1/1970').AddSeconds($_.InstallDate)}} |
Sort-Object "Install Date"