Javascript 如何使用SystemWorker执行PowerShell命令?

Javascript 如何使用SystemWorker执行PowerShell命令?,javascript,powershell,wakanda,Javascript,Powershell,Wakanda,我试图通过Wakanda服务器端API的SystemWorker实现一些功能。但我无法实现它。我确信我在SystemWorker的工作流中遗漏了一些内容 我想从Windows启动PowerShell,然后在其中运行两个命令。要手动执行此操作,我只需在cmd.exe中运行powershell,然后就可以开始编写powershell命令并取回数据 在Wakanda,我用以下代码设置了一个ssjs文件: var powershell = new SystemWorker(['powershell'],

我试图通过Wakanda服务器端API的
SystemWorker
实现一些功能。但我无法实现它。我确信我在
SystemWorker
的工作流中遗漏了一些内容

我想从Windows启动PowerShell,然后在其中运行两个命令。要手动执行此操作,我只需在cmd.exe中运行
powershell
,然后就可以开始编写powershell命令并取回数据

在Wakanda,我用以下代码设置了一个ssjs文件:

var powershell = new SystemWorker(['powershell'],null);

powershell.postMessage('Add-Type -AssemblyName "PresentationCore"');
powershell.endOfInput();
powershell.postMessage('[Windows.Media.Fonts]::SystemFontFamilies');
powershell.endOfInput();

powershell.onmessage = function (event) {
    var data = event.data;
    debugger;
};
powershell.onerror = function (event) {
    debugger;
};
powershell.onterminated = function (event) {
    // potentially check event.exitStatus or event.forced
    debugger;
    exitWait();
};
wait();
我还有一个systemWorkers.json文件,其中包含:

[
    {
        "name" : "powershell",
        "executable" :
        [
            { "path" : "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" }
        ]
    }
]
我只想在我的PowerShell中执行两个命令
Add Type-AssemblyName“PresentationCore”
[Windows.Media.Fonts]::SystemFontFamilies
,以获取计算机上所有可用字体的列表

如果我查看任务管理器,会启动PowerShell,但我始终无法执行我的两个命令行或获取数据。我只能在
onterminated
回调中结束


我错过了什么?

最后我努力让它发挥作用

现在,我将命令放在一个ps1文件中,作为参数提供给我的
SystemWorker

看起来是这样的:

var powershell = new SystemWorker(['powershell "C:/Users/<MyName>/Desktop/<myScript>.ps1"'],null);

powershell.onmessage = function (event) {

};
powershell.onerror = function (event) {
};
powershell.onterminated = function (event) {
    exitWait();
};
wait();
var-powershell=new-SystemWorker(['powershell“C:/Users//Desktop/.ps1“”],null);
powershell.onmessage=函数(事件){
};
powershell.onerror=函数(事件){
};
powershell.onterminated=函数(事件){
exitWait();
};
等待();
我认为这样做更容易,所以我的所有命令都在一个文件中,然后我只要求系统工作人员执行PowerShell并运行我的脚本