PowerShell Uhrzeit mit NTP synchronisieren

Ein PowerShell-Script, das die Uhrzeit mit NTP (Network Time Protocol) synchronisiert und die Zeit auf dem System anschliessend mit dem NTP Server vergleicht.

# Synchronisiere die Uhrzeit mit dem NTP-Server
w32tm /config /manualpeerlist:"0.de.pool.ntp.org 1.de.pool.ntp.org 2.de.pool.ntp.org" /syncfromflags:manual /reliable:yes /update

# Warte 10 Sekunden, um sicherzustellen, dass die Synchronisierung abgeschlossen ist
Start-Sleep -s 10

# Führe 5 Tests der Uhrzeit durch
for ($i = 1; $i -le 5; $i++) {
    # Abrufen der aktuellen Uhrzeit
    $time = Get-Date

    # Abrufen der aktuellen Uhrzeit vom NTP-Server
    $ntpTime = (Get-Date (w32tm /query /source)).ToUniversalTime()

    # Berechne die Abweichung zwischen der aktuellen Uhrzeit und der Uhrzeit vom NTP-Server in Millisekunden
    $difference = ([int64]$time.Ticks - [int64]$ntpTime.Ticks) / 10000

    # Ausgabe der aktuellen Uhrzeit und der Abweichung zur Uhrzeit vom NTP-Server
    Write-Output "Test $i : Aktuelle Uhrzeit ist $time. Abweichung zur Uhrzeit vom NTP-Server beträgt $difference Millisekunden."

    # Warte 5 Sekunden, bevor der nächste Test durchgeführt wird
    Start-Sleep -s 5
}

Das obige Script synchronisiert zunächst die Uhrzeit des Computers mit dem NTP-Server 0.de.pool.ntp.org, 1.de.pool.ntp.org und 2.de.pool.ntp.org. Anschliessend wird eine Schleife gestartet, die 5 Tests der Uhrzeit durchführt. In jedem Durchlauf wird die aktuelle Uhrzeit abgerufen und die Uhrzeit vom NTP-Server abgefragt. Die Abweichung zwischen beiden Zeiten wird in Millisekunden berechnet und ausgegeben. Zwischen den einzelnen Tests wird eine Pause von 5 Sekunden eingelegt.

Um das Script auszuführen, öffne eine PowerShell-Konsole und führe das Script einfach wie einen normalen Befehl aus. Du kannst auch das Script in eine Textdatei speichern und es dann mit dem Befehl `.\Scriptname.

Die mobile Version verlassen