Jump to content
gooly

Powershell - Eine Aufgabe läuft immer noch nicht

Empfohlene Beiträge

Hallo,

auf meinem alten Win7 Laptop war alles besser - nein, nicht unbedingt, aber das funktionierte.

Ich habe dort eine Aufgabe geplant, immer Sonntags um 20:07 ein Powershell Skript zu starten. Das läuft seit mehr als ein Jahr zuverlässig, ich bin selbst erstaunt!

Jetzt soll das auch auf auf meinem neuen Win10 passieren.

Die Skript läuft auf Win10 und tut was ich will, wenn ich es manuell starte - gerade gemacht.

Ich hatte es nach dem Verfahren auch signiert (nachdem ich zuerst ein Zertifikat erstellt habe):

$cert = @(Get-ChildItem cert:\CurrentUser\My -CodeSigning)[0]
Set-AuthenticodeSignature .\your-script.ps1 $cert

Die Rückmeldung der Zertifizierung war positiv und es gibt am Ende des Skripts jetzt einen Haufen Zahlen!

Ich habe mir als user und als der, der die Aufgabe mit der Aufgabenplanung von Win10 installiert, von mir als Root eine Stapelverarbeitungserlaubnis erteilen lassen - ich darf das also!

So - hat aber alles bis jetzt nichts genutzt, Win120 startet mein Skript einfach nicht, alles muss man selber machen.  :(

In der Aufgabenplanung steht dann unter "Ergebnis der letzten Aufführung":  (0x80070002) - lt. Prof. Dr. Google ein Update-Fehler??

Ich lade aber nur eine Webseite mit Ereignissen herunter - das hat absolut nichts mit einem Windows update zu tun!

 

Unter Aktionen (der Aufgabenplanung) wird Powershell so aufgerufen:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

und in den Optionen:

-noprofile file C:\Users\...\mySkript.ps1

Alles so wie auf meinem alten Laptop mit Win7 (der Pfad stimmt natürlich!)

- Warum mobbt mich Win10, ich habe doch alles gemacht, was notwendig zu sein scheint?

- Wie kann ich eine Art logging installieren, um zu erfahren, wenn es weiterhin nicht klappt, wo den der Schuh drückt?

Vielen Dank!

Gooly

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Leg doch auf C:\ einen Ordner Scripte an, dort das Script hinein und in der Aufgabenplanung in den Optionen den Pfad anpassen. Läuft das Script an, wenn Du *NUR* den Namen des Scriptes angibst? Ohne den anderen Optionen? Ansonsten wäre ja eine Batchdatei an der Stelle evtl. auch hilfreich, dort packst Du den gesamten Aufruf rein:

 

vor 55 Minuten schrieb gooly:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile file C:\Users\...\mySkript.ps1

 

Evtl. musst Du mit Anführungszeichen noch testen.

 

BTW: Exportiere die Aufgabe vom W7 in ein XML und importiere sie auf dem W10 wieder, jetzt nur noch Anpassungen vornehmen.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Das Skript läuft, wenn ich eine Konsole öffne, dort PowerShell eingebe, dann mit cd C:\...  ins Verzeichnis springe, wo das Skript liegt und es dann mit .\mySkript.ps1 starte!

Unter Win7 verwende ich auch keine "".

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Moin,

 

ergänze mal die Optionen um "-ExecutionPolicy Unrestricted". Außerdem scheint vor "file" der Bindestrich zu fehlen.

 

Die Eigenschaften des Tasks sind korrekt, also Anmeldung usw.?

 

Gruß, Nils

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Aha, das - ich hab das jetzt ergänzt - vielen Dank!

Die Option " -ExecutionPolicy Unrestricted " versuch ich dann, wenn es auch mit - nicht geht.

Hmm - die Minuszeichen sind schon sehr klein und die Augen werden auch nicht besser mit der Zeit, ein bisschen Schwund ist immer ;)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

# for hex 0x80070002 / decimal -2147024894 :

  COR_E_FILENOTFOUND                                            corerror.h     

 

Wenn Du da bei Dr. Google "Update-Fehler" gefunden hast, würde ich mal den Arzt wechseln...  :-)

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Am 2.7.2018 um 21:37 schrieb daabm:

# for hex 0x80070002 / decimal -2147024894 :

  COR_E_FILENOTFOUND                                            corerror.h     

 

Wenn Du da bei Dr. Google "Update-Fehler" gefunden hast, würde ich mal den Arzt wechseln...  :-)

 

Hmm - kennst Du einen besseren?  ;)

Aber dann ist es wohl das Minuszeichen - mal sehen, Sonntag ist es wieder so weit!

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Und -

  1. Wieder ist es nicht gelaufen :(
  2. Wieder stand da: Letzte Laufzeit: 08.07.2018 20:35  Ergebnis der Ausführung: (0x80070002) - da habe ich manuell versucht die Ausführung zu starten :(
  3. Wieder konnte ich das Skript von der PowershellKonsole starten (im Ordner c:\..\PS-Scripts mit .\LoadAndParse_ForexFactory.ps1) und es lief ohne Fehler, ohne (0x80070002) und mit dem erwartetem Ergebnis :(
  4. Ich habe das - vor file ergänzt und -ExecutionPolicy Unrestricted  eingefügt - trotzdem :(
  5. Die Eingabefelder schauen (jetzt) so aus:
    Progr./Skript: ‪C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    Argum. ..(opt): -ExecutionPolicy Unrestricted -noprofile -file C:\Users\cas\Documents\CentralStation\RawNewsData\PS-Scripts\LoadAndParse_ForexFactory.ps1
  6. Ich wär ja schon mal zufrieden, wenn ich in der Aufgabenplanung die Ausführung manuell starten könnte :(

Seufz - soooo viele :(

Wenn ich nur wüsst, was ich hätt tun sollen müssen :(

PS: Ich hab' jetzt mal versucht, wie's hier steht: Mal seh'n!

bearbeitet von gooly

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Moin,

 

solche Dateien solltest du nie in einem Ordner des Benutzerprofils ablegen, sondern immer in "neutralen" Ordnern. Wenn dein Task in einem anderen Userkontext läuft, darf er natürlich nicht auf die Datei in deinem Profil zugreifen.

 

Gruß, Nils

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Also wirklich schwer sollte das wirklich nicht sein. Bei mir laufen so täglich ca. 20 PS-Skripte. Die Anführungszeichen nicht vergessen...

powershell.exe -File "C:\MeinScript\Juhuu.ps1"

 

Davor einmal die ExecutionPolicy setzen mit: (letzteres mit erhöhten Berechtigungen)

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Ich bin ratlos - komplett ratlos??

Wieder wurde von der Aufgabenplanung der Befehl nicht ausgeführt.

Wenn ich von der Konsole den gleichen Befehl abschicke:

powershell.exe -file "C:\Users\...\LoadAndParse_ForexFactory.ps1"

funktioniert alles ohne Probleme.

Das Skript ist signiert, die Policy ist RemoteSigned.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Du bist dir sicher das zur Laufzeit Zugriff auf C:\Users\... besteht?

 

Hast du den Tip von NilsK schon befolgt und das Skript an einem "neutralen" Ort abgelegt?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

- Nein das Skript liegt in einem 'meiner' Unterordner und da ich den Befehl ja auch manuell starten konnte (nächste Zeile), sehe ich keine Notwendigkeit.
- Es existieren alle Ordner und Dateien zur Laufzeit - quasi unverändert seitdem ich den PC habe!
Den Befehl von oben: powershell.exe -file "C:\Users\.." habe ich erfolgreich(!) von dem Ort gestartet, an dem die Konsole startete (C:\Users\cas>):

  1. Das ist garantiert nicht, wo das Skript liegt - das Skript habe ich so 'gemacht', dass es die Ordner 'selber kennt' - es funktioniert ja perfekt, wenn ich es manuell starte!
  2. Ich bin der user cas, der die Aufgabe definiert, das Skript geschrieben und signiert hat, dem die Ordner und Dateien gehören, wo das Skript liegt und in die das Skript schreibt und überhaupt alles.. (bin aber nicht Admin!).
  3. Ich lasse jetzt mal den Pfad zu powershell.exe weg und warte ieder auf den nächsten Sonntag:
    Programm starten; Programm/Skript: powershell.exe; Argumente ..: -file "C:\Users\cas\...\LoadAndParse_ForexFactory.ps1"

Ach was ich schon immer wissen wollte, warum macht Windows das Parameterfeld bei den Aufgaben so klein - oder sind die 10 Zeichen die man sehen kann schon eine zu große Zumutung?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Es lief jetzt!

Was habe ich gemacht?

Ich habe es einfach neu zertifiziert. Danach lief es auch, wen die Aufgabenplanung es startet!

PS - wo und wie kann ich die Frage als gelöst markieren?

bearbeitet von gooly
Ergänzende Frage

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 20 Minuten schrieb gooly:

Ich habe es einfach neu zertifiziert.Danach lief es auch.

Sicher? Denn das hättest du auch in einer normalen Powershell-Sitzung gemerkt ;-)

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden

×