Das Systemdatum ändern, um eine Anwendung zu testen
Es ist der älteste Trick überhaupt: die Windows-Uhr auf das Datum stellen, das Sie testen wollen, das Programm starten, die Uhr zurückstellen. Das funktioniert - und solange die Uhr verstellt ist, verstellt sie auch alles andere auf dem Rechner.
Was sich mit der Uhr tatsächlich verschiebt
Die Systemuhr gehört nicht allein dem Programm, das Sie testen. Jeder Prozess, jeder Dienst und jede Netzwerkverbindung auf dem Rechner liest dieselbe Uhr, also ist eine Änderung für einen Test eine Änderung für alle.
| Was die Uhr liest | Was passiert, wenn Sie sie verstellen |
|---|---|
| Domänenanmeldung und Netzwerkfreigaben | Kerberos toleriert standardmäßig einen Uhrenunterschied von fünf Minuten. Darüber werden seine Tickets abgelehnt, und die Anmeldung oder der Zugriff auf eine Freigabe schlägt fehl. |
| Zertifikate und HTTPS | Ob ein Zertifikat gültig ist, wird an der Uhr entschieden. Stellen Sie sie hinter das Ablaufdatum eines Zertifikats, wird jede Verbindung, die sich darauf stützt, als abgelaufen abgelehnt; stellen Sie sie weit genug zurück, ist das Zertifikat noch nicht gültig. |
| Der Windows-Zeitdienst | Ein Rechner in einer Domäne bezieht seine Zeit von einem Domänencontroller, und der Dienst korrigiert die Uhr standardmäßig unabhängig von der Größe der Abweichung. Das Datum, das Sie gesetzt haben, kann rückgängig gemacht werden, während Sie noch testen. |
| Alles, was eine Zeit aufzeichnet | Dateien, Logs, Datenbankzeilen und gesendete Mails, die bei verstellter Uhr entstehen, tragen das Testdatum und behalten es, nachdem Sie die Uhr zurückgestellt haben. |
| Software, die sich das späteste gesehene Datum merkt | Manche Programme lesen eine rückwärts laufende Uhr als Manipulation - und genau das passiert, wenn Sie das echte Datum wiederherstellen. |
Je weiter das Datum, desto mehr davon begegnet Ihnen. Ein auf 2038 gestellter Rechner sieht jedes heute ausgestellte Zertifikat als abgelaufen. 2038 testen, ohne das →
Dazu braucht es ein Recht, das die meisten Konten nicht haben: Die Systemzeit zu ändern ist ein Administratorprivileg, und auf einem verwalteten Rechner steht es Ihnen oft nicht zu.
Wann das Verstellen der Uhr die richtige Antwort ist
Eine virtuelle Maschine, die sonst niemand nutzt, mit abgeschalteter Uhrensynchronisation, ist ein völlig brauchbarer Prüfstand. Sie werfen sie danach weg, also spielt nichts, was sie aufgezeichnet hat, eine Rolle. Wenn Sie eine haben und der Test ein einziges Datum betrifft, ist das die einfachste Lösung, die funktioniert.
Probleme beginnen, wenn es der Rechner ist, an dem Sie arbeiten, der in der Domäne, oder einer, auf dem zugleich etwas läuft, das nichts bemerken darf.
Stattdessen die Uhr eines einzelnen Programms verschieben
Die verschobene Zeit ist für einen Prozess und die Kindprozesse, die er startet, sichtbar. Ihre Domänenanmeldung, Ihre Zertifikate und Windows Update sehen sie nie, also verschiebt sich nichts aus der Tabelle oben - und danach ist nichts zurückzustellen.
# Die Anwendung sieht den 31. Dezember 2027, 23:59:50. Alles andere behält das echte Datum. chrono run "C:\apps\test.exe" --at 2027-12-31T23:59:50 # Zehn Minuten vor Mitternacht starten und mit 60-facher Geschwindigkeit laufen - der Jahreswechsel kommt in zehn Sekunden chrono run "C:\apps\test.exe" --at 2027-12-31T23:50:00 --mode x60
Ob ein für ein Programm verschobenes Datum es tatsächlich erreicht hat, sollte man nicht annehmen. Jede Sitzung endet mit einem Urteil und der Liste der Zeitkanäle, die das Programm wirklich gelesen hat. Woher Sie wissen, dass es gewirkt hat →
Was das nicht ersetzt
- Ein Programm, das einen Server nach der Zeit fragt, liegt außerhalb dessen, was eine lokale Ersetzung erreicht. Die Sitzung sagt es, wenn sie sieht, dass das Programm eine Netzwerkverbindung öffnet, statt Sie in der Annahme zu lassen, der Test sei bestanden.
- Das System selbst zu testen - einen Dienst, der auf eine Änderung der echten Uhr reagiert, eine geplante Aufgabe, das Verhalten von Windows bei einer Uhrenänderung - kennt keinen Ersatz für das Verstellen der Uhr, auf einem Rechner, den Sie sich leisten können.