Execute Powershell script from Node.js


Question

I've been looking around the web and on Stackoverflow but hadn't found an answer to this question. How would you execute a Powershell script from Node.js? The script is on the same server as the Node.js instance.

1
30
4/16/2012 5:54:52 PM

Accepted Answer

You can just spawn a child process "powershell.exe" and listen to stdout for command output and stderr for errors:

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
59
4/16/2012 8:49:01 PM

In addition to the accepted answer, there is a Node.JS Library called Edge.js that allows various langugages to be executed from within Node. Including C#, J#, .Net, SQL, Python, PowerShell and other CLR languages.

Note that Edge.js requires PowerShell 3.0 & only works on Windows (many of the other features work on Mac and Linux too).


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon