简体   繁体   中英

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?

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM