es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ejecutar un script de PowerShell desde Office Scripts (Excel Online)

Estoy preguntando si es posible ejecutar un script de PowerShell desde un script de Office. Mi objetivo es llamar al script de Office desde PowerAutomate y luego hacer que el script de Office inicie un proceso de PowerShell que realice algunas otras tareas automatizadas. Este es el código que tengo hasta ahora y estoy obteniendo el error “Ver línea 3, columna 5: Los scripts de Office no pueden inferir el tipo de datos de esta variable. Por favor, declare un tipo para la variable.”

function main(workbook: ExcelScript.Workbook)
{
var spawn = require('child_process').spawn;
var child = spawn('powershell.exe', ['C:/Users/utrl/PythonWatcher.ps1']);
child.stdout.on('data', function(data){
    console.log('DATA:', data.toString());
});
child.stdout.on('close', function(data){
    console.log('psscript cerrado');
});
}

¿Alguien sabe qué estoy haciendo mal aquí o alguna manera más fácil de lograr lo que estoy intentando hacer en Scripts de Office? Para obtener más contexto, quiero que el script de PowerShell se inicie como resultado del flujo de PowerAutomate. La empresa en la que trabajo no tiene PowerAutomate Desktop (que sé que tiene mucha más flexibilidad para iniciar código). Tampoco quiero usar el programador de tareas para iniciar el PS ya que mi empresa no permite que el programador de tareas se ejecute cuando los usuarios no están conectados, y necesito que este proceso se ejecute independientemente de si un usuario está conectado. Así que estoy trabajando con algunas limitaciones aquí. ¡Cualquier ayuda o orientación es muy apreciada!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Ejecutando un script de PowerShell desde un Script de Office

    Sí, es posible ejecutar un script de PowerShell desde un Script de Office. El objetivo es llamar al Script de Office desde PowerAutomate y luego hacer que éste inicie un proceso de PowerShell que realice tareas automatizadas.

    En el código proporcionado, se está produciendo el error “Office Scripts no puede inferir el tipo de datos de esta variable. Por favor, declare un tipo para la variable”. Esto se debe a que el tipo de la función require('child_process').spawn no está definido explícitamente. Para resolver esto, se puede declarar el tipo de función como const spawn: (command: string, args?: string[], options?: SpawnOptionsWithoutStdio) => ChildProcessWithoutNullStreams.

    Alternativamente, una manera más fácil de lograr lo que se está intentando es usar una acción de terceros en PowerAutomate, como la acción “Ejecutar un script” que puede ejecutar comandos de PowerShell directamente.

    Sin embargo, si hay restricciones para usar acciones de terceros, el código proporcionado puede ser corregido mediante la declaración explícita de tipos y debería funcionar bien.

Comments are closed.