Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Calling PowerShell from NodeJS

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?
like image 340
tjdett Avatar asked Feb 06 '12 03:02

tjdett


1 Answers

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 <file> but that output is verbose.

like image 79
manojlds Avatar answered Nov 02 '22 02:11

manojlds