Powershell Script im Hintergrund laufen lassen und Ordner überwachen?
Hallo,
ich habe ein Powershell Script, welches überprüft ob eine PDF Datei vorhanden ist, wenn ja, wird es in einen anderen Ordner kopiert. Eigentlich eine ganz einfache Sache...
Allerdings wird diese Aktion nur ausgeführt, wenn ich das PS manuell starte.
Aber gibt es eine Möglichkeit, es im Hintergrund laufen zu lassen?
Vermutlich über eine Aufgabenplanung, richtig? Aber ich kann hier die ausführbare Zeit nur auf 1 Minute legen...
Ich habe was nachgelesen, aber wäre diese Möglichkeit angebrachter?
Start-Job
Möchte man ein Script im Hintergrund starten oder ein Cmdlet, das den Schalter AsJob nicht vorsieht, dann hilft hier Start-Job:
Start-Job -ScriptBlock {Get-Process -Name *Power*}
Mein Script lautet move.ps1 Bedeutet ich muss Power ersetzen?
Leider bin ich momentan mit PS noch nicht gute bewandert.
Vielleicht hat jemand einen Tipp für mich?
Besten Dank
ich habe ein Powershell Script, welches überprüft ob eine PDF Datei vorhanden ist, wenn ja, wird es in einen anderen Ordner kopiert. Eigentlich eine ganz einfache Sache...
Allerdings wird diese Aktion nur ausgeführt, wenn ich das PS manuell starte.
Aber gibt es eine Möglichkeit, es im Hintergrund laufen zu lassen?
Vermutlich über eine Aufgabenplanung, richtig? Aber ich kann hier die ausführbare Zeit nur auf 1 Minute legen...
Ich habe was nachgelesen, aber wäre diese Möglichkeit angebrachter?
Start-Job
Möchte man ein Script im Hintergrund starten oder ein Cmdlet, das den Schalter AsJob nicht vorsieht, dann hilft hier Start-Job:
Start-Job -ScriptBlock {Get-Process -Name *Power*}
Mein Script lautet move.ps1 Bedeutet ich muss Power ersetzen?
Leider bin ich momentan mit PS noch nicht gute bewandert.
Vielleicht hat jemand einen Tipp für mich?
Besten Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 477947
Url: https://administrator.de/contentid/477947
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
11 Kommentare
Neuester Kommentar
Hi,
https://gallery.technet.microsoft.com/scriptcenter/Powershell-FileSystem ...
Ich glaube das ist genau das was du suchst.
mfg
maddig
https://gallery.technet.microsoft.com/scriptcenter/Powershell-FileSystem ...
Ich glaube das ist genau das was du suchst.
mfg
maddig
Am Ende noch ne while Schleife einfügen, dann ja.
while($true){sleep 5}
Zitat von @140447:
Am Ende noch ne while Schleife einfügen, dann ja.
ich bin nun nicht der Guru - aber das scheint mir die falsche Lösung zu sein.Am Ende noch ne while Schleife einfügen, dann ja.
> while($true){sleep 5}
>
Das letzte mal, wie ich sowas gebraucht habe, habe ich den Job so angelegt:
%windir%\system32\windowspowershell\v1.0\powershell.exe –noexit –File C:\Test.ps1
Es gibt immer 1000 Wege nach Rom, beides funktioniert wenn man entsprechend anwendet. Wichtig ist nur das die Session bestehen bleibt , da sonst die Events nicht mehr greifen. Je nach Anwendungszweck ist das eine oder das andere zweckmäßig.
Zitat von @Kraemer:
Das letzte mal, wie ich sowas gebraucht habe, habe ich den Job so angelegt:
Man beachte das noexit
Das noexit bewirkt nur, dass die Shell nicht geschlossen wird. Deswegen kann das Script in dieser Shell trotzdem beendet worden sein. Ein Loop mit Sleep am Ende sollte das verhindern.Das letzte mal, wie ich sowas gebraucht habe, habe ich den Job so angelegt:
%windir%\system32\windowspowershell\v1.0\powershell.exe –noexit –File C:\Test.ps1
Zitat von @emeriks:
Das noexit bewirkt nur, dass die Shell nicht geschlossen wird. Deswegen kann das Script in dieser Shell trotzdem beendet worden sein. Ein Loop mit Sleep am Ende sollte das verhindern.
es spielt keine Rolle, ob das Script beendet worden ist, weil der Eventhandler persistent in der Session ist. Die PS-Session darf nur schlicht nicht beendet werden.Das noexit bewirkt nur, dass die Shell nicht geschlossen wird. Deswegen kann das Script in dieser Shell trotzdem beendet worden sein. Ein Loop mit Sleep am Ende sollte das verhindern.
Zitat von @Kraemer:
es spielt keine Rolle, ob das Script beendet worden ist, weil der Eventhandler persistent in der Session ist. Die PS-Session darf nur schlicht nicht beendet werden.
Korrekt. Aber wäre trotzdem hilfreich, wenn man das Script einfach mal so durch Ausführen über den Explorer startet.es spielt keine Rolle, ob das Script beendet worden ist, weil der Eventhandler persistent in der Session ist. Die PS-Session darf nur schlicht nicht beendet werden.
Die Parameter kommen natürlich ins Argumente Feld im Task.