He estado buscando por la web y en Stackoverflow, pero no he encontrado una respuesta a esta pregunta. ¿Cómo ejecutarías un script de Powershell desde Node.js? La secuencia de comandos está en el mismo servidor que la instancia de Node.js.Ejecutar secuencia de comandos Powershell de Node.js
Respuesta
Usted sólo puede generar un proceso hijo "powershell.exe" y escuchar a la salida estándar para la salida de comandos y stderr de errores:
var spawn = require("child_process").spawn,child;
child = spawn("powershell.exe",["c:\\temp\\helloworld.ps1"]);
child.stdout.on("data",function(data){
console.log("Powershell Data: " + data);
});
child.stderr.on("data",function(data){
console.log("Powershell Errors: " + data);
});
child.on("exit",function(){
console.log("Powershell Script finished");
});
child.stdin.end(); //end input
Además de la respuesta aceptada, hay una biblioteca llamada Node.JS Edge.js que permite que se ejecuten varios languges desde dentro del nodo. Incluyendo C#, J #, .Net, SQL, Python, PowerShell y otros lenguajes de CLR.
Tenga en cuenta que Edge.js requiere PowerShell 3.0 & solo funciona en Windows (muchas de las otras funciones también funcionan en Mac y Linux).
Esta opción funciona para mí, cuando la secuencia de comandos todavía no está allí, pero desea generar algunos comandos dinámicamente, enviarlos y trabajar con los resultados en el nodo.
var PSRunner = {
send: function(commands) {
var self = this;
var results = [];
var spawn = require("child_process").spawn;
var child = spawn("powershell.exe", ["-Command", "-"]);
child.stdout.on("data", function(data) {
self.out.push(data.toString());
});
child.stderr.on("data", function(data) {
self.err.push(data.toString());
});
commands.forEach(function(cmd){
self.out = [];
self.err = [];
child.stdin.write(cmd+ '\n');
results.push({command: cmd, output: self.out, errors: self.err});
});
child.stdin.end();
return results;
},
};
module.exports = PSRunner;
O simplemente puede usar Node-PowerShell.
Node-PowerShell aprovechando dos de las herramientas más simples, efectivas y fáciles que existen en el mundo de la tecnología actual. Por un lado, NodeJS, que hizo una revolución en el mundo de javascript, y por otro lado, PowerShell, que recientemente lanzó una versión inicial de código abierto y multiplataforma, y al conectarlas juntas, le da el poder de cree cualquier solución que le pidieron, sin importar si es un programador, un informático o un tipo de DevOps.
¡Bienvenido a Stack Overflow! Un enlace a una solución es bienvenido, pero asegúrese de que su respuesta sea útil sin él: [agregue contexto alrededor del enlace] (// meta.stackexchange.com/a/8259) para que los demás usuarios tengan una idea de lo que es y por qué está allí, luego cita la parte más relevante de la página a la que estás vinculando en caso de que la página objetivo no esté disponible. [Las respuestas que son poco más que un enlace se pueden eliminar.] (// stackoverflow.com/help/deleted-answers) – FelixSFD
- 1. Ejecutar secuencia de comandos bash desde Windows PowerShell
- 2. Cómo llamar a una función en otra secuencia de comandos de PowerShell al ejecutar la secuencia de comandos de PowerShell con 'Ejecutar con PowerShell'
- 3. ¿Ejecutar instrucción o ejecutar secuencia de comandos?
- 4. Ejecutar una secuencia de comandos utilizando ISQL
- 5. Ejecutar secuencia de comandos de Powershell que se encuentra en control de fuente TFS
- 6. PowerShell: ejecutar el bloque de secuencia de comandos en el ámbito específico
- 7. Invocar secuencia de comandos de PowerShell con argumentos de C#
- 8. Secuencia de comandos de inicio para node.js repl
- 9. Ejecutar (remota) secuencia de comandos php desde (local) secuencia de comandos pitón
- 10. Haskell: Ejecutar comandos externos en secuencia estricta
- 11. TransactSQL para ejecutar otra secuencia de comandos de TransactSQL
- 12. Cómo iniciar PowerShell (no una secuencia de comandos) desde la línea de comandos
- 13. Ejecutar secuencia de comandos bash bash desde Emacs
- 14. la forma de ejecutar varios comandos por lotes en secuencia
- 15. ¿Cómo ejecutar una secuencia de comandos python en segundo plano?
- 16. ejecutar el programa C++ con la secuencia de comandos php
- 17. secuencia de comandos bash para ejecutar en 5 minutos
- 18. Post evento de compilación ejecutar powershell
- 19. Establecer variables de entorno global dentro de la secuencia de compilación Xcode ejecutar secuencia de comandos
- 20. Cómo ejecución remota de una secuencia de comandos remota elevada en PowerShell
- 21. Cómo ejecutar una magia de IPython desde una secuencia de comandos (o cronometrar una secuencia de comandos de Python)
- 22. ¿Puedo ejecutar una secuencia de comandos en la línea de comandos de SQLite?
- 23. Invocar una segunda secuencia de comandos con argumentos de una secuencia de comandos
- 24. Secuencia de comandos para ejecutar otras secuencias de comandos en sqldeveloper
- 25. ¿Ejecutar scripts de PowerShell sin instalar PowerShell?
- 26. No se puede obtener mi secuencia de comandos Upstart para ejecutar Node.js y Forever cuando el servidor se reinicia
- 27. ¿Cómo ejecutar un script de PowerShell sin mostrar una ventana?
- 28. ¿Puede una secuencia de comandos bash ejecutar comandos simultáneos y luego esperar a que se completen?
- 29. La secuencia de comandos PHP no puede obtenerse desde la secuencia de comandos de Python
- 30. MSBuild en una secuencia de comandos Powershell - ¿Cómo puedo saber si la compilación tuvo éxito?
Perfecto. Muchas gracias por la ayuda. Esto es exactamente lo que estaba buscando. Funcionó sin problemas. –
Sé que esto es viejo, pero ¿se puede ejecutar el powershell con permisos de administrador? – Vandervidi
http://serverfault.com/a/464024/202283 – digitalextremist