Bat-Datei in Autostart ausführen mit Admin-Rechten

Princo

Lt. Junior Grade
Registriert
Juni 2004
Beiträge
477
Möchte gerne eine Bat-Datei in Autostart ausführen die Adminrechte braucht. Es handelt sich um ein Befehl um die Zeit neu zu setzten.
Habe es schon mit einer exe geschaft von dem Programm NvidiaInspector, das den Grafiktakt etwas erhöht beim Neustart. Dazu hab ich eine Aufgabe gemacht. Dann eine Batchdatei mit folgen Befehl erstellt "schtasks /run /tn Aufgabenname" diese dann in Autostartordner kopiert! Hat funktioniert. Das Problem ist das cmd nicht den Adminmodus forciert wie das Exe programm. Wenn ich aber eine Verknüpfung von der Batch-Datei mach und dort unter Erweitert mit Adminrechten ausführen anklicke und es in der Aufgabenplanung unter Aktion als Programm auswähle kommt natürlich nur die Orginal Bat-Datei und nicht die Verknüpfung(Adminrechte forciert sind). Bin langsam mit meinem Latein am Ende. Gibt es vielleicht ein Schalter für Bat-Dateien, so dass ich sie Admin ausführen kann. Man kann nämlich in der Aufgabenplanung bei Aktionen optionale Argumente hinzufügen, dies habe ich mit NvidiaInspektor gemacht und die Takterhöhung eingeben!
 
Rich (BBCode):
cmd /C
würde ich auf den ersten Blick sagen. Darf man den Code evtl. erfahren oder ist der geheim?
 
Wie denn geht doch nicht, oder hast eine andere Idee? Befehl für die Zeit zu setzen ist: w32tm /resync /nowait.

Probiers doch aus, nix geht, mach mal Vorschlag wie genau! Kannst ja die Zeit ja verstellen und dann bei neuen Anmelden schauen ob es geht oder auch pause noch einfügen zu sehen ob eine Fehlermeldung kommt beim ausführen der der Batch-Datei!
 
eventuell wäre "runas" was ...so in der Richtung....
runas /profile /env /user:Benutzername /savecred "w32tm /resync /nowait"
 
  • Gefällt mir
Reaktionen: nöörd
Nutzt nur halt nix das mit dem Autostart wenn rein zufaellig noch das Netzwerk nicht wirklich da ist.

Mach das als Task etwas zeitverzoegert und benutze fuer den Task nicht eine Batch sondern den Befehl. @Princo
Warum brauchst Du eigentlich das Zeitsetzen im Autostart? Verstellt sich staendig die Uhrzeit?
 
  • Gefällt mir
Reaktionen: DoNG
@BFF wie geht das mit dem Task?
 
Merke gerade das ja dieser Zeitdienst nur sporadisch getriggert ist.
Also wird der Aufruf von "w32tm /resync /nowait" so nicht klappen. Es muss erst "net start w32time" ausgefuehrt werden.

Princo schrieb:
wie geht das mit dem Task?

Danach suchen. @Princo
https://www.digitalcitizen.life/use-task-scheduler-launch-programs-without-uac-prompts/

Abgesehen davon gibt es solch Art Task schon unter W11.

1699212445462.png


Niedlich ist ja, dass da auf bestehnede Netzwerkverbindung getestet wird.
Das war nicht immer so.

1699212553284.png


@Princo
Was ist da los mit Deiner Zeit?
Nicht das es einfacher waere die Ursache zu finden.
 
  • Gefällt mir
Reaktionen: Incanus
BFF schrieb:
habe schon ausprobiert scheitert an adminrechten und cmd forciert keine adminrechte!
nur verknüpfung kann adminrechte forcieren, aber wenn ich eine verknüpfung als programm angebe bekommen ich nur die dir orginal-bat datei!

BFF schrieb:
Abgesehen davon gibt es solch Art Task schon unter W11.
Diesen task kann ich nicht ändern oder diese Aufgabe wenn ich einen Trigger hinzufüge kommt eine Fehlermeldung! "Der Aufegabendienst ist nicht verfügbar, es wird versucht...." kann also die Änderung nicht übernehmen und muss abrechen drücken zu rausgehen!
 
Du sollst auch den Task nicht aendern sondern als Beispiel nehmen.
Da ist alles drin was noetig ist fuer einen Eigenen. Und man kann den Taskplaner auch administrativ starten, falls es an Rechten fehlt sich einen Task anzulegen.

Warum die Zeit bei Dir gesetzt werden muss ist immer noch offen.
Aber egal. Ich hab genugt getippt.
 
BFF schrieb:
Du sollst auch den Task nicht aendern sondern als Beispiel nehmen.
das geht leider nicht da man ihn nicht komplett anschauen kann, ist alles Benutzerdefniert ohne Einsicht!

BFF schrieb:
Da ist alles drin was noetig ist fuer einen Eigenen. Und man kann den Taskplaner auch administrativ starten, falls es an Rechten fehlt sich einen Task anzulegen.
Kommt die gleiche Fehlemeldung.

Es muss doch möglich sein in Windows beim Anmelden die Zeit zu setzen mit Windows Boardmitteln. Sonst wäre das ein Armutszeugniss für Windows, wieso ist das so kompliziert? Ich vermute mal, dass so etwas in einem Linuxsystem ein Kinderspiel wäre!
 
Im Normalfal verlaesst sich Windows beim Starten auf die BIOS-Zeit und stellt alle paar Stunden (9h) eine Anfrage an die Zeitquelle.

Princo schrieb:
Es muss doch möglich sein in Windows beim Anmelden die Zeit zu setzen mit Windows Boardmitteln. Sonst wäre das ein Armutszeugniss für Windows, wieso ist das so kompliziert?

Ist es auch. Das es bei Dir nicht klappt? 🤷‍♂️
Es wurden Dir alle Wege aufgezeigt das zu Erledigen mit dem Taskplaner.

Princo schrieb:
Ich vermute mal, dass so etwas in einem Linuxsystem ein Kinderspiel wäre!

Ein Linux macht das strikt per NTP. Da wird eine Zeitquelle eingestellt und gut ist eigentlich.
Man kann auch manuell mit z.B. "sudo ntpdate pool.ntp.org" sich die aktuelle Zeit im Terminal holen oder den Aufruf im Crontab unterbringen.

Princo schrieb:
Kannst ja die Zeit ja verstellen und dann bei neuen Anmelden schauen ob es geht oder auch pause noch einfügen zu sehen ob eine Fehlermeldung kommt beim ausführen der der Batch-Datei!

Anyway.
Da Du Dich konsequent ausschweigst ueber den Grund der Aktion, keine Fehler postest.

Princo schrieb:
Kommt die gleiche Fehlemeldung.

Hier eine Loesung die definitiv unter W10 funktioniert. Eine Zeitquelle muss aktiviert/eingestellt sein sein.
Und ich benutze ein englisches Windows. Also setz das selbst um fuer ein Deutsches.

Als Beispiel hier ein europaeischer Pool von ntp.org. ntp.org nehm ich lieber als die Windows Server.

1699229992094.png


Dann baust Du Dir eine Batch. Natuerlich nicht darin vergessen das ein Service gestartet werden muss.

Code:
net start w32time
w32tm /resync /nowait
:EOF

Diese Datei speicherst Du ab an einer Stelle wo das startende Windows drauf zu greifen kann.
In meinem Fall heisst die Datei "zeit.bat" und liegt auf D:\

Nun zum Taskscheduler und das machst Du mit einem Konto das administrative Rechte hat auf dem PC!

1. Einen Task erstellen (keinen Basic Task), bei mir heisst der "Zeit setzen"
Lasche General:
2. Nutzer aendern auf System
3. Mit hoechsten Privilegien und Versteckt.

1699230745842.png


Lasche Triggers -> Neu.
1. Umstellen auf "Bei Anmelden".

1699235380013.png


Lasche Actions -> Neu
1. Batch auswaehlen

1699230939581.png


Lasche Conditions
1. Haken bei Starte nur wenn Netzwer... Alle Verbindungen auswaehlen

1699231114376.png


Das war es eigentlich schon. Bei Neustart des PC wurde bei meiner Kiste innerhalb von 20s nach Anmelden die Zeit korrigiert die ich vor Neustart um 1h verstellt habe.

1699231789196.png


Das es funktioniert, ohne Fehler sieht man an der neu gesetzten Uhrzeit, im Ereignisprotokoll (1) und auch im Task Scheduler (2).

1699231926898.png


Wenn das nicht klappt, ja ok. Dann ist irgendwas verkehrt bei Dir.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: s1ave77
@BFF Super es hat geklappt, der Knackpunkt war wahrscheinlich der Benutzer geändert in SYSTEM!
D a n k e!

habe jetzt nur ein Befehl drin stehen: "w32tm /resync /nowait" und geht auch!

Hatte es genauso gemacht (außer das mit den Netzwerk) und es hatte immer an den Adminrechten gelagen die Verweigerung! SYSTEM hat war Wahrscheinlich die höchsten Rechte mehr als ein Admin!
 
Zurück
Oben