tobile
Goto Top

Ps1 lässt sich nicht per Befehl ausführen

Hallo Zusammen,

bevor ich mit dem Kopf gegen die Wand renne, benötige ich dringend die Hilfe von Profis.

Ziel ist, mittels einer ps1-Datei, ausgelöst über das Windows-Kontextmenü (Win10/11), einen Screenshot anzufertigen.

Der Aufruf der ps1 erfolgt über ein Fremdprogramm wo Programmname und Argumente definiert werden. Dieses Programm zeigt dann einen neuen Eintrag im Kontextmenü an, über den der Screenshot erstellt werden soll:
Programm: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
Argumente: "C:\Users\............................\Screenshot_ohne_Timeout.ps1"

-Klicke ich auf diesen Eintrag im Kontextmenü, dann geht ganz kurz ein Powershellfenster auf. Passieren tut sonst Nix!

-Klicke ich doppelt auf die ps1-Datei, passiert das gleiche wie oben > Fenster kurz auf, dann Nichts.
-Gehe ich mit Rechtsklick auf die ps1-Datei und klicke auf "mit Powershell ausführen", dann wird der Screenshot erzeugt und auf dem Desktop abgelegt.

-Führe ich die ps1 in der ISE aus, dann kommt eine Fehlermeldung:
+ CategoryInfo : Sicherheitsfehler: (face-smile , ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnauthorizedAccess

Mit dem Unblock-File Befehl habe ich die Datei aber freigegeben (Unblock-File -Path C:\............. -Confirm

Was nun? Liegt es an den Restriktionen des Firmenrechners, dass ich hier nicht weiterkomme!? Glaube ich zwar nicht, da die Datei ja stellenweise ausgeführt wird, aber vielleicht kämpfe ich ja doch gegen Windmühlen...

Bitte um eine kurze Info.

Vielen Dank.

Content-Key: 1688744313

Url: https://administrator.de/contentid/1688744313

Printed on: May 7, 2024 at 05:05 o'clock

Member: NordicMike
NordicMike Jan 04, 2022 at 13:56:09 (UTC)
Goto Top
Damit das Fenster nicht gleich verschwindet, kannst du testweise mal eine Pause hinzufügen. Dann hast du Zeit die Fehlermeldung zu lesen.
Member: Tobile
Tobile Jan 04, 2022 at 14:09:42 (UTC)
Goto Top
Hallo NordicMike,

Danke für die Antwort.

Ich habe es mit "pause" und auch mit "Start-Sleep -Seconds 30" versucht.
Bei Doppelklick verschwindet das Fenster sofort.
Member: Tobile
Tobile Jan 04, 2022 at 14:15:18 (UTC)
Goto Top
Das habe ich noch..

"C:\Users\..................\Screenshot_ohne_Timeout.ps1" kann nicht geladen werden, da
die Ausführung von Skripts auf diesem System deaktiviert ist. Weitere Informationen finden Sie unter
"about_Execution_Policies" (https:/go.microsoft.com/fwlink/?LinkID=135170).


Kann aber nicht sein, da mit "Rechtsklick auf die ps1-Datei und "mit Powershell ausführen" die ps1 ja funktioniert.
Mitglied: 149569
149569 Jan 04, 2022 updated at 16:18:41 (UTC)
Goto Top
Zitat von @Tobile:

Das habe ich noch..

"C:\Users\..................\Screenshot_ohne_Timeout.ps1" kann nicht geladen werden, da
die Ausführung von Skripts auf diesem System deaktiviert ist. Weitere Informationen finden Sie unter
"about_Execution_Policies" (https:/go.microsoft.com/fwlink/?LinkID=135170).

Für Anfänger dingend empfohlene Lektüre
Powershell Leitfaden für Anfänger

Insbesondere der Abschnitt Ausführungsrichtlinie (Execution-Policy) hier
https://docs.microsoft.com/de-de/powershell/scripting/learn/ps101/01-get ...

Bedeutet im Klartext: Elevated Powershell-Konsole starten und
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
ausführen.
Member: Tobile
Tobile Jan 06, 2022 at 12:12:20 (UTC)
Goto Top
Hallo "hacktor",

nun habe ich Zeit mich mal wieder um mein Anliegen zu kümmern...

Das mit der "Elevated Powershell" und der "ExecutionPolicy" hatte/habeich auf dem Schirm, aber ich wollte mit der "ExecutionPolicy" nicht Systemweit agieren, sondern nur diese eine ps1 "freischalten. Daher der "Unblock-Befehl" (siehe oben).
Powershell wurde als Admin benutzt...

Bin ich da auf dem Holzweg?
Member: Tobile
Tobile Jan 06, 2022 at 12:15:53 (UTC)
Goto Top
Ach so...

Vielen Dank noch für den Link zum Leitfaden. Übersichtlich und für den Laien sehr hilfreich.
Mitglied: 149569
149569 Jan 06, 2022 updated at 12:27:05 (UTC)
Goto Top
Zitat von @Tobile:

Hallo "hacktor",

nun habe ich Zeit mich mal wieder um mein Anliegen zu kümmern...

Das mit der "Elevated Powershell" und der "ExecutionPolicy" hatte/habeich auf dem Schirm, aber ich wollte mit der "ExecutionPolicy" nicht Systemweit agieren, sondern nur diese eine ps1 "freischalten. Daher der "Unblock-Befehl" (siehe oben).
Powershell wurde als Admin benutzt...

Bin ich da auf dem Holzweg?

Wenn du nur ein Skript so starten willst musst du dieses per Bypass-Policy in der CMD starten
powershell -EP Bypass -F "C:\script.ps1"  

Besser wäre es wenn du dass Skript signierst und auf dem Rechner nur die Ausführung von signierten Skripten via ExecutionPolicy zulässt.
Member: Tobile
Solution Tobile Jan 06, 2022 at 12:38:33 (UTC)
Goto Top
face-smile face-smile face-smile face-smile face-smile face-smile face-smile face-smile face-smile face-smile

-EP Bypass -F

Das war es und reicht mir aus.

Super. Danke Dir.