iwan
Goto Top

Ändern der Uhrzeit eines anderen PCs im Netzwerk

Das Problem:
Heute fiel uns auf, das einige unserer Windows-Clients im Netzwerk scheinbar keine Zeitsynchronisation mit unserem Domain-Controller durchführen und Kerberos uns daher Fehlermeldungen im Eventlog fabrizierte. Da die Benutzer bei uns nur User sind, haben sie keine Berechtigung, die Uhrzeit selber zu ändern.
Was tun, wenn man nun nicht durch die ganze Firma laufen möchte, um die Uhrzeiten wieder richtig einzustellen?
Schliesslich ist man als Admin ja doch faul oder einfach zu bequem face-smile

Die Lösung:
Die passende Hilfe fand in einem Tool von der Firma Sysinternals, die von Microsoft aufgekauft und eingegliedert wurde.
http://technet.microsoft.com/de-de/sysinternals/bb897553(en-us).aspx
Das Programm wird zusammen mit anderen in einer Tools-Sammlung angeboten, die ständig erweitert wird. Die Hilfe und Parameter zu den einzelnen Programme findet man in der beiliegenden Hilfedatei (Pstools.chm).

PSExec ist eine Art telnet-Ersatz, mit dem man Prozesse auf anderen Systemen ausführen kann, ohne dass eine (manuelle) Installation von Client-Software nötig ist.

Man startet PSExec aus einem CMD-Fenster heraus. Um sich nun mit einem anderen PC zu verbinden, braucht man gewisse Parameter.
Bei mir hat die Verbindung leider nicht über den Hostnamen, aber über die IP funktioniert.

Mit dem folgenden PC bekommt man die IP heraus:
C:\>ping COMPUTERNAME
Ping COMPUTERNAME [12.34.56.78] mit 32 Bytes Daten:
...

Die IP wäre also 12.34.56.78 und somit können wir loslegen.

Zunächst müssen wir PSExec dazu bringen, sich mit dem Remoterechner zu verbinden und für meinen Fall benötige ich ein CMD, um die Zeit einzustellen. Dies erreiche ich mit folgendem Befehl:
psexec \\12.34.56.78 -e -u DOMÄNE\USER cmd

-e -u DOMÄNE\USER = benutzt eine andere Anmeldung (hier einen Adminaccount), da die User keine Berechtigung haben
cmd = es wird ein Commandprompt verwendet/geöffnet (andere Möglichkeiten stehen in der Hilfedatei)

Nach Eingabe des Passworts bin ich nun remote auf dem Fenster und der Cursor blinkt nun hinter 'C:\Windows\System32>'

Nun kann der Spass beginnen, aber als Admin sollte man wissen, was man tut.
Zunächst möchte ich noch mal sehen, welche Uhrzeit der PC nun wirklich hat: Dazu tippe ich ein:time /T
Die angezeigte Uhrzeit ist bei mir nun aber um gut 30 Minuten zurück und daher möchte ich, das die zeit mit unserem Domänencontroller (DC002) abgeglichen wird: net time /set /y
Das Ergebnis wird mir prompt angezeigt:
Current time at \\DC002 is 4/16/2008 1:31 PM
The command completed successfully.


Ohne das /y müsste ich eigentlich noch bestätigen, ob die Zeit wirklich mit dem DC002 abgeglichen werden soll. Leider taucht hier ein Problem von PSExec auf, denn wartet scheinbar darauf, ob ich ein J oder N eingeben:
C:\WINDOWS\system32>net time /set
Aktuelle Zeit auf \\DC002 ist 4/16/2008 1:36 PM.
Die aktuelle lokale Zeit ist 4/16/2008 1:36 PM.
Soll die Zeit des lokalen Computers mit
der Zeit auf \\KLREMDC002 übereinstimmen? (J/N) [J]:
Es wurde keine gültige Antwort gegeben.
C:\WINDOWS\system32>


Nach einer erneuten Überprüfung der Uhrzeit mit time /T bin ich zufrieden und mein Job erledigt.

Es gibt sicherlich noch mehr Möglichkeiten, das Programm einzusetzen und dies war auch lediglich nur ein Beispiel.
Learning by doing - probiert es selber aus face-wink

nachtrag 17.04.2008
Ich habe nun rausgefunden, wie man das ganze in einer Zeile managen kann, ohne das man sich erst verbinden und dann den Befehl eintippen muss:
psexec -e -u DOMAINE\USER \\COMPUTER cmd /c net time /set /y
Man muss dabei nur noch einmal das Passwort eintippen und landet am Ende auch wieder auf seinem PC, da die Remotesitzung nach Ende des Befehls auch wieder geschlossen wird.
Wenn das ganze auf mehreren PCs erfolgen soll, dann kann man das ganze auch mit einer Datei abarbeiten lassen. Ich habe mir dazu im gleichen Verzeichnis eine 'computer.txt' angelegt, in der die Computer untereinander aufgelistet sind (geht auch mit Komma-Trennung) und rufe das ganze dann wie folgt auf:
psexec -e -u DOMAINE\USER @computer.txt cmd /c net time /set /y

Content-ID: 85662

Url: https://administrator.de/contentid/85662

Printed on: December 9, 2024 at 22:12 o'clock

geTuemII
geTuemII Apr 16, 2008 at 12:42:45 (UTC)
Goto Top
Was tun, wenn man nun nicht durch die ganze Firma laufen möchte, um die Uhrzeiten
wieder richtig einzustellen?
Was hindert dich an net time /set /y im Loginscript?

geTuemII
Iwan
Iwan Apr 16, 2008 at 12:47:59 (UTC)
Goto Top
mich hindert daran nur, das die user keine Rechte zum ändern der Uhrzeit haben und das Loginscript wird ja unter der User-Kennung ausgeführt
54487
54487 Apr 16, 2008 at 12:58:36 (UTC)
Goto Top
Was hindert dich,
net time \\Computername /SET .....
von deinem PC aus auszuführen?

Es gibt auch ein Loginscript lokal, das vor der Useranmeldung ausgeführt wird.
Iwan
Iwan Apr 16, 2008 at 13:51:34 (UTC)
Goto Top
nachdenker.... nachdenker.... nicht nachgedacht oder nicht ausprobiert?

C:\>net time \\PC002 /SET
Current time at \\PC002 is 4/16/2008 3:45 PM

The current local clock is 4/16/2008 3:45 PM
Do you want to set the local computer's time to match the
time at \\PC002? (Y/N) [Y]:


Damit würde ich also meinem Computer die Uhrzeit von PC002 verpassen und dann hätte ich 2 PCs mit falscher Uhrzeit = uncool.

Zudem beinhaltet meine Anleitung die Möglichkeit, wie man das Remote machen kann und nicht das man über irgendwelche Skripte (wenn überhaupt dann Machine-Login-Skript übers AD) das machen lässt.
Zudem kann man über PSExec noch wesentlich mehr machen face-wink
54487
54487 Apr 16, 2008 at 13:53:02 (UTC)
Goto Top
Falsch interpretiert und nicht ausprobiert.
Dani
Dani Apr 16, 2008 at 17:38:31 (UTC)
Goto Top
Abend Iwan,
es gibt auch das Computerskript das mit den Rechten vom User "SYstem" ausgeführt wird. So stellen wir täglich unsere Uhren an den Clients.
Eine andere Möglichkeit wäre, das Ganze über GPO's zu steuern.


Grüße
Dani
Iwan
Iwan Apr 17, 2008 at 05:41:47 (UTC)
Goto Top
Mir ging es in erster Linie darum, wie ich von meinem PC aus die Uhrzeit eines anderen PCs einstellen kann, ohne das ich irgendwelche Skripts brauche oder an den GPOs oder im AD rumbasteln muss oder erst vor Ort gehen muss.
Es gibt sicherlich noch etliche andere Lösungen, wie man das machen kann, aber ich bin hier "nur" Supporter bin und die Serveradmins sehen es nun mal gar nicht gerne, wenn an den Loginskripten (Machine/User) was geändert wird, ohne das es von oben genehmigt wird.
In der Regel laufen die Uhren der PCs hier richtig und sie synchronisieren sich auch von Zeit zu Zeit, aber ab und zu ticken halt ein paar etwas anders, aber egal face-smile
MBu
MBu May 05, 2008 at 07:52:41 (UTC)
Goto Top
Hallo,

ich denke es gibt da zwei Ansätze:

1. Das login-Script: Die Benutzer brauchen das Recht die Lokale Systemzeit zu ändern.
Das Recht gibt man den Domänen-Benutzern. Dann im Login Script
net use \\SERVERNAME /set /yes.

2. Du nutzt das Tools PSEXEC von Sysinternals. Das sieht in etwa so aus:
psexec \\rechnername -u benutzer -p password "net time \\servername /set /yes"

Hoffe das hilft
face-smile Markus
TzBnd00
TzBnd00 Jan 19, 2012 at 08:52:12 (UTC)
Goto Top
Hallo,

prima Sache, vielen Dank dafür!

Leider funktioniert es hier nicht, und zwar - in der Domäne (Server 2008 Std.) gibt es eine handvoll Rechner (Vista SP1, wenigere SP2), die, warum auch immer, plötzlich im Jahr 2048 leben (letztes Jahr 2047). Komischerweise meistens immer wieder die gleichen Rechner und auf jeden Fall immer das gleiche Jahr....

Wenn ich nun vom Server aus die Zeit per o.g. Kommando korrigieren möchte, bekomme ich als Antwort sinngemäß, dass nicht connected werden kann, weil ein Zeitunterschied besteht. Ach nein!

Ist der Zeitunterschied zu groß, so dass das hier nicht mehr remote machbar ist? Gibt es noch andere Wege, die Zeit remote zu korrigieren?

Hat jemand nebenbei vlt. eine Idee, wer an der Geschichte mit den Jahreszahlen schuld ist?

VG, TzBnd
Iwan
Iwan Jan 19, 2012 at 16:32:16 (UTC)
Goto Top
Sorry, aber ob psexec bei Vista funktioniert, kann ich dir (mangels Vista- & Server 2008-Lizenz) nicht sagen.
MBu
MBu Jan 20, 2012 at 07:14:01 (UTC)
Goto Top
Moin,

hast du schon mal in das BIOS geschaut? Wenn es immer dieselben Rechner sind, gibt es vielleicht ein Problem mit der BIOS Version?
Die BIOS Zeit wäre ja zum Zeitpunkt der Anmeldung die Zeit die der Rechner an den DC gibt, oder sehe ich das falsch?

Schöne Grüße
face-smile Markus
MBu
MBu Jan 20, 2012 at 07:17:33 (UTC)
Goto Top
Moin 2 face-smile

sagen wir so: unter Windows 7 funktioniert es. Ich wüßte nicht warum es nicht gehen sollte.
Das die Anmeldung nicht klappt dürfte an der Zeitdifferenz liegen.
face-smile Markus
TzBnd00
TzBnd00 Jan 20, 2012 at 07:29:07 (UTC)
Goto Top
Morgen!

Ich glaube, mein Vorgänger hat das schon getestet, zumindest ist diese Info an mich herangetragen worden ;) Es sind zwar mehr oder weniger immer dieselben Rechner, aber es ist auch immer dasselbe Jahr. Und die Uhrzeit selbst ist immer korrekt. Daher würde ich das eher ausschließen, oder?

Nichts desto trotz, werde ich mal die Versionen vergleichen, wenn ich wieder vor Ort bin (die Rechner sind an verschiedenen Standorten über die Stadt verteilt.....

Einen erfolgreichen Tag face-smile