Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Calling PowerShell from NodeJS

Calling PowerShell from NodeJS

Problem

I'm attempting to get the owner of a file in Node.js on Windows. In the absence of a win32api, I thought I'd use a PowerShell command:

powershell -Command "(get-acl test.txt).owner"

This works perfectly from the command-line and from a batch file, but just hangs with Node.js exec():

var exec = require('child_process').exec;

exec('powershell -Command "(get-acl test.txt).owner"', function(err,sysout,syserr) {
    console.dir(sysout);
});

The PowerShell process just appears to start and never terminate.

Does anybody have:

  1. an idea on why the command won't return in Node.js, or preferably
  2. a sane way for me to get a file owner with Node.js on Windows?
Problem courtesy of: tjdett

Solution

When you are calling Powershell like that you need to the close the input stream. You may want to try using spawn and use stdin.end().

Other option is to call cmd /c dir /q but that output is verbose.

Solution courtesy of: manojlds

Discussion

View additional discussion.



This post first appeared on Node.js Recipes, please read the originial post: here

Share the post

Calling PowerShell from NodeJS

×

Subscribe to Node.js Recipes

Get updates delivered right to your inbox!

Thank you for your subscription

×