Windows 의 인스톨 시각과 일자를 가르쳐 주세요.
좀 엉뚱한 질문처럼 들리겠지만 Windows 설치 시간과 날짜를 API/레지스트리 키를 통해 어떻게 확인할 수 있을까요?
지금까지 제가 생각해낼 수 있는 최선의 방법은 C:의 다양한 파일을 보는 것입니다.\Windows에서 추측을 해보겠습니다...하지만 그건 좋은 해결책이 아니에요
TLDR
중요: Windows 가 디스크 이미지를 사용해 「인스톨」 되어 있는 경우는, 어느쪽이든 실패합니다.
방법 1은 Windows가 새로운 메이저버전(예를 들어 Windows 10에서 Windows 11)으로 업그레이드되지 않은 경우에 유효합니다.명령어를 실행합니다.systeminfo
「Original Install Date(원래의 인스톨 날짜)」로 시작하는 행(또는 현지 언어에서는 같은 것)을 찾습니다.WMI를 조회하고 레지스트리를 조사하면 동일한 버전을 얻을 수 있습니다.창이 새로운 메이저버전으로 업그레이드된 경우 이 메서드로 인해 새로운 메이저버전의 설치일이 표시됩니다.PowerShell 시스템 정보
systeminfo | sls "original"
방법 2 메이저 업데이트 후에도 정상적으로 동작하는 것 같습니다.파일 생성 시간을 확인하여 설치 날짜를 얻을 수 있습니다.system.ini
들어 PowerShell을 하는 경우: PowerShell을 사용하는 경우:
(Get-Item "C:\Windows\system.ini").CreationTime
세부 사항
'코드 챌린지'에 적합한 또 다른 질문: 이 문제에 대한 해답을 얻을 수 있는 소스 코드 실행 파일이 몇 개 있지만 완전하지는 않습니다.누구나 자신의 컴퓨터에서 실행할 수 있는 VBScript를 찾을 수 있으며, 예상된 결과를 얻을 수 있습니까?
systeminfo|find /i "original"
실제 날짜를 알려드릴 수 있을 겁니다초수가 아니다;)
그러나 Salman A와 AutoMattTick의 2021년 코멘트에서 언급한 바와 같이 (동토)
Windows 가 새로운 버전으로 갱신되고 있는 경우는, Windows 를 재인스톨 한 날짜가 표시됩니다.
새미 코멘트로서find /i "install"
필요한 것보다 더 많이 줍니다.이것은 로케일이 영어일 경우에만 유효합니다.언어와 일치해야 합니다.스웨덴어에서는 다음과 같습니다.ursprungligt
및 " " " "ursprüngliches
독일어의 경우.
으로 5자를 줄이다
systeminfo|find "Original"
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
자동 설정(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
델피 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;
는 일반적인 윈도 전개에서는 변경되지 않은 상태로 유지되므로 실제로 다음 oneliner를 사용하여 설치 날짜를 얻을 수 있습니다.
(PowerShell): (Get-Item "C:\Windows\system.ini").CreationTime
»regedit.exe
링크:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate
1970년 1월 1일부터의 초수로 표시됩니다.(참고: Windows 10의 경우 이 날짜는 원래 설치 날짜가 아니라 마지막으로 기능 업데이트가 설치된 날짜입니다.)
이 숫자를 읽을 수 있는 날짜/시간으로 변환하려면 이 Unix Time Conversion 온라인 도구의 "UNIX TimeStamp:" 필드에 10진수 값을 붙여넣기만 하면 됩니다.
우리는 여기에 충분한 답을 가지고 있지만 나는 내 5센트를 넣고 싶다.
10이 .10/30/2015
Creators 가 Creators Update에 설치되어 있습니다.04/14/2017
이전 설치물 위에 올려놨어요.이전 답변에서 설명한 모든 방법을 통해 Creators Update 설치 날짜를 알 수 있습니다.
Windows 10 의 실제(클린) 인스톨 날짜와 일치하는 파일의 작성일은 거의 찾을 수 없었습니다.
C:\Windows
C:\
참고로 C:\ 및 C:\windows에서 가장 오래된 10개의 파일을 쉽게 가져올 수 있는 방법은 관리용 powershell 세션에서 다음 2개의 명령을 실행하는 것입니다.
dir -Force C:\ | sort -Property creationtime | select -Property name, creationtime -First 10
dir -Force C:\windows | sort -Property creationtime | select -Property name, creationtime -First 10
명령 프롬프트를 열고 "systeminfo"를 입력한 후 Enter 키를 누릅니다.시스템이 정보를 얻는 데 몇 분 정도 걸릴 수 있습니다.결과 페이지에 "시스템 설치 날짜" 항목이 표시됩니다.그것은 윈도우 설치 날짜입니다.이 프로세스는 XP, Win7 및 Win8에서도 동작합니다.
Windows 7 의 인스톨 일시 확인 방법:
이것 좀 봐...
- start > CMD 입력
- systeminfo를 입력합니다.
이상입니다. 그러면 기계에 대한 모든 정보를 볼 수 있습니다. 매우 간단한 방법
사용하시는 PC의 운영체제 설치 날짜를 알고 싶으십니까?여기에서는, PC operating system의 인스톨(또는 마지막으로 업그레이드한) 날짜와 시각을 빠르고 간단하게 확인할 수 있습니다.
명령 프롬프트(start-> run -> type cmd-> hit Enter)를 열고 다음 명령을 실행합니다.
systeminfo | /i "install date" 검색
몇 초 후에 설치 날짜가 표시됩니다.
Powershell에서 다음 명령을 실행합니다.
systeminfo | Select-String "Install Date:"
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)"
는 업데이트를 시작한 날짜/시간을 반영합니다.
c:\pagefile 작성일을 찾습니다.대부분의 경우 sys는 매우 신뢰할 수 있습니다.이 명령어를 사용하면 간단하게 취득할 수 있습니다(Windows 가 C: 에 인스톨 되어 있는 것을 전제로 합니다).
dir /as /t:c c:\pagefile.sys
'/as'는 '시스템 파일'을 지정합니다. 그렇지 않으면 찾을 수 없습니다.'/t:c'는 '생성'을 표시하도록 시간 필드를 설정합니다.
HKLM\SOFTWARE\Microsoft\Windows NT\Current Version\InstallDate 및 systeminfo.exe에서 잘못된 날짜가 생성됩니다.
UNIX 타임스탬프의 정의는 타임존에 의존하지 않습니다.UNIX 타임스탬프는 1970년 1월 1일 목요일 00:00:00 Coordinated Universal Time(UTC; 세계 표준시) 이후 경과한 초수로 정의되며 윤초는 카운트되지 않습니다.
즉, 미국 워싱턴주 시애틀에 컴퓨터를 설치하고 뉴욕으로 이사한 경우,NY 더 HKLM\SOFTWARE\Microsoft\Windows NT\Current Version\InstallDate에는 이 내용이 반영되지 않습니다.잘못된 날짜입니다. 컴퓨터가 처음 설치된 시간대는 저장되지 않습니다.
그 결과, 이 프로그램을 실행하는 동안 시간대를 변경하면 날짜가 잘못되어 버립니다. 시간대 변경을 고려하기 위해 실행 파일을 다시 실행해야 합니다.
그러나 표준 시간대 정보는 WMI Win32_Registry 클래스에서 얻을 수 있습니다.
InstallDate는 UTC 형식(yyymmdd)입니다.HHMSS.xxx±UU)는 Microsoft TechNet 기사 "WMI를 사용한 날짜 및 시간 작업"에 따라 달라집니다.여기서 xxxxxxxx는 밀리초이고 ±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);
}
WMIC를 사용하여 Windows 설치일 확인
wmic os가 instaldate를 가져옵니다.
PowerShell의 매우 심플한 방법:
(Get-CimInstance -Class Win32_OperatingSystem).InstallDate
출처: https://www.sysadmit.com/2019/10/windows-cuando-fue-instalado.html
Speccy를 사용합니다.OS 섹션에 설치 날짜가 표시됩니다.http://www.piriform.com/speccy
또한 "Windows" 및 "Program files"와 같은 시스템 드라이브의 폴더를 검사할 수도 있습니다.폴더를 마우스 오른쪽 버튼으로 클릭하고 속성을 클릭한 다음 일반 탭에서 폴더가 생성된 날짜를 확인합니다.
RunCommand에 입력하고 Enter 키를 누릅니다. 그러면 시스템과 관련된 모든 정보가 표시됩니다.
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"
여러 가지 방법을 시도해 본 결과 시스템 볼륨의 NTFS 볼륨 생성 시간이 최적의 프록시라고 생각했습니다.이것을 체크하는 툴이 있습니다만(이 링크를 참조), 추가 유틸리티가 없는 메서드를 원했습니다.나는 "C:"의 제작일을 정했다.\System Volume Information"이라고 하면 여러 경우에 체크 아웃이 되는 것 같습니다.
PowerShell은 다음 제품군을 통해 입수할 수 있습니다.
([DateTime](Get-Item -Force 'C:\System Volume Information\').CreationTime).ToString('MM/dd/yyyy')
+ 를 눌러 입력합니다.cmd
명령 창에 다음을 입력합니다.
systeminfo | find /i "Original"
(이전 버전의 윈도의 경우 모두 대문자로 "ORIGINAL"을 입력합니다).
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()}}
언급URL : https://stackoverflow.com/questions/170617/how-do-i-find-the-install-time-and-date-of-windows
'programing' 카테고리의 다른 글
NSApp Transport Security를 info.plist 파일에 추가하려면 어떻게 해야 하나요? (0) | 2023.04.13 |
---|---|
뭐 하는 거야? (0) | 2023.04.08 |
Grep - f와 동등한 PowerShell (0) | 2023.04.08 |
PowerShell 'profile.ps1' 파일에는 무엇이 있습니까? (0) | 2023.04.08 |
enctpe='art/form-data'는 무엇을 의미합니까? (0) | 2023.04.08 |