Saltar al contenido

ejecutando un script de Powershell desde php

Solución:

Parece que su comando está rodeado de comillas simples. Creo que si los eliminas, tu comando debería ejecutarse.

shell_exec devuelve el resultado del comando que ejecuta. Para realizar un diagnóstico más detallado, almacene el resultado en una variable y luego imprímalo:

$output= shell_exec($runCMD);
echo( '<pre>' );
echo( $output );
echo( '</pre>' );

Asegúrese de habilitar la ejecución de scripts. Esa capacidad está desactivada de forma predeterminada. Debe habilitar la ejecución de scripts en cada máquina en la que desee ejecutar scripts de PowerShell. Correr about help_signing para más información.

Microsoft recomienda ejecutar Set-ExecutionPolicy RemoteSigned -Scope LocalMachine. Esto permite que todas las cuentas de usuario en una máquina ejecuten scripts locales sin problemas, pero requiere confirmación para ejecutar scripts descargados de Internet. Esto debe ejecutarse en un mensaje administrativo. Si está ejecutando un sistema operativo de 64 bits, deberá hacerlo desde un shell de 64 bits y de 32 bits.

Encontré esto en otro sitio web y pensé en compartirlo:

Estaba depurando un programa que usa la API de Windows (Creación de un proceso secundario con entrada y salida redirigidas) para capturar la salida estándar de Windows PowerShell de Microsoft.

El script pasado a PowerShell (-File switch) no se ejecutó y PowerShell simplemente se colgó hasta que el Administrador de tareas lo mató.

Resulta que necesita utilizar el parámetro no documentado “-InputFormat none”:

C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -InputFormat none -File file.ps1

Esto funcionó para mí.

Usar “-executionPolicy Unrestricted“junto con el comando”powershell.exe“. Por lo tanto, el comando será:

powershell.exe -executionPolicy Unrestricted

Entonces seguramente funcionará.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *