Uhrzeit und Datum ändern macht Probleme!

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Uhrzeit und Datum ändern macht Probleme!

    Moin!
    Ich möchte gerne eine Anwendung schreiben, die das Systemdatum ändert.
    Ich habe einen Code geschrieben, dieser gilt nur als Administrator.
    Jetzt habe ich in Windows die Sicherheitseinstellungen angepasst.
    Damit Jeder User das Datum/Zeit ändern kann.
    Aber leider ohne Erfolg!
    (Siehe Bilder)
    Wie kann ich das Problem jetzt lösen?
    BIG THX

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. TimeOfDay = ("00:00:00")
    3. Today = ("01.01.2022")
    4. End Sub



    Visual Basic.NET 8o
    MS-SQL
    8o
    @Cheffboss Was soll das?
    Die heutigen Rechner holen sich Datum und Uhrzeit aus dem Internet.
    Unter welchem Betriebssystem arbeitest Du?
    Welche Rechte hat der User?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Cheffboss schrieb:

    Ich muss die Systemzeit/Datum per Programm ändern.

    Warum? Willst Du Cheaten?? ansonsten würde mir keine sinnvolle Verwendung einfallen...
    Wie @RodFromGermany schon sagte, wird und sollte die Zeit von einem Zeitserver eingestellt werden.
    Du kannst mal diesen Link versuchen: dotnet-snippets.de/snippet/setzen-der-systemzeit/58
    "Hier könnte Ihre Werbung stehen..."
    @Cheffboss VM.
    Du musst datum und Uhrzeit in der Parent-Maschine ändern, ich kenn das, Win7 unter Ubuntu.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Oder, falls du wirklich eine andere Zeit als der Host haben willst, die Zeitsynchronisation für den VM-Client abschalten.
    VMware: docs.vmware.com/de/VMware-Tool…61-8470-6C173FDDF656.html
    VirtualBox: virtualbox.org/manual/ch09.html#disabletimesync
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    @an alle
    Ich hoffe dass ich morgen noch eine Lösung finde, sonst muss ich die Funktion in meinem Programm streichen.
    Ich möchte gerne mit einem Steuerungscomputer, allen Clients den Befehl „Uhrzeit & Datum ändern“ per TCP senden.
    Um den Administratoren Zeit und Arbeit zu sparen, damit alle Clients im Netzwerk das gleiche Datum bekommen.
    Weil ich diese für eine aktuelle Zeitabrechnung benötige!
    Bitte keine Beleidigung, ich programmiere keinen Trojaner!
    Sorry! Aber das musste mal gesagt werden….
    :!:
    Visual Basic.NET 8o
    MS-SQL
    8o
    Ähhhhh der IT Zeit sparen???? Die IT spart am meisten Zeit wenn der Domain Controller die Zeit im Netzwerk als NTP Server bereit stellt...
    Sorry.... Kann mir nicht vorstellen das Eure IT an jeden Rechner läuft und die Zeit händisch einstellt...
    "Hier könnte Ihre Werbung stehen..."
    Zeitsynchronisation funktioniert nicht über einen Push-Befehl.
    Die Laufzeiten zwischen dem Senden und dem Empfangen verfälschen die Genauigkeit.
    Da gibt es ausgeklügelte Protokolle (NTP).
    Und Windows hat einen NTP-Client an Bord, der sich üblicherweise mit dem AD-Server verbindet.
    Wenn keiner verfügbar ist, wird gegen time.windows.com synchronisiert.

    Wenn deine Clients unterschiedliche Uhrzeiten haben, dann würde ich mal nachprüfen, warum die sich nicht synchronisieren.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Ich versuche noch eine Lösung zu finden, und gebe noch nicht so schnell auf.
    Da ich diese Funktion trotzdem haben möchte.
    Andere Programme können anscheinend auch ohne Adminrechte das Datum/Zeit ändern.
    Wenn man die passende Sicherheitseinstellung vorgenommen hat.
    Also eine Lösung sollte es doch geben! ?(
    Ich habe nun herausgefunden das man mit „net time" per CMD das Datum/Zeit ändern kann.
    Ich hoffe dass dieser Weg auch ohne Adminrechte ausgeführt werden kann.
    Leider erscheint eine Fehlermeldung.

    1. Fehler:
    C:\Windows\system32>net start w32time
    Der angeforderte Dienst wurde bereits gestartet.
    Sie erhalten weitere Hilfe, wenn Sie NET HELPMSG 2182 eingeben.
    C:\Windows\system32>NET HELPMSG 2182
    Der angeforderte Dienst wurde bereits gestartet.


    2. Fehler:
    C:\Users\Benutzername>net time \\ptbtime1.ptb.de /set /yes
    Der Dienst ist nicht gestartet worden.
    Sie erhalten weitere Hilfe, wenn Sie NET HELPMSG 2184 eingeben.

    Freue mich auf eure Hilfe.
    BIG THX :thumbup:

    Links:
    3dcenter.org/blog/leonidas/net…fache-zeitsynchronisation
    winfaq.de/faq_html/Content/tip…linefaq.php?h=tip1749.htm
    Visual Basic.NET 8o
    MS-SQL
    8o
    Moin,

    warum willst du mit Biegen und Brechen Sicherheitseinstellungen ändern und nicht die Windows-Funktionen für Zeiten verwenden?

    Wenn keine Domain vorhanden ist, stell alle PCs auf den selben Zeitserver über Windows + R > timedate.cpl > Internetzeit > Einstellungen ändern.
    Per Standard steht da der Zeitserver von Microsoft drin, der in 90% der Fälle genau ist. Als Alternative kann man auch einen Zeitserver von einem im Netzwerk befindlichen NAS oder Router verwenden, dann sind die PCs immer aktuell.
    @an alle
    Vielen Dank, für eure hilfreichen Informationen.
    Ich habe das Problem nun lösen können.
    Auch mit der CMD und dem „net time“ Befehl und den anderen Befehle wie TimeOfDay, Today und SetSystemTime benötigt man Administratorrechte.
    Jetzt aufgepasst! :!:
    Ich habe das Problem nun lösen können.
    Wenn man in den Sicherheitseinstellungen etwas ändert, wirkt es nicht sofort.
    Sobald man einen neuen Benutzer im System angelegt hat.
    Sonst wirkt die Einstellung nicht!
    Schade eigentlich, dass die Einstellung nicht sofort wirkt.
    Aber Hauptsache habe ich nun eine Lösung gefunden.
    Ich hoffe diese Information hilft euch, genau so wie mir. :P
    Visual Basic.NET 8o
    MS-SQL
    8o

    Cheffboss schrieb:

    Wenn man in den Sicherheitseinstellungen etwas ändert, wirkt es nicht sofort.
    Sobald man einen neuen Benutzer im System angelegt hat.
    Sonst wirkt die Einstellung nicht!


    Bitte wie was?
    Du änderst die Sicherheitseinstellungen mit deinem Programm bei dem User und legst dann einen neuen User an damit das übernommen wird?
    Ich verstehe null den Sinn dahinter.

    Wie die anderen schon gesagt haben passt sich die Zeit innerhalb der Domäne an, oder aber über den Zeitserver oder aber wenn du was anderes brauchst in der VM kannst du die Syncro ausschalten.
    Warum genau MUSS du das so umständlich machen wenn Windows doch genau dafür schon alles bietet ohne dem User das System zu verändern?
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    @xChRoNiKx
    Ich habe es nun so gelöst. :!:
    Der Administrator logt sich ins System ein.
    Und stellt ein dass „Jeder User“ das Datum und die Zeit ändern darf.
    Und wenn der User sich angemeldet hat, kann man dann es im Programm ändern.
    Die Sicherheitseinstellungen werden nicht von meinem Programm geändert, sondern Manuell vom Administrator.
    Ich hoffe ich könnte mein Vorhaben gut Beschreiben!
    Visual Basic.NET 8o
    MS-SQL
    8o
    @MichaHo
    Ich habe eine Steuerungsoftware, die mit verschiedene Clients verbunden sind.
    Diese sendet einen Befehl um das Systemdatum zu verändern.
    Da jeder Computer die gleiche Zeiteinstellung haben sollte!
    Da ich Sekunden genau arbeiten muss.
    Ich möchte dem Steuerungscomputer, die Möglichkeit geben mit einem Klick.
    Schnell und einfach die Zeit/Datum-Einstellungen aller Clients anzupassen.
    Visual Basic.NET 8o
    MS-SQL
    8o
    Und wieso das ganze nicht ganze normal entweder über einen externen Zeitserver oder einen eigenen im Netzwerk oder das die Domäne sich darum kümmert? Da ist dann auch immer überall die gleiche Zeit.
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    @xChRoNiKx
    Damit man das Datum/Zeit auch verändern kann.
    Zum Beispiel wenn alle ein neues(anderes) Datum bekommen soll.
    Dann könnte man das Datum auch so ändern „01.01.2000 00:00:00“.
    Falls das der Steuerungsuser benötigt!
    Damit man volle Kontrolle hat!
    Diese sonst nicht möglich wäre.
    Visual Basic.NET 8o
    MS-SQL
    8o

    Cheffboss schrieb:

    Da ich Sekunden genau arbeiten muss.
    ist dein Weg der falsche.
    Aber das hatte ich ja schon erklärt, dass du für eine exakte Synchronisation das NTP-Protokoll verwenden sollst, so wie es beispielsweise Windows von sich aus macht.

    Aber da reden wir ja alle gegen eine Wand.
    Wer weiß, was du drehen willst.
    Egal, ich bin hier raus.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --