mopped90 Posted January 28, 2015 Share Posted January 28, 2015 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 Quote Link to comment
Tjod Posted January 28, 2015 Share Posted January 28, 2015 Aufnahmen im Recording Service oder im DVBViewer? Quote Link to comment
mopped90 Posted February 4, 2015 Author Share Posted February 4, 2015 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 Quote Link to comment
Tjod Posted February 4, 2015 Share Posted February 4, 2015 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. Quote Link to comment
mopped90 Posted February 10, 2015 Author Share Posted February 10, 2015 Hallo Zusammen,also es klappt einfach nicht... Also ich habe mal willkürlich eine Serie aufgenommen: In diesem Fall Desperate HousewivesIch 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.tsD:\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 VG, Chris Quote Link to comment
dbraner Posted February 10, 2015 Share Posted February 10, 2015 (edited) 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 February 10, 2015 by dbraner Quote Link to comment
mopped90 Posted February 10, 2015 Author Share Posted February 10, 2015 (edited) 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 February 10, 2015 by mopped90 Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.