peter-h
Goto Top

PHP Powershell Script ausführen

Hallo zusammen,

mein Anliegen
möchte ein Powershell-Script unter PHP ausführen

Powershell-Script (funktioniert) = druck.ps1
(New-Object -ComObject WScript.Network).SetDefaultPrinter('HP Color LaserJet 2600n')  

PHP-Script (funktioniert)
$psdatei="druck.ps1";  
$command = shell_exec($psdatei);
echo $command;

Beim Aufrufen des PHP-Skriptes wird lediglich der Editor geöffnet
anstatt der Befehl ausgeführt.

Danke schon mal im Voraus für Eure Hilfe

Content-ID: 1183936974

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

Ausgedruckt am: 21.11.2024 um 19:11 Uhr

12764050420
12764050420 26.04.2024 aktualisiert um 12:39:02 Uhr
Goto Top
Beim Aufrufen des PHP-Skriptes wird lediglich der Editor geöffnet
Schon wieder alles vergessen was man dir dazu schon erzählt hat?
PHP Ausdruck über shell-exec()
9697748851
9697748851 26.04.2024 aktualisiert um 12:40:38 Uhr
Goto Top
Betreibe einen Webshop...ist noch im Aufbau

shell_exec

.. bitte nicht..
Peter-H
Peter-H 26.04.2024 um 13:20:08 Uhr
Goto Top
Danke für deine Antwort,

nein keineswegs....
eventuell hab ich mich verkehrt ausgedrückt.

ich möchte ein Powershell-Script mit php ausführen
$psdatei="druck.ps1";
in der druck.ps1 steht folgendes drin
(New-Object -ComObject WScript.Network).SetDefaultPrinter('HP Color LaserJet 2600n')  

Beim Ausführen im Powershell-Editor wird dann der Standarddrucker gewechselt

Wenn ich das Ganze in PHP mit shell_exec() ausführe

$command = shell_exec($psdatei);
echo $command;

öffnet sich dann Notepad anstatt dass der Standarddrucker gewechselt wird

Danke nochmals für deine Hilfe
12764050420
Lösung 12764050420 26.04.2024 aktualisiert um 13:55:00 Uhr
Goto Top
öffnet sich dann Notepad anstatt dass der Standarddrucker gewechselt wird
Normal weil PS-Skripte per Default nicht ausgeführt werden sondern immer mit Notepad im Bearbeiten Modus geöffnet werden, passiert ja auch wenn du unter Windows doppelt auf eine ps1-Datei klickst!!
Im anderen Beitrag steht doch wie du PS Skripte starten musst. Mit der Ausführung über den Powershell Interpreter .... powershell -EP Bypass -File "Skript.ps1"

Da stellt sich aber einer echt an ... Aber ist ja eh wieder Freitag.
Peter-H
Lösung Peter-H 26.04.2024 um 14:12:14 Uhr
Goto Top
Merci,
hab es jetzt so hinbekommen
$command = Shell_Exec ('powershell.exe -executionpolicy bypass -NoProfile -File ".\druck.ps1"');  
echo $command;

Sorry habe wenig Erfahrung mit PowerShell

Danke nochmals