it-swarm.com.de

Wie finde ich die Installationszeit und das Installationsdatum von Windows?

Das hört sich vielleicht wie eine verrückte Frage an, aber wie kann ich (hoffentlich über eine API/einen Registrierungsschlüssel) die Installationszeit und das Installationsdatum von Windows herausfinden?

Das Beste, was ich bisher finden kann, ist, mir verschiedene Dateien in C:\Windows anzuschauen und zu raten ... aber das ist nicht gerade eine gute Lösung.

118
Free Wildebeest
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate

Es ist als die Anzahl der Sekunden seit dem 1. Januar 1970 angegeben.

Um diese Zahl in ein lesbares Datum/eine lesbare Uhrzeit umzuwandeln, fügen Sie einfach den Dezimalwert in das Feld "UNIX TimeStamp:" dieses nix Time Conversion Online Tool ein.

82
Tommy

Eine weitere Frage, die für ein 'Code-Challenge' beantwortet werden kann: Hier sind einige ausführbare Quellcode-Dateien, um das Problem zu lösen, aber sie sind es unvollständig.
Finden Sie ein vb-Skript, das jeder mit dem erwarteten Ergebnis auf seinem Computer ausführen kann?


systeminfo|find /i "original" 

würde dir das aktuelle Datum geben ... nicht die Anzahl der Sekunden;)
As SammyKommentare , find /i "install" gibt mehr als Sie brauchen.
Und das funktioniert nur, wenn das Gebietsschema Englisch ist: Es muss mit der Sprache übereinstimmen.
Für Schwedisch wäre dies "ursprungligt" und "ursprüngliches "für Deutsch.


In Windows PowerShell können Sie einfach Folgendes eingeben:

PS > $os = get-wmiobject win32_operatingsystem
PS > $os.ConvertToDateTime($os.InstallDate) -f "MM/dd/yyyy" 

Mit WMI ( Windows Management Instrumentation )

Wenn Sie WMI nicht verwenden, müssen Sie den Registrierungswert lesen und anschließend konvertieren:

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"

Der Rest dieses Beitrags bietet Ihnen andere Möglichkeiten, auf dieselben Informationen zuzugreifen. Wähle dein Gift ;)


In VB.Net würde das so etwas geben:

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

In Autoit (eine Windows-Skriptsprache) wäre das:

;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

In Delphy 7 würde das so aussehen:

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;
159
VonC

Wir haben hier genug Antworten, aber ich möchte meine 5 Cent setzen.

Ich habe Windows 10 auf 10/30/2015 Und Creators Update auf 04/14/2017 Installiert, zusätzlich zu meiner vorherigen Installation. Alle in meinen Antworten beschriebenen Methoden geben mir das Datum der Creators Update-Installation an.

Original Install Date

Es ist mir gelungen, das Erstellungsdatum weniger Dateien zu ermitteln, die mit dem tatsächlichen (sauberen) Installationsdatum von Windows 10 übereinstimmen:

  • in C:\Windows

Few C:\Windows files

  • in C:\

Few C:\ files

40
Nikolay Kostov

Öffnen Sie die Eingabeaufforderung, geben Sie "systeminfo" ein und drücken Sie die Eingabetaste. Ihr System benötigt möglicherweise einige Minuten, um die Informationen abzurufen. Auf der Ergebnisseite finden Sie einen Eintrag als "System Installation Date". Das ist das Datum der Windows-Installation. Dieser Prozess funktioniert in XP, Win7 und auch auf Win8.

35

So finden Sie das Installationsdatum und die Installationszeit für Windows 7 heraus:

sieh dir das an ...

  • start> CMD eingeben
  • geben Sie systeminfo ein

das ist es; dann können Sie alle Informationen über Ihre Maschine sehen; sehr einfache Methode

17
ani alexander

Wollten Sie schon immer das Installationsdatum Ihres PCs herausfinden? Hier finden Sie schnell und einfach das Datum und die Uhrzeit der Installation (oder des letzten Upgrades) Ihres PC-Betriebssystems.

Öffnen Sie den Befehl Eingabeaufforderung (Start -> Ausführen -> Geben Sie cmd ein -> drücken Sie die Eingabetaste) und führen Sie den folgenden Befehl aus

systeminfo | find/i "Installationsdatum"

In wenigen Sekunden sehen Sie das Installationsdatum

12
Robin

Führen Sie in Powershell den folgenden Befehl aus:

systeminfo | Select-String "Install Date:"
8
user3827180

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate und systeminfo.exe erzeugen das falsches Datum.

Das Definition des UNIX-Zeitstempels ist zeitzonenunabhängig. Der UNIX-Zeitstempel ist definiert als die Anzahl der Sekunden, die seit dem Donnerstag, dem 1. Januar 1970, 00:00:00 UTC (Coordinated Universal Time) vergangen sind und Schaltsekunden nicht zählen.

Mit anderen Worten, wenn Sie Ihren Computer in Seattle, WA, installiert und nach New York, NY, gezogen haben, wird das HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate dies nicht widerspiegeln. Es ist das falsche Datum . Die Zeitzone, in der der Computer ursprünglich installiert wurde, wird nicht gespeichert.

Dies hat zur Folge, dass , wenn Sie die Zeitzone ändern, während dieses Programm ausgeführt wird, das Datum falsch ist. Sie müssen die ausführbare Datei erneut ausführen, damit sie die Änderung der Zeitzone berücksichtigt.

Sie können die Zeitzoneninformationen jedoch über die Klasse WMI Win32_Registry abrufen.

InstallDate hat das UTC-Format (yyyymmddHHMMSS.xxxxxx ± UUU) gemäß Microsoft TechNet article "Arbeiten mit Datums- und Uhrzeitangaben mithilfe von WMI", wobei insbesondere xxxxxx Millisekunden und ± UUU eine vom Greenwich Mean abweichende Anzahl von Minuten ist Zeit.

 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);      
    }
4
Markus

Das Windows 10-Betriebssystem verfügt über einen weiteren Registrierungsunterschlüssel, den folgenden in der SYSTEM Hive-Datei:

> "\Setup\Source OS."

Die Informationen zum Installationsdatum sind das Installationsdatum und die Installationszeit des ursprünglichen Betriebssystems. Außerdem erfahren Sie, wann das Update gestartet wurde, d. H

 "\Setup\Source OS (Updated on xxxxxx)."

Dies kann natürlich nicht der Fall sein, wenn das Update beendet ist. Der Benutzer kann sich dafür entscheiden, das Update zu deaktivieren, anstatt es neu zu starten, wenn er dazu aufgefordert wird.

Das Update kann tatsächlich an einem anderen Tag abgeschlossen werden

> "\Setup\Source OS (Updated on xxxxxx)"

wird das Datum/die Uhrzeit widerspiegeln, an dem/der die Aktualisierung gestartet wurde.

3
Amit Gupta

Ich finde, dass das Erstellungsdatum von c:\pagefile.sys in den meisten Fällen ziemlich zuverlässig sein kann. Es kann leicht mit diesem Befehl abgerufen werden (vorausgesetzt, Windows ist auf C installiert :):

dir /as /t:c c:\pagefile.sys

Das '/ as' gibt 'Systemdateien' an, andernfalls wird es nicht gefunden. Das '/ t: c' setzt das Zeitfeld für die Anzeige von 'creation'.

3
MoonDogg

Bestimmen Sie das Windows-Installationsdatum mit WMIC

wmic os bekommt installdate

2
Lko Jegue

In RunCommand schreibe "MSINFO32" und drücken Sie die Eingabetaste. Es werden alle Informationen zum System angezeigt

1
shailesh

Verwenden Sie speccy. Es zeigt das Installationsdatum im Abschnitt Betriebssystem. http://www.piriform.com/speccy

1
Amin

Sie können auch jeden Ordner auf dem Systemlaufwerk überprüfen, z. B. "Windows" und "Programmdateien". Klicken Sie mit der rechten Maustaste auf den Ordner, klicken Sie auf die Eigenschaften und überprüfen Sie auf der Registerkarte Allgemein das Datum, an dem der Ordner erstellt wurde.

1
Tekki

Sie können einfach das Erstellungsdatum des Windows-Ordners überprüfen (klicken Sie mit der rechten Maustaste darauf und überprüfen Sie die Eigenschaften) :)

0
farhad.kargaran

Drücken Sie WindowsKey + R und gib cmd ein

Geben Sie im Befehlsfenster Folgendes ein:

systeminfo | find /i "Original"

(Geben Sie für ältere Windows-Versionen in Großbuchstaben "ORIGINAL" ein).

0