回答:
にregedit.exe
行く:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate
1970年1月1日からの秒数で示されます(注:Windows 10の場合、この日付は、元のインストール日付ではなく、最後の機能更新がインストールされた日付になります)。
この数値を読み取り可能な日付/ 時刻に変換するには、このUnix時間変換オンラインツールのフィールド「UNIX TimeStamp:」に10進値を貼り付けるだけです。
' code-challenge 'で無視できる別の質問:問題に答えるためのいくつかのソースコード実行可能ファイルがありますが、完全ではありません。
誰でも自分のコンピューターで実行できる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のスクリプト言語)、それは次のようになります。
;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;
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
ています。私の前に回答で説明されているすべての方法で、Creators Updateのインストール日がわかります。
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)から経過した秒数として定義され、うるう秒はカウントされません。
つまり、ワシントン州シアトルにコンピュータをインストールし、ニューヨーク州ニューヨークに移動した場合、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」は、「作成」を表示するように時間フィールドを設定します。
Speccyを使用します。オペレーティングシステムセクションにインストール日が表示されます。 http://www.piriform.com/speccy
"windows"や "program files"などのシステムドライブ内の任意のフォルダを確認することもできます。フォルダを右クリックし、プロパティをクリックして、一般タブの下でフォルダが作成された日付を確認します。
.WIM
ファイル)を使用する新しいバージョンのWindowsでは、作成日はMicrosoftがイメージを作成した日付であり、OSが特定のマシンにインストールされた日付ではありません。
RunCommandで書き込み"MSINFO32"
とヒットを入力すると、システムに関連するすべての情報が表示されます
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"