node-powershell - 将输出返回 javascript

node-powershell - getting output back into javascript

我正在尝试使用 node-powershell 与 powershell 进行交互。

Powershell 输出通常是可以存储在变量中的数据帧类型对象。我只是不清楚如何将输出返回到 JS 以 store/display 它。

我想我需要能够读取标准输出,但我不确定如何做到这一点并将数据保持在格式化的 way.I 中,就像对象中返回的数据一样。

在我的代码中,我收到了一个未决的承诺,我不明白为什么。

const { PowerShell } = require('node-powershell')

const poshInstance = async () => {
    const ps = new PowerShell({
        executionPolicy: 'Bypass',
        noProfile: true,
    })

    const command = PowerShell.command`Get-LocalGroup`
    const output = await ps.invoke(command)
    //const output = await PowerShell.$`Get-LocalGroup`
    ps.dispose()
  const stringFromBytes = String.fromCharCode(...output.stdout)
    // console.log(stringFromBytes)
  return JSON.stringify(stringFromBytes)
}


const op = poshInstance()

console.log(op)


这个库接缝到 return 命令的原始文本输出。要由此创建对象,最简单的解决方案是在 powershell 会话中将结果序列化为 JSON 格式。然后你只需要解析输出。

const { PowerShell } = require('node-powershell')

const poshInstance = async () => {
    const ps = new PowerShell({
        executionPolicy: 'Bypass',
        noProfile: true
    })

    const command = PowerShell.command`Get-LocalGroup | ConvertTo-Json`
    const output = await ps.invoke(command)
    ps.dispose()
    console.log(output)
    const result = JSON.parse(output.raw)
    console.log(result)
}

(async () => 
{
    await poshInstance()
})();