
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
node-powershell
Advanced tools
Node-PowerShellLightweight module to run PowerShell straight from your Node app.
$ npm i -S node-powershell
As you may have heard already, lately Microsoft is taking steps towards becoming an open source company. One of these steps, brings us [PowerShell6][] , which is a cross-platform version of the amazing tool that we know and love from Windows. Node-PowerShell Welcomes the move, and started the current version, will fully support the new PS. Moreover, I will continue to follow the development of the new PS repo, and to update the module accordingly. Enjoy! [PowerShell6]: https://github.com/PowerShell/PowerShell
var shell = require('node-powershell');
var ps = new shell({executionPolicy: 'Bypass', debugMsg: true, noProfile: true});
ps.addCommand('echo "node-powershell rocks"')
.then(function(){
return ps.invoke();
})
.then(function(output){
console.log(output);
ps.dispose();
})
.catch(function(err){
console.log(err);
ps.dispose();
});
require('node-powershell')Provides promise based methods that are used to create a pipeline of commands and invoke those commands within a PowerShell runspace.
Creates a new shell instance.
var ps = new shell(options);
options:
| Name | Description |
|---|---|
| history | An array containing the command history ever added to the shell. |
| streams | An object containing the sdtio (in,out,err) of the PowerShell Instance. |
| Name | Description | Syntax | Return Value |
|---|---|---|---|
| addCommand(command, params = []) | Adds a command to the end of the pipeline of the shell object. | ps.addCommand('./script.ps1', [{name:'str', value:'node-powershell rocks'}]); | A promise of the commands. |
| invoke() | Runs the commands of the shell object pipeline. | ps.invoke(); | A promise with the result (can also be rejected to the catch). |
| dispose() | Releases all resources used by the shell object and closes the PowerShell child_process. | ps.dispose(); | A promise of the exit code. |
| Name | Description | Syntax |
|---|---|---|
| output | Emits when shell has an output. | ps.on('output', data=>{}); |
| err | Emits when shell has an error. | ps.on('err', error=>{}); |
| end | Emits when shell ends. | ps.on('end', code=>{}); |
Just use param ( ) instead of Read-Host in your script:
param (
[Parameter(Mandatory = $true)]
[string]$str
)
echo $str
and Shell.addCommand() with the params array in your node app.
for more examples please look at the example page.
FAQs
Node.js binding for PowerShell
The npm package node-powershell receives a total of 15,169 weekly downloads. As such, node-powershell popularity was classified as popular.
We found that node-powershell demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.