PS: Ausführung über schtasks negativ
Hallo
Eine Powershell Skript erstellt eine Textdatei mit einem Zeitstempel am Anfang.
Wenn ich die Datei über "schtasks.exe" terminiere, wird das Skript nicht ausgeführt.
Basierend auf dem Zeitstempel in der Textdatei.
Wenn ich die Datei über den Windows Scheduler verplante, wird die Datei nicht ausgeführt (Kontrollpunkt: Zeitstempel)
Ich habe den Schedulerjob über "SCHTASKS /Run /TN [name]" den geplanten Task ausgeführt.
Der Zeitstempel wird nicht aktualisiert.
Wenn die PS1 Datei aus dem Datei Explorer ausgeführt wird, wird der Zeitstempel aktualisiert.
Kennt jemand die Hintergründe dazu?
Grüsse
Eine Powershell Skript erstellt eine Textdatei mit einem Zeitstempel am Anfang.
Wenn ich die Datei über "schtasks.exe" terminiere, wird das Skript nicht ausgeführt.
Basierend auf dem Zeitstempel in der Textdatei.
Wenn ich die Datei über den Windows Scheduler verplante, wird die Datei nicht ausgeführt (Kontrollpunkt: Zeitstempel)
Ich habe den Schedulerjob über "SCHTASKS /Run /TN [name]" den geplanten Task ausgeführt.
Der Zeitstempel wird nicht aktualisiert.
Wenn die PS1 Datei aus dem Datei Explorer ausgeführt wird, wird der Zeitstempel aktualisiert.
Kennt jemand die Hintergründe dazu?
Grüsse
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6900955465
Url: https://administrator.de/contentid/6900955465
Ausgedruckt am: 21.11.2024 um 15:11 Uhr
33 Kommentare
Neuester Kommentar
Moin,
ist es so schwer die Basis Informationen zu liefern...
Gruß,
Dani
P.S. Powershellskript via Aufgabenplanung funktioniert nicht
ist es so schwer die Basis Informationen zu liefern...
- Post das PowerShell Skript, um das es geht.
- In welchen Benutzerkontext wird das PowerShell Skript in der Scheduled Task ausgeführt?
- Hat der Benutzer, welcher die Scheduled Task ausführt, die notwenigen Rechte?
- Exportiere die Scheduled Task und poste die XML Datei. Bitte Details unkenntlich machen.
Gruß,
Dani
P.S. Powershellskript via Aufgabenplanung funktioniert nicht
Hallo,
oh man - die Woche der sterbenden scheduled task...
PowerShell ist ja nicht das einzige was man laufen lassen kann. Du kannst auch normal mal eine .cmd probieren und damit kurz was anstoßen. copy, robocopy - gibt ja zig Befehle die auch ohne PS laufen.
Laufen denn andere geplante Task?
Das Snippet da erstellt doch nur eine Task. Was soll die Aussage Erfolgreich hier denn noch bedeuten? Siehst du ihn? Ok, Task wurde erstellt. Laufen muss er noch lange nicht.
Server oder Client? Stapelverarbeitung braucht spzielle Rechte. Wir hatten kürzlich einen User die gegeben via GPO. Admistatoren und andere "Defaults" flogen aber raus, als die GPO von undefiniert auf aktiv gesetzt wurde. Hatte dann einen haufen Task die selbst unter Administrator nicht laufen wollten.
PowerShell ist ein Programm. Der Rest fällt unter "Argumente". Siehe auch was @Dani dazu schreibt. Bzw. lies dir den anderen Thread durch. Gerade was ExecutionPolicy und die Angabe des Scripts angeht.
Du kannst auch "..\..powershell.exe -ExecutionPolicy Bypass -File "c:\temp\mein_script.ps1" auch so mal in eine .cmd packen und über den Planer aufrufen.
Zeitstempel:
Das ist irreführend! Welchen meinst du als Kontrolle? Die Dateinamen Manipulation oder den Zeitstempel IN DER Aufgabenplanung der besagt das Script wurde um 0400 ausgeführt!
Du kannst es ja auch jederzeit via "Ausführen" manuell über den Taskplan starten.
Wird es nicht ausgeführt oder tut es nur nichts? Das ist ein großer Unterschied!
oh man - die Woche der sterbenden scheduled task...
PowerShell ist ja nicht das einzige was man laufen lassen kann. Du kannst auch normal mal eine .cmd probieren und damit kurz was anstoßen. copy, robocopy - gibt ja zig Befehle die auch ohne PS laufen.
Laufen denn andere geplante Task?
Das Snippet da erstellt doch nur eine Task. Was soll die Aussage Erfolgreich hier denn noch bedeuten? Siehst du ihn? Ok, Task wurde erstellt. Laufen muss er noch lange nicht.
Server oder Client? Stapelverarbeitung braucht spzielle Rechte. Wir hatten kürzlich einen User die gegeben via GPO. Admistatoren und andere "Defaults" flogen aber raus, als die GPO von undefiniert auf aktiv gesetzt wurde. Hatte dann einen haufen Task die selbst unter Administrator nicht laufen wollten.
SCHTASKS /Create /SC weekly /D FR /TN [nametask] /ST 04:00 /TR C:\Windows\Tool\[NameSkript]
PowerShell ist ein Programm. Der Rest fällt unter "Argumente". Siehe auch was @Dani dazu schreibt. Bzw. lies dir den anderen Thread durch. Gerade was ExecutionPolicy und die Angabe des Scripts angeht.
Du kannst auch "..\..powershell.exe -ExecutionPolicy Bypass -File "c:\temp\mein_script.ps1" auch so mal in eine .cmd packen und über den Planer aufrufen.
Zeitstempel:
Das ist irreführend! Welchen meinst du als Kontrolle? Die Dateinamen Manipulation oder den Zeitstempel IN DER Aufgabenplanung der besagt das Script wurde um 0400 ausgeführt!
Du kannst es ja auch jederzeit via "Ausführen" manuell über den Taskplan starten.
Wird es nicht ausgeführt oder tut es nur nichts? Das ist ein großer Unterschied!
Zitat von @PeterGyger:
4. Als einen weiteren Test habe ich einen Task erstellt, wo das Skript aus dem Verzeichnis "C:\temp" ausgeführt werden soll. Kein Erfolg.
4. Als einen weiteren Test habe ich einen Task erstellt, wo das Skript aus dem Verzeichnis "C:\temp" ausgeführt werden soll. Kein Erfolg.
.ps1 Dateien sind nicht ausführbar. Versuche
/TR 'pwsh.exe -EP Bypass -File C:\Temp\skript.ps1'
anstatt von
/TR C:\temp\skript.ps1
-Thomas
Ups, du benutzt cmd. Ersetze die beiden ' durch "
also
/TR "pwsh.exe -EP Bypass -File C:\Temp\skript.ps1"
Danke für den Hinweis, dass PS7 so einiges ändert. Das Buch von Holger Schwichtenberg liegt leider noch immer ungelesen auf dem Stapel.
Es hätte auch mit PS5 nicht funktioniert. Da hätte statt pwsh.exe dann powershell.exe hingemusst.-Thomas
https://learn.microsoft.com/de-de/windows/security/threat-protection/sec ...
Was ist damit? Beim Server für Accounts außer Administratoren, etc. - default Werte - ja zu setzen!
Was wenn du wie da beschrieben den Win 11 User via gpedit.msc mal da reinschiebst?
Verwende immer noch Windwos 10. Auf den Servern via GPO eh anders geregelt ...
Was ist damit? Beim Server für Accounts außer Administratoren, etc. - default Werte - ja zu setzen!
Was wenn du wie da beschrieben den Win 11 User via gpedit.msc mal da reinschiebst?
Verwende immer noch Windwos 10. Auf den Servern via GPO eh anders geregelt ...
Zitat von @Crusher79:
https://learn.microsoft.com/de-de/windows/security/threat-protection/sec ...
Was ist damit? Beim Server für Accounts außer Administratoren, etc. - default Werte - ja zu setzen!
https://learn.microsoft.com/de-de/windows/security/threat-protection/sec ...
Was ist damit? Beim Server für Accounts außer Administratoren, etc. - default Werte - ja zu setzen!
Der Fehler war schon im 2. Kommentar des OP zu sehen:
SCHTASKS /Create /SC weekly /D FR /TN [nametask] /ST 04:00 /TR C:\Windows\Tool\[NameSkript]
PS-Skripte sind und waren noch nie ausführbar
-Thomas
Anlegen und Ausführung klappt hier im Test without problems
Interaktiv only (nur wenn angemeldet) so
Non interactive mit Username und Passwort so
Interaktiv only (nur wenn angemeldet) so
schtasks /create /TN Test /SC weekly /D DI /ST 12:50 /TR "powershell -EP Bypass -C \"write-host 'Test';read-host\""
schtasks /create /TN Test /SC weekly /D DI /ST 12:50 /RU MaxMuster /RP "Geheim" /TR "powershell -EP Bypass -C \"write-host 'Test';read-host\""
Dieser Fehler ist korrigiert, wenn man statt "sleep Secounds 10" "sleep Seconds 10"
Habe ich doch oben schon geschrieben ...🙆?! Das ist aber immer noch falsch! Das gehört so:sleep -seconds 10
sleep 10
D.h. hier sind wir offtopic unterwegs
? Du weist wohl selbst nicht was du eigentlich willst ... Works all as designed! Just don't make errors and do it how it is designed ...!
Bitte was?
Vlt. Danke @Dani?
Ich hab hier auch nichts weiter geschrieben da genau diese "parameterisieren" hier vor kommt:
Das war die aller, aller erste Antwort dazu !
Vlt. Danke @Dani?
Ich hab hier auch nichts weiter geschrieben da genau diese "parameterisieren" hier vor kommt:
Das war die aller, aller erste Antwort dazu !
Zitat von @PeterGyger:
Da habe ich Dich nicht verstanden.
Es geht in diesem Thread nicht darum, ob oder wieso diese Fehlermeldung auftratt.
Es geht darum, eine beliebiges Powershell Skript über Scheduler zu automatisieren.
D.h. man kann ein Skript ausführen - egal ob es einen Fehler anzeigt - oder man kann es über einen Scheduler automatisch starten lassen. Und diese Automatik "klemmt".
Es geht in diesem Thread nicht darum, ob oder wieso diese Fehlermeldung auftratt.
Es geht darum, eine beliebiges Powershell Skript über Scheduler zu automatisieren.
D.h. man kann ein Skript ausführen - egal ob es einen Fehler anzeigt - oder man kann es über einen Scheduler automatisch starten lassen. Und diese Automatik "klemmt".
Öhm das habe ich dir doch oben auch gezeigt. Übrigens PS 7 muß man ja nicht zwingend nutzen, die PS5 ist auf W11 ebenfalls noch immer enthalten.
Wo ist jetzt noch das Problem? Ich sehe keins...
Wenn du den Task natürlich unbeaufsichtigt laufen lassen willst musst du wie ich oben gezeigt habe auch Username und Passwort bei schtasks mit übergeben sonst läuft es nur wenn der User angemeldet ist.
Alternativ lässt man es im SYSTEM Context laufen, je nachdem was man eben so machen möchte.
Aber wieso noch schtasks nutzen wenn eh PowerShell genutzt werden soll??
Wenn es kein Sever Core ist würde ich einfach über die GUI anfangen.
Task kannman auch mit PowerShell einrichten. Bei mir kam da zuerst andauernd Fehler. Antworten waren dism, XML kaputt, Virus etc. Ganz trivial stimmte der Syntax aus dem Internet nicht. Selbst da biss ich auf Granit.
SCHTASKS - wozu? GUI und schauen das Script läuft. Zum Deployen später auf Clients oder PCs ohne Domäne kann man das immer noch mit SCHTASKS oder PS Script erstellen.
Ich weiss auch nicht mehr, wo wir gerade sind! Alle Parameter wurden wie @Dani verwies schon im anderne Thread hier erörtert. Wenn der Task läuft, kann man immer noch später mit SCHTASKS das clonen, anpassen, neu ausrollen.
Task kannman auch mit PowerShell einrichten. Bei mir kam da zuerst andauernd Fehler. Antworten waren dism, XML kaputt, Virus etc. Ganz trivial stimmte der Syntax aus dem Internet nicht. Selbst da biss ich auf Granit.
SCHTASKS - wozu? GUI und schauen das Script läuft. Zum Deployen später auf Clients oder PCs ohne Domäne kann man das immer noch mit SCHTASKS oder PS Script erstellen.
Ich weiss auch nicht mehr, wo wir gerade sind! Alle Parameter wurden wie @Dani verwies schon im anderne Thread hier erörtert. Wenn der Task läuft, kann man immer noch später mit SCHTASKS das clonen, anpassen, neu ausrollen.
Zitat von @PeterGyger:
Hallo briggs
Dieser PC hat nur einen aktiven User (Standard Rechte).
Dieser ist immer angemeldet. Tag und Nacht.
Gut dann kann er interaktiv laufen.Hallo briggs
Dieser PC hat nur einen aktiven User (Standard Rechte).
Dieser ist immer angemeldet. Tag und Nacht.
Möglicherweise spielt PS7 eine aktive Rolle und mit PS5 würde es nicht auftreten. Hier bin jedoch auf PS7.
Du verstehst nicht. PowerShell 7 ist kein Upgrade sondern eine Option PowerShell 7 hat pwsh als Interpreter und PowerShell die PowerShell.exe, auch wenn PS7 installiert ist kann man jederzeit weiterhin die PS5 benutzen! Du bist also nicht gezwungen den pwsh.exe Interpreter zu benutzen.Deine Beispiel oben habe ich getestet. Leider wurde auch dieser Task nicht ausgeführt.
Ich hoffe, ich habe Dich vollständig und korrekt verstanden als auch richtig umgesetzt.
Wird mir jetzt ehrlich gesagt zu blöd hier solche Nachlässigeiten bei der Umsetzung und die Grundlagen zu diskutieren die du überall nachlesen kannst...
Du scheinst offensichtlich Konzentrationsschwierigkeiten zu haben, dafür sind wir hier nicht zuständig, sorry.
Tschö dann ...
Briggs
Ach du machst das in einer PS7 Konsole und nicht in ner CMD ... na dann ist alles klar warum das bei dir nicht läuft, da ist das Escaping ja völlig anders als in einer CMD!
Für ne PS7 Konsole sieht das so aus
Wenn du eh schon die PS Konsole nutzt warum nimmst du dann nicht gleich das dafür passende CMDLet
New-ScheduledTask bzw. Register-ScheduledTask ???
Fertsch, läuft 100%, Done!!
Für ne PS7 Konsole sieht das so aus
schtasks /create /TN Test /SC weekly /D DI /ST 12:50 /TR "powershell -EP Bypass -C `"write-host 'Test';read-host`""
New-ScheduledTask bzw. Register-ScheduledTask ???
Register-ScheduledTask -TaskName Test -Action (New-ScheduledTaskAction -Execute powershell -Argument "-EP Bypass -C `"write-host 'Test';read-host`"") -Trigger (New-ScheduledTaskTrigger -Weekly -DaysOfWeek Tuesday -At 18:15)
Zitat von @PeterGyger:
Guten Morgen Thomas
Danke für den Hinweis, dass PS7 so einiges ändert. Das Buch von Holger Schwichtenberg liegt leider noch immer ungelesen auf dem Stapel.
Den Parameter "ep" mag mein Windows 11 nicht
Grüsse
Guten Morgen Thomas
Danke für den Hinweis, dass PS7 so einiges ändert. Das Buch von Holger Schwichtenberg liegt leider noch immer ungelesen auf dem Stapel.
Den Parameter "ep" mag mein Windows 11 nicht
Grüsse
Hi,
Ich verstehe ja nicht ganz warum alle so geil sind auf PS7. Es läuft nur gekapselt und kann nirgends direkt angebunden werden. Außerdem ist es nicht abwärts kompatibel und weder in der ISE noch mit Visual Studio Code läuft es ad hoc. Noch nicht mal in Windows 11 ist es fester Bestandteil und wird es so bald auch nicht werden.
Der einzige Vorteil den ich sehe ist der, dass es ein paar erweiterte Funktionen hat! Habe ich was vergessen? Warum also machst du es dir besonders schwer und verwendest PS7?
Ja die PS5 lässt sich das noch etwas mehr bitten wenn man dort CMD Befehle benutzt
Hier kann man sich übrigens in Hartnäckigen Fällen mit dem Stop-Parsing Token (--%) behelfen, oder das ganze mittels Start-Process ausführen.
Aber das ist alles wie schon mehrfach gesagt alles überflüssig da die PS ja nativ Tasks erstellen kann, Beispiel habe ich oben hinzugefügt!
schtasks /create /TN Test /SC weekly /D DI /ST 18:06 --% /TR "powershell -EP Bypass -C \"write-host Test;read-host\""
Aber das ist alles wie schon mehrfach gesagt alles überflüssig da die PS ja nativ Tasks erstellen kann, Beispiel habe ich oben hinzugefügt!
&{schtasks /create /TN Test /SC weekly /D DI /ST 19:26 /TR "powershell -EP Bypass -C 'write-host Test;read-host'" }
funktioniert auch, PS5 und PS7
-Thomas
Hab ich immer schon gerne gespielt
Das kommt daher, weil dein Scheduled Task "powershell" = PS5 ausführt.
Ersetzt du das "powershell" mit "pwsh", wird PS7 ausgeführt.
Meinen herzlichen Dank zum Happy End!
Wenn du noch die Beiträge als Lösung markieren kannst die zur Lösung beigetragen haben, tust du allen was gutes
Grüsse
-Thomas
Das kommt daher, weil dein Scheduled Task "powershell" = PS5 ausführt.
Ersetzt du das "powershell" mit "pwsh", wird PS7 ausgeführt.
ich sollte noch testen, wie es aussieht wenn ich über die entsprechenden CMDLETS anstatt schtask.exe gehe.
Sehr zu empfehlenMeinen herzlichen Dank zum Happy End!
Grüsse
-Thomas