Aufgabenplanung: Powershell-Skript - Eigene Aufgabe bearbeiten
Hallo in die Runde.
Ich stehe vor einem Problem und hoffe ihr könnt mir helfen
Ich habe eine automatisch, durch ein Programm, erstellte Aufgabe, welche ein Powershell-Skript ausführt. Die Aufgabe wird durch ein Online-Skriptrepository erstellt, wo das Skript auch aktualisiert wird.
Leider bietet das Programm keine Möglichkeit, den Trigger der Aufgabe zB auf "Bei Systemstart" zu erstellen, sondern nur zu einem festen oder wiederkehrendem Zeitpunkt.
Ich brauche das Skript aber zwingend mit dem Trigger "Bei Systemstart (zzgl 5Min Verzögerung)...
Aktuell bearbeite ich das Skript per Hand und ändere den Trigger... das ist bei der Vielzahl an Servern jedoch echt Mühselig...
Frage:
Gibt es eine Möglichkeit, wie sich das Powershell-Skript von der Aufgabe selber bei der einmaligen Ausführung ändert und den Trigger der Aufgabe auf "Bei Systemstart" ändert? Irgendwie durch ne Instanz-ID oder sowas?
Dadurch müsste ich die Aufgabe ja nur einmalig in der Zukunft ausführen lassen und die Skripte übernehmen die Anpassung, die ich sonst überall wieder händisch machen müsste.
Ich weiß, es gibt den Befehl "Get-ScheduledTask", Problem hierbei ist jedoch auch, dass das Skript eine zufällige GUID als Namen hat und in dem Ordner, wo das Skript liegt, mehrere vorhanden sind, deshalb kann ich nicht danach suchen.
Den Hintergrund dafür zu erklären dauert zu lange ... daher bitte ich euch, mögliche Antworten auf meine Frage zu beschränken und nicht, warum die Aufgabe mit dem Programm erstellt wird, und wieso das und jenes.... etc. Es ist halt so und gibt derzeit keine andere Möglichkeit und ich weiß, das es sicher bessere Möglichkeiten gibt. Aber vielleicht kann man es ja automatisieren.
Ansonsten muss ich es halt weiter per Hand machen...
Danke!
Ich stehe vor einem Problem und hoffe ihr könnt mir helfen
Ich habe eine automatisch, durch ein Programm, erstellte Aufgabe, welche ein Powershell-Skript ausführt. Die Aufgabe wird durch ein Online-Skriptrepository erstellt, wo das Skript auch aktualisiert wird.
Leider bietet das Programm keine Möglichkeit, den Trigger der Aufgabe zB auf "Bei Systemstart" zu erstellen, sondern nur zu einem festen oder wiederkehrendem Zeitpunkt.
Ich brauche das Skript aber zwingend mit dem Trigger "Bei Systemstart (zzgl 5Min Verzögerung)...
Aktuell bearbeite ich das Skript per Hand und ändere den Trigger... das ist bei der Vielzahl an Servern jedoch echt Mühselig...
Frage:
Gibt es eine Möglichkeit, wie sich das Powershell-Skript von der Aufgabe selber bei der einmaligen Ausführung ändert und den Trigger der Aufgabe auf "Bei Systemstart" ändert? Irgendwie durch ne Instanz-ID oder sowas?
Dadurch müsste ich die Aufgabe ja nur einmalig in der Zukunft ausführen lassen und die Skripte übernehmen die Anpassung, die ich sonst überall wieder händisch machen müsste.
Ich weiß, es gibt den Befehl "Get-ScheduledTask", Problem hierbei ist jedoch auch, dass das Skript eine zufällige GUID als Namen hat und in dem Ordner, wo das Skript liegt, mehrere vorhanden sind, deshalb kann ich nicht danach suchen.
Den Hintergrund dafür zu erklären dauert zu lange ... daher bitte ich euch, mögliche Antworten auf meine Frage zu beschränken und nicht, warum die Aufgabe mit dem Programm erstellt wird, und wieso das und jenes.... etc. Es ist halt so und gibt derzeit keine andere Möglichkeit und ich weiß, das es sicher bessere Möglichkeiten gibt. Aber vielleicht kann man es ja automatisieren.
Ansonsten muss ich es halt weiter per Hand machen...
Danke!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3190084927
Url: https://administrator.de/contentid/3190084927
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
7 Kommentare
Neuester Kommentar
Moin,
Schau mal hier:
https://docs.microsoft.com/en-us/powershell/module/scheduledtasks/?view= ...
ich würde es mit new-scheduledtasktrigger versuchen.
Gruß
Doskias
Zitat von @Timo0o:
Ich habe eine automatisch, durch ein Programm, erstellte Aufgabe, welche ein Powershell-Skript ausführt. Die Aufgabe wird durch ein Online-Skriptrepository erstellt, wo das Skript auch aktualisiert wird.
Soweit noch ok.Ich habe eine automatisch, durch ein Programm, erstellte Aufgabe, welche ein Powershell-Skript ausführt. Die Aufgabe wird durch ein Online-Skriptrepository erstellt, wo das Skript auch aktualisiert wird.
Leider bietet das Programm keine Möglichkeit, den Trigger der Aufgabe zB auf "Bei Systemstart" zu erstellen, sondern nur zu einem festen oder wiederkehrendem Zeitpunkt.
Ich brauche das Skript aber zwingend mit dem Trigger "Bei Systemstart (zzgl 5Min Verzögerung)...
Aktuell bearbeite ich das Skript per Hand und ändere den Trigger... das ist bei der Vielzahl an Servern jedoch echt Mühselig...
Ok, wieso wird die geplante Aufgabe für das Skript über die online-Skriptrepository verteilt? Wieso nutzt du nicht die Aufgabenplanung via GPO?Ich brauche das Skript aber zwingend mit dem Trigger "Bei Systemstart (zzgl 5Min Verzögerung)...
Aktuell bearbeite ich das Skript per Hand und ändere den Trigger... das ist bei der Vielzahl an Servern jedoch echt Mühselig...
Frage:
Gibt es eine Möglichkeit, wie sich das Powershell-Skript von der Aufgabe selber bei der einmaligen Ausführung ändert und den Trigger der Aufgabe auf "Bei Systemstart" ändert? Irgendwie durch ne Instanz-ID oder sowas?
Dadurch müsste ich die Aufgabe ja nur einmalig in der Zukunft ausführen lassen und die Skripte übernehmen die Anpassung, die ich sonst überall wieder händisch machen müsste.
Ich weiß, es gibt den Befehl "Get-ScheduledTask", Problem hierbei ist jedoch auch, dass das Skript eine zufällige GUID als Namen hat und in dem Ordner, wo das Skript liegt, mehrere vorhanden sind, deshalb kann ich nicht danach suchen.
Der zufällige GUID-Name könnte bei get-scheduledTask egal sein, wenn du die abfrage richtig schreibst. Aber wir wissen nicht ob es ggf. andere Aufgaben gibt, die einen ähnlichen Namen haben. Und darüber hinaus ist get-scheduledTask definitiv der falsche Befehl für dich. Überleg einfach mal was get bedeutet Gibt es eine Möglichkeit, wie sich das Powershell-Skript von der Aufgabe selber bei der einmaligen Ausführung ändert und den Trigger der Aufgabe auf "Bei Systemstart" ändert? Irgendwie durch ne Instanz-ID oder sowas?
Dadurch müsste ich die Aufgabe ja nur einmalig in der Zukunft ausführen lassen und die Skripte übernehmen die Anpassung, die ich sonst überall wieder händisch machen müsste.
Ich weiß, es gibt den Befehl "Get-ScheduledTask", Problem hierbei ist jedoch auch, dass das Skript eine zufällige GUID als Namen hat und in dem Ordner, wo das Skript liegt, mehrere vorhanden sind, deshalb kann ich nicht danach suchen.
Schau mal hier:
https://docs.microsoft.com/en-us/powershell/module/scheduledtasks/?view= ...
ich würde es mit new-scheduledtasktrigger versuchen.
Gruß
Doskias
Hi,
E.
Zitat von @Timo0o:
Ich weiß, es gibt den Befehl "Get-ScheduledTask", Problem hierbei ist jedoch auch, dass das Skript eine zufällige GUID als Namen hat und in dem Ordner, wo das Skript liegt, mehrere vorhanden sind, deshalb kann ich nicht danach suchen.
Wieso nicht? Das PS-Script kann doch seinen eigenen Namen auslesen.Ich weiß, es gibt den Befehl "Get-ScheduledTask", Problem hierbei ist jedoch auch, dass das Skript eine zufällige GUID als Namen hat und in dem Ordner, wo das Skript liegt, mehrere vorhanden sind, deshalb kann ich nicht danach suchen.
E.
$ScriptDir = Split-Path $script:MyInvocation.MyCommand.Path
$ScriptName = $script:MyInvocation.MyCommand.Name
Servus,
mit
kannst du dir Details anzeigen lassen und darin entsprechend suchen, z.B. nach einem Scriptnamen...
Siehe auch: https://www.stevefenton.co.uk/2022/01/a-powershell-script-to-find-an-run ...
mit
Get-ScheduledTask -TaskPath "\" | ForEach-Object {
if ($_.Actions.Arguments -like '*.ps1*') {
Write-Host 'Found', $_.TaskName
}
}
kannst du dir Details anzeigen lassen und darin entsprechend suchen, z.B. nach einem Scriptnamen...
Siehe auch: https://www.stevefenton.co.uk/2022/01/a-powershell-script-to-find-an-run ...
Zitat von @Timo0o:
An sich ja gut, leider kann ich aber nicht nach dem Skriptnamen suchen, da ich diesen nicht kenne (zufällige GUID)
Zitat von @MrCount:
kannst du dir Details anzeigen lassen und darin entsprechend suchen, z.B. nach einem Scriptnamen...
Siehe auch: https://www.stevefenton.co.uk/2022/01/a-powershell-script-to-find-an-run ...
Get-ScheduledTask -TaskPath "\" | ForEach-Object {
if ($_.Actions.Arguments -like '*.ps1*') {
Write-Host 'Found', $_.TaskName
}
}
kannst du dir Details anzeigen lassen und darin entsprechend suchen, z.B. nach einem Scriptnamen...
Siehe auch: https://www.stevefenton.co.uk/2022/01/a-powershell-script-to-find-an-run ...
An sich ja gut, leider kann ich aber nicht nach dem Skriptnamen suchen, da ich diesen nicht kenne (zufällige GUID)
Ich dachte, dass die Aufgabe (also im Taskplaner) nur eine zufällige GUID als Namen hat, und das Powershell-Script, welches in dieser Aufgabe ausgeführt wird, immer gleich wäre...
Moin
Gib deinem Azubi lieber Zeit sich mit Powershell auseinanderzusetzen, wenn dir die zeit fehlt. @MrCount hat dir ja schon den nächsten Hinweis gegeben, wie du an den Tasknamen kommst. Kombiniere das mit dem was @emeriks geschrieben hat und dein Skript sagt dir unter welchen Aufgabennamen es läuft. Nutze den Aufgabennamen um mit new-SchedduledTaskTricker (siehe hier) einen Trigger mit AtStartup hinzuzufügen.
Ein Azubi ist da um zu lernen und nicht um dir deine Aufgaben auf die du keine Lust hast (und/oder wo dir keine Lösung zu einfällt) abzunehmen.
Grade wenn es, wie es scheint, eine wiederkehrende Aufgabe ist wird der Aufwand es zu automatisieren deutlich geringer sein als der Aufwand es immer wieder anzupassen.
Gruß
Doskias
Zitat von @Timo0o:
Ich glaube der Aufwand wird zu viel... da setz ich den Azubi wieder dran, die Aufgaben eben Händisch zu ändern
Ich glaube der Aufwand wird zu viel... da setz ich den Azubi wieder dran, die Aufgaben eben Händisch zu ändern
Gib deinem Azubi lieber Zeit sich mit Powershell auseinanderzusetzen, wenn dir die zeit fehlt. @MrCount hat dir ja schon den nächsten Hinweis gegeben, wie du an den Tasknamen kommst. Kombiniere das mit dem was @emeriks geschrieben hat und dein Skript sagt dir unter welchen Aufgabennamen es läuft. Nutze den Aufgabennamen um mit new-SchedduledTaskTricker (siehe hier) einen Trigger mit AtStartup hinzuzufügen.
Ein Azubi ist da um zu lernen und nicht um dir deine Aufgaben auf die du keine Lust hast (und/oder wo dir keine Lösung zu einfällt) abzunehmen.
Grade wenn es, wie es scheint, eine wiederkehrende Aufgabe ist wird der Aufwand es zu automatisieren deutlich geringer sein als der Aufwand es immer wieder anzupassen.
Gruß
Doskias
Moin,
Genau! Gib dem Azubi die hier gesammelten Infos und die Aufgabe, das Skript dahingehend zu ändern.
Liebe Grüße
Erik
Zitat von @Doskias:
Ein Azubi ist da um zu lernen und nicht um dir deine Aufgaben auf die du keine Lust hast (und/oder wo dir keine Lösung zu einfällt) abzunehmen.
Ein Azubi ist da um zu lernen und nicht um dir deine Aufgaben auf die du keine Lust hast (und/oder wo dir keine Lösung zu einfällt) abzunehmen.
Genau! Gib dem Azubi die hier gesammelten Infos und die Aufgabe, das Skript dahingehend zu ändern.
Liebe Grüße
Erik