Jump to content

PowerShell Script nach Aufgabe?


mopped90

Recommended Posts

Hallo Zusammen,

 

ich habe mir in PowerShell ein Script zusammen geschrieben und möchte das Script nun nach jeder Aufnahme starten.

Leider funktionierts nicht, aber wenn ich es manuell machen, dann klappts.

 

Danke vorab!

 

VG

Link to comment
  • Hi!
  • Naja im RecordingService...

Ich habe mir eine Aufgabe eingerichtet, diese sollte nach einer Aufnahme starten. Leider startet das Script nicht.

Jemand ne Idee wie ich das hinbekomme? (Über CMD starten geht leider nicht, weil ich Leerzeichen in dem Dateinamen habe, den ich verwenden möchte, oder ich muss diese erst in einem CMD script bereinigen)

 

Danke und BG

Link to comment

Rufst du die über powershell.exe -Command ". 'C:\Users\123\HalloWelt.ps1'" auf?

 

Der Script wird wie der RS im Systembenutzer ausgeführt. Das heißt du siehst von dem nichts und Änderungen die du für einen Benutzeraccount gemacht hast haben keine Auswirkung auf den.

 

Probiere es eventuell erst mal mit einem kleinen Test script der beim aufrufen einfach eine Datei erzeugt.

Link to comment

Hallo Zusammen,

also es klappt einfach nicht...

Also ich habe mal willkürlich eine Serie aufgenommen: In diesem Fall Desperate Housewives

Ich habe mir dazu eine Aufgabe angelegt:
Dateiname:

D:\PowerShellScripts\test\testscript1.bat

Parameter:

-file D:\PowerShellScripts\test\SeriesRenamer_Release1.ps1 -filen "{FILENAME}" -path {PATH}

Arbeitsverzeichnis:

D:\PowerShellScripts\test\

Ich habe mir nun die Batch datei erstellt mit folgendem Inhalt:

testscipt1.bat

echo %1 %2 %3 %4 %5 %6 > test.log

Inhalt von test.log nach einer Aufnahme:

-file D:\PowerShellScripts\test\SeriesRenamer_Release1.ps1 -filen "2015-02-10_01-10-15_Desperate Housewives_Die List der Frauen" -path D:\PowerShellScripts\test\

So, nun weiß ich was ich von RS übermittelt bekomme!

Wenn ich das nun mal in die cmd werfe:

D:\PowerShellScripts\test>powershell -file D:\PowerShellScripts\test\SeriesRenamer_Release1.ps1 -filen "2015-02-10_01-10-15_Desperate Housewives_Die List der Frauen" -path D:PowerShellScripts\test\

 

dann läuft das Script anstandslos durch.

 

Also habe ich eine 2. Batch geschrieben und als Aufgabe angelegt:

Dateiname:

D:\PowerShellScripts\test\aufruf.bat

 

Parameter:

-file D:\PowerShellScripts\test\SeriesRenamer_Release1.ps1 -filen "{FILENAME}" -path {PATH}

 

Arbeitsverzeichnis:

D:\PowerShellScripts\test\

 

Meine Batch "aufruf.bat" sieht so aus:

powershell.exe %1 %2 %3 %4 %5 %6

 

müsste dann meines erachtens folgendes ergeben:

D:\PowerShellScripts\test>powershell -file D:\PowerShellScripts\test\SeriesRenamer_Release1.ps1 -filen "2015-02-10_01-10-15_Desperate Housewives_Die List der Frauen" -path D:PowerShellScripts\test\

 

und somit identisch zu meinem manuellen Aufruf in der CMD sein. Leider funktioniert es hier nicht.

 

Als Ausgabe erzeuge ich mir in meinem PS Script eine Datei und der Inhalt sieht nach dem Aufruf so aus:

D:\PowerShellScripts\test\
2015-02-10_01-10-15_Desperate Housewives_Die List der Frauen.ts
D:\PowerShellScripts\test\
S05E06-Desperate_Housewives-Die_List_der_Frauen.ts

Aber nur nach dem manuellen Aufruf, nicht aber nach dem automatischen Start über die Aufgaben im RS.

 

Hoffe jmd kann mir helfen. Bin zwar ein echter Antiprogrammierer, aber das sollte eigentlich nicht so schwer sein :shocked:

 

VG,

Chris

Link to comment

Du könntest in Deiner Test-Batch aufruf.bat vor powershell.exe den vollen Pfadnamen von powershell.exe eintragen. Bei mir würde das so aussehen:

 

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe %1 %2 %3 usw.

 

Kann bei Dir ein anderes Verzeichnis sein. Der Recservice startet die Aufgabe über das Systemkonto. Da ist das Powershell Programmverzeichnis nicht zwingend im Pfad.

 

Noch eine Möglichkeit: Ersetze

 

-file D:\PowerShellScripts\test\SeriesRenamer_Release1.ps1 -filen "{FILENAME}" -path {PATH}

 

durch

 

"-file D:\PowerShellScripts\test\SeriesRenamer_Release1.ps1 -filen {FILENAME} -path {PATH}"

 

wobei das natürlich zu Problemen führt, wenn in FILENAME ein Leerzeichen enthalten ist.

Edited by dbraner
Link to comment

Hallo Zusammen,

 

ich habe die Lösung gefunden. Es liegt an der Authentication Policy.

Mit dem System User kann man sich nicht anmelden, somit auch nicht die Policy ändern.

Wir müssen es also umgehen.

Mein Aufruf sieht also so aus:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NonInteractive -NoProfile -ExecutionPolicy Bypass %1 %2 %3 %4 %5 %6

 

 

Hier der Link zur Lösung:

http://powershell.com/cs/forums/t/13032.aspx

 

Danke und VG,
Chris

 

Und jetzt versuche ich mal den Aufruf direkt über PS ohne CMD. Mal sehen, ob dass auch klappt.

Edited by mopped90
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...