petergyger
Goto Top

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

Content-ID: 6900955465

Url: https://administrator.de/forum/ps-ausfuehrung-ueber-schtasks-negativ-6900955465.html

Ausgedruckt am: 22.12.2024 um 10:12 Uhr

Dani
Dani 24.04.2023 aktualisiert um 22:17:24 Uhr
Goto Top
Moin,
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
PeterGyger
PeterGyger 24.04.2023 um 22:25:23 Uhr
Goto Top
Hallo Dani

Sorry, wenn ich Dir das Leben schwer mache:

Post: Das verstehe ich nicht. Es geht um eine Datei, welche den Inhalt eines Verzeichnisses auflistet
Benutzerkontext: Standard User. D.h. der Task funktioniert, wenn ich über PS oder FileExplorer ausführe. Lediglich im Scheduler NOK
Rechte: siehe Antwort auf Benutzerkontext
Task (anonymisiert):
SCHTASKS /Create /SC weekly /D FR /TN [nametask] /ST 04:00 /TR C:\Windows\Tool\[NameSkript]
Hinweis. Der Test über schtasks liefert das Resulat "erfolgreich"

Gerne liefere ich jede relevante Info nach

Beste Grüsse
Crusher79
Crusher79 25.04.2023 um 00:54:01 Uhr
Goto Top
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.

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!
PeterGyger
PeterGyger 25.04.2023 aktualisiert um 06:54:02 Uhr
Goto Top
Guten Morgen Crusher

Ich kann Dir folgende Angaben machen:
Der Inhalt der Textdatei (erste Zeile Zeitstempel der Ausführung) die dieser Task erstellt ist eine Datums- und Zeitangabe. Aktuell stimmt diese mit der Angabe im FileSystem überein. D.h. gestern Abend 21:45 Uhr.

1. Der angemeldete Benutzer Win11 Benutzerarbeitet nicht mit Administrator Rechten
2. Die .ps1 Datei liegt in einem Verzeichnis "c:\windows\tool" wo alle Tools (SysInternals / Nircmd / .CMD / etc. sich befinden (in Path eingebunden)
2. Der scheduled Task wurde über cmd erstellt
3. Ich haben einen neuen Task für heute Morgen 6 Uhr erstellt - gleiches Skript an gleichem Ort
scheduled3
3. Der Test des Task über schtask ist positiv
scheduled2
4. Als einen weiteren Test habe ich einen Task erstellt, wo das Skript aus dem Verzeichnis "C:\temp" ausgeführt werden soll. Kein Erfolg.
scheduled4
5. Als einen weiteren Test habe ich einen Task erstellt, wo eine Bacht (.cmd) aus dem Verzeichnis "c:\windows\tool" ausgeführt werden soll. Das klappte
scheduled5

D.h. das Problem liegt an den "Trusts" die diese Windows Instanz gegenüber PS Skripten hat. Ich muss prüfen, wie Powershell 7 Skripte aus diesem Verzeichnis ausgeführt werden können.

Danach habe ich mit der Aufgabenplanung experimentiert. Also über GUI anstatt CLI erstellt.
Selbst wenn ich mich mit dem lokalen Benutzer mit Administrator Rechten starte, wird der Task nicht ausgeführt
aufgabe2

Heute Abend werde ich weitere Tests ausführen.

Grüsse
3063370895
3063370895 25.04.2023 aktualisiert um 06:56:41 Uhr
Goto Top
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.
scheduled4

.ps1 Dateien sind nicht ausführbar. Versuche
/TR 'pwsh.exe -EP Bypass -File C:\Temp\skript.ps1'  
(pwsh.exe = Powershell 7, powershell.exe = Windows Powershell)

anstatt von

/TR C:\temp\skript.ps1

-Thomas
PeterGyger
PeterGyger 25.04.2023 um 07:08:40 Uhr
Goto Top
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
scheduled6

Grüsse
3063370895
3063370895 25.04.2023 aktualisiert um 07:21:51 Uhr
Goto Top
Zitat von @PeterGyger:
Den Parameter "ep" mag mein Windows 11 nicht
scheduled6

Grüsse

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
Crusher79
Crusher79 25.04.2023 um 08:43:20 Uhr
Goto Top
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 ...

gpo
3063370895
3063370895 25.04.2023 um 08:50:44 Uhr
Goto Top
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!

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
PeterGyger
PeterGyger 25.04.2023 um 12:07:05 Uhr
Goto Top
Zitat von @Dani:

Moin,
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 Dani

Danke für die Hinweise und Nachfrage.
Punkt1: Nur GCI Statments die am Schluss auf einem NetShare in eine Textdatei geschrieben werden.
Ich habe Dein Skript aus Deinem älteren Post genommen und in "dani.ps1" in meinem Verzeichnis "c:\windows\tool" gespeichert.

Ich habe mit beiden User (Admin versus Standard Rechte) getestet. Manuelle Ausführung erfolgte. Scheduled nicht.
Screenshots:
dani0


dani1


dani-ad1


Punkt2: Benutzerkontext. Siehe oben

Punkt3: Ausführender Benutzer hat ausreichende Rechte?
Wie prüfe ich das? Bezugnehmend auf was? Du siehst den SCHTASK Befehl, dass sollte die Antwort herleiten.
Zweitens kann ich z.B. Batches (.cmd) ausführen

Punkt 4: Scheduled Task exportien (XML). Done
xml

Danke!

Grüsse

PS:
Nachdem ich die Grafiken hinzugefügt habe, sehe ich den Button (Browser Brave) für das einfügen von Dateien in diesen Post nicht mehr. Ich werde sie daher in einem neuen Post "nachschicken
PeterGyger
PeterGyger 25.04.2023 um 12:08:01 Uhr
Goto Top
Nachtrag:
XML Datei
<?xml version="1.0" encoding="UTF-16"?>  
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">  
  <RegistrationInfo>
    <Date>2023-04-25T11:34:09</Date>
    <Author>ganimed\mickymouse</Author>
    <URI>\danitest</URI>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <StartBoundary>2023-04-25T11:35:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByWeek>
        <DaysOfWeek>
          <Tuesday />
        </DaysOfWeek>
        <WeeksInterval>1</WeeksInterval>
      </ScheduleByWeek>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">  
      <UserId>S-1-5-21-3824163325-2661386327-2409028183-1001</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <Duration>PT10M</Duration>
      <WaitTimeout>PT1H</WaitTimeout>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">  
    <Exec>
      <Command>pwsh.exe</Command>
      <Arguments>-EP Bypass -File C:\Windows\Tool\dani.ps1</Arguments>
    </Exec>
  </Actions>
</Task>
6247018886
6247018886 25.04.2023 aktualisiert um 12:11:29 Uhr
Goto Top
-secounds
Augen auf beim Copy n Paste... Kaffee rüber schieb ...

Fehlermeldungen einfach mal lesen!

screenshot

Cheers briggs
PeterGyger
PeterGyger 25.04.2023 um 12:11:54 Uhr
Goto Top
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!

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 ...

gpo

Hallo Crusher

Danke für den Link. Ich habe diesen in meiner Bookmark Sammlung gespeichert.

Es ist ein Standalone Win 11. Upgedatet von Win 10 Pro. Ausser mir administriert niemand.
Und das ich aus Lust und Langeweile eine Systemschraube geändert habe, ist eher unwahrscheinlich face-wink

Grüsse
PeterGyger
PeterGyger 25.04.2023 um 12:14:53 Uhr
Goto Top
Zitat von @6247018886:

-secounds
Augen auf beim Copy n Paste... Kaffee rüber schieb ...

Fehlermeldungen einfach mal lesen!

screenshot

Cheers briggs

Thx für den Kaffee - sollte man eigentlich Intravenös erhalten... 8-)

In diesem Fall ging es nur um einen Test, ob die PS das Skript ausführt.
Einmal direkt gestartet, einmal über Scheduler.
D.h. ich hätte auch über "write-host Hello World" testen können
PeterGyger
PeterGyger 25.04.2023 um 12:17:37 Uhr
Goto Top
Ups, du benutzt cmd. Ersetze die beiden ' durch "

In Terminal von der Shell "cmd" zu "powershell" gewechselt
Jetzt passt es mit den ' ' aber der Sachverhalt ist unverändert

Danke für Deine Geduld und Zeit!

Grüsse
6247018886
6247018886 25.04.2023 aktualisiert um 13:39:34 Uhr
Goto Top
Anlegen und Ausführung klappt hier im Test without problems

screenshot

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\""  
Non interactive mit Username und Passwort so
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\""  
PeterGyger
PeterGyger 25.04.2023 um 13:03:30 Uhr
Goto Top
Zitat von @6247018886:

Anlegen und Ausführung klappt hier im Test without problems

screenshot

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\""  
Non interactive mit Username und Passwort so
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\""  

Hallo briggs

Ich habe ein Skript von Dani aus einem älteren Post zum testen verwendet.
Darin hat es einen Typo den ich übersehen habe:

Start-Transcript "c:\$(Get-Date -Format yyyy-MM-dd_HH-mm).txt"  
Sleep -secounds 10
Stop-Transcript

exit

Nochmals zurück auf Start face-smile
Dieser Fehler ist korrigiert, wenn man statt "sleep Secounds 10" "sleep Seconds 10"

D.h. hier sind wir offtopic unterwegs

Grüsse
6247018886
6247018886 25.04.2023 aktualisiert um 13:12:58 Uhr
Goto Top
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
Oder kurz
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 ...!
PeterGyger
PeterGyger 25.04.2023 um 14:06:03 Uhr
Goto Top
Zitat von @6247018886:

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
Oder kurz
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 ...!

Hallo briggs

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".

Dank Thomas weiss ich nun, dass man PS1 Skripte generell nicht einfach so über den Scheduler ausführen kann.
Man muss es beim Aufruf - z.B. über schtask.exe - entpsrechend parameterisieren.
Dabei ist zu beachten, dass sich der Name der EXE Datei in der PS 7 geändert hat.

Entschuldigung, wenn das etwas verwirrend war.

Beste Grüsse
Crusher79
Crusher79 25.04.2023 um 14:14:16 Uhr
Goto Top
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 !

6247018886
6247018886 25.04.2023 aktualisiert um 14:32:12 Uhr
Goto Top
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".

Ö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??
Crusher79
Crusher79 25.04.2023 um 14:28:04 Uhr
Goto Top
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.
PeterGyger
PeterGyger 25.04.2023 um 14:44:06 Uhr
Goto Top
Hallo briggs

Dieser PC hat nur einen aktiven User (Standard Rechte).
Dieser ist immer angemeldet. Tag und Nacht.
Und einen zweiten User mit Admin Rechten.

Somit besteht keine Notwendigkeit, den User anzugeben.

Darüber hinaus habe ich über CLI und GUI verschiedene Credential Versionen getestet.
PS: Ausführung über schtasks negativ

Möglicherweise spielt PS7 eine aktive Rolle und mit PS5 würde es nicht auftreten. Hier bin jedoch auf PS7.

Deine Beispiel oben habe ich getestet. Leider wurde auch dieser Task nicht ausgeführt.
briggs1

Ich hoffe, ich habe Dich vollständig und korrekt verstanden als auch richtig umgesetzt.

Grüsse
6247018886
6247018886 25.04.2023 aktualisiert um 15:28:16 Uhr
Goto Top
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.
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.
briggs1

Ich hoffe, ich habe Dich vollständig und korrekt verstanden als auch richtig umgesetzt.
Nö falsch umgesetzt! Fehlender Backslash!

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
PeterGyger
PeterGyger 25.04.2023 aktualisiert um 17:43:34 Uhr
Goto Top

Ich hoffe, ich habe Dich vollständig und korrekt verstanden als auch richtig umgesetzt.
Nö falsch umgesetzt! Fehlender Backslash!

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

Hallo Briggs

Den Backslash musste ich weglassen, da der von Dir vorgeschlagene Befehl in beiden PS Versionen syntaktisch nicht verarbeitet werden konnte.
briggs

Grüsse
6247018886
Lösung 6247018886 25.04.2023 aktualisiert um 18:17:48 Uhr
Goto Top
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
schtasks /create /TN Test /SC weekly /D DI /ST 12:50 /TR "powershell -EP Bypass -C `"write-host 'Test';read-host`""  
Wenn du eh schon die PS Konsole nutzt warum nimmst du dann nicht gleich das dafür passende CMDLet
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)  
Fertsch, läuft 100%, Done!!
mayho33
mayho33 25.04.2023 um 18:46:13 Uhr
Goto Top
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
scheduled6

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?
PeterGyger
PeterGyger 25.04.2023 um 18:55:24 Uhr
Goto Top
Hallo briggs

Versenkt!
Da hat es sich für mich wirklich gelohnt ungeplant so viele Zeit für dieses Problem aufzuwenden.

Und ja, zu viele Variablen: verschiedene Shells, verschiedene PS Versionen...

Es gibt noch eine Unstimmigkeit, die ich heute Abend genauer anschauen muss:
PS:
finale

PS7:
finale1

Die Meldung "Test" kam von PS, wo ich eine Fehlermeldung erhielt.
Von PS7 habe keine Rückmeldung erhalten.

Aber wenn das mit PS5 funktioniert, dann ist mein Ziel erreicht.
Mehr benötige ich aktuell nicht.

Nochmals vielen Dank für die Rückmeldung

Grüsse
PeterGyger
PeterGyger 25.04.2023 um 19:04:20 Uhr
Goto Top
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?

Hallo mayho33

Eine sehr gute Frage! 😄

Nachdem die PS erschien habe ich so oft wie möglich versucht, CMD / WSH nicht zu nutzen.
Dafür mit PS eine Lösung zu suchen. Einfach um mir zu beweisen, dass ich noch nicht zu bequem wurde.
Irgendwann kam PS 7 heraus. Ich las diesen Artikel von Thomas Maurer und dachte, dass muss ich mir irgend anschauen.
Das entsprechende Buch gekauft und wie so oft keine Zeit gefunden.

Letztes WE dachte ich mir, Zeit zu spielen und etwas Neues zu lernen. Ich denke, ich habe heute mehr über PS gelernt als ich hoffte. Ich schreibe mir noch eine kleine Zusammenfassung, damit es im Gedächnis länger haften bleibt.

Aktueller Stand - 19 Uhr - es läuft mit PS. Jedoch nicht PS7. Das lasse ich so stehen. Ich spiele heute Abend noch ein wenig damit herum. Mal sehen...

Grüsse
6247018886
6247018886 25.04.2023 aktualisiert um 19:21:58 Uhr
Goto Top
Ja die PS5 lässt sich das noch etwas mehr bitten wenn man dort CMD Befehle benutzt
schtasks /create /TN Test /SC weekly /D DI /ST 18:06 --% /TR "powershell -EP Bypass -C \"write-host Test;read-host\""  
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!
3063370895
3063370895 25.04.2023 aktualisiert um 19:28:12 Uhr
Goto Top
&{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
PeterGyger
PeterGyger 25.04.2023 um 20:11:16 Uhr
Goto Top
Hallo

Beide Schiffe versenkt... face-smile

loesung

Interessant finde ich, dass das Meldefenster optisch von PS5 her kommt.
ich sollte noch testen, wie es aussieht wenn ich über die entsprechenden CMDLETS anstatt schtask.exe gehe.

Meinen herzlichen Dank zum Happy End!

Grüsse
3063370895
3063370895 25.04.2023 aktualisiert um 20:21:26 Uhr
Goto Top
Zitat von @PeterGyger:

Hallo

Beide Schiffe versenkt... face-smile
Hab ich immer schon gerne gespielt face-smile

loesung

Interessant finde ich, dass das Meldefenster optisch von PS5 her kommt.
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 empfehlen

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 face-smile

Grüsse

-Thomas