使用node.js时找不到PowerShell管理单元child_process.spawn()

时间:2014-07-24 18:53:31

标签: sql-server node.js powershell

我正在尝试从node.js调用PowerShell脚本。 ps脚本工作正常,但是当我从node.js子进程运行时,无法找到SQL snapins。

这是node.js脚本:

"use strict";

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

var child = spawn('powershell.exe', ['.\\test.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();

这是PowerShell脚本(test.ps1,这是一个只显示错误的精简脚本):

Add-PSSnapin SqlServerCmdletSnapin100

当我从cmd窗口或PS窗口运行test.ps1时,没有错误。当我运行node.js代码时,我得到:

Add-PSSnapin : The Windows PowerShell snap-in 'SqlServerCmdletSnapin100' 
is not installed on this machine.

我错过了什么?

1 个答案:

答案 0 :(得分:0)

这是由使用32位版本的node.js引起的。通过安装64位版本,问题得以解决。